MVPアプリケーションアーキテクチャにFirebase Analyticsを(たとえば)適用する方法は? (私はMosbyを使用してMVPを構築します)Android MVPとAnalytics
イベントをトラッキングしたいと思います。"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()
ユーザーがバックスタックから画面に戻るときにも呼び出されます。ユーザーが「正面方向」で画面にナビゲートするときにのみ、イベントを送信するようにします。また、ViewState
が最初に作成されたときにPresenter
を初期化するために導入されたinitialize()
メソッドのような悪い解決策のように見えます。
私はPresenterにFragmentのライフサイクルを共有する必要があります。良くない。
お勧めできますか?各フラグメントに対してAnalyticsPresenterのような別のエンティティを作成する必要がありますか?あなたはこのケースをどのように扱いますか?
私は 'Analytics'は' View'レイヤに属しているとは思っていません。 'View'は情報を表示し、追跡しません。しかし、うわー!とにかく、「CompositeAndroid」は、私の_「地獄を広げる」_のための解決策のようです。 :) – Alexandr