如何将MVC应用程序体系结构上的Firebase Analytics(例如)应用? (我用Mosby打造MVP)Android MVP和分析
我想跟踪"opening screen"
,"do click action"
的事件。
有我如何发送"opening screen"
事件。
private const val ANALYTICS_SCREEN_NAME = "ask_password"
private const val ANALYTICS_ACTION_DONE = "done"
class AskPasswordPresenter : MyDiaryPresenter<AskPasswordView> {
@Inject
constructor(analytics: AnalyticsManager) : super(analytics) // AnalyticsManager is wrapper around Firebase Analytics API
override fun initialize() { // this method called when new ViewState created
super.initialize()
analytics.doScreenOpened(ANALYTICS_SCREEN_NAME)
}
fun done(password: String) { // called when user click on 'Done' button
...
analytics.doAction(ANALYTICS_SCREEN_NAME, ANALYTICS_ACTION_DONE)
}
}
doAction(...)被称为它必须。好的。即使用户从后台导航回屏幕,也可以调用
initialize()
。我希望它只在用户导航到“正面方向”屏幕时发送事件。它也看起来像一个不好的解决方案,initialize()
方法引入初始化Presenter
时,第一次创建ViewState
,而不是日志记录分析事件。
听起来好像我必须将Fragment的生命周期分享给Presenter。不好。
您能推荐些什么?我必须为每个片段创建另一个实体,例如AnalyticsPresenter吗?你如何处理这种情况?
我不同意'Analytics'属于'View'图层。 'View'是关于显示信息,而不是跟踪它。但是,哇! 'CompositeAndroid'看起来像是我的_“延伸地狱”的解决方案,谢谢! :) – Alexandr