如何將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