MVP 앱 아키텍처에 Firebase Analytics (예 :)를 적용하는 방법은 무엇입니까? (나는 MVP를 만들기 위해 Mosby을 사용합니다)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 (...). 괜찮아. 사용자가 뒤로 가기 backstack에서 화면을 탐색하더라도 호출
initialize()
. 사용자가 "정면 방향"으로 화면을 탐색 할 때만 이벤트를 보내길 원합니다. 또한ViewState
가 없습니다 분석 이벤트 로깅을 위해, 처음에 만들 때Presenter
를 초기화 도입initialize()
방법으로 나쁜 솔루션처럼 보인다.
프리젠 테이션에 Fragment의 라이프 사이클을 공유해야하는 것처럼 들립니다. 안좋다.
당신은 무엇을 추천 할 수 있습니까? 각 단편마다 AnalyticsPresenter와 같은 다른 엔티티를 만들어야합니까? 이 사건을 어떻게 처리합니까? 내 의견 웹 로그 분석에서
나는 '분석'이 '보기'계층에 속한다는 것에 동의하지 않습니다. '보기 (View) '는 정보를 보여주는 것이지 추적하지 않는 것입니다. 그러나, 와우! 'CompositeAndroid'는 내 _ "확장 지옥"_에 대한 해결책처럼 보입니다. 어쨌든 감사합니다! :) – Alexandr