Android MVP和分析
如何在MVP应用程序架构上应用Firebase分析(例如)?(我用于构建MVP) 我想跟踪Android MVP和分析,android,google-analytics,firebase-analytics,mosby,Android,Google Analytics,Firebase Analytics,Mosby,如何在MVP应用程序架构上应用Firebase分析(例如)?(我用于构建MVP) 我想跟踪“打开屏幕”,“执行单击操作”的事件 下面是我如何发送“打开屏幕”事件 private const val ANALYTICS_SCREEN_NAME = "ask_password" private const val ANALYTICS_ACTION_DONE = "done" class AskPasswordPresenter : MyDiaryPresenter<AskPasswordVie
“打开屏幕”
,“执行单击操作”
的事件
下面是我如何发送“打开屏幕”
事件
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)
}
}
private const val ANALYTICS\u SCREEN\u NAME=“询问密码”
private const val ANALYTICS_ACTION_DONE=“DONE”
类AskPasswordPresenter:MyDiaryPresenter{
@注入
构造函数(analytics:AnalyticsManager):超级(analytics)//AnalyticsManager是Firebase analytics API的包装器
override fun initialize(){//在创建新的ViewState时调用此方法
super.initialize()
analytics.Doscreen打开(analytics\u屏幕\u名称)
}
乐趣完成(密码:String){//当用户单击“完成”按钮时调用
...
分析.行动(分析\屏幕\名称,分析\行动\完成)
}
}
initialize()。我希望它只在用户以“前方向”导航到屏幕时发送事件。它看起来也是一个糟糕的解决方案,因为在第一次创建ViewState
时,为初始化Presenter
引入了initialize()
方法,而不是用于记录分析事件
你能推荐什么?我必须为每个片段创建另一个实体,如AnalyticsPresenter吗?你如何处理这种情况?在我看来,分析属于视图层,而不是演示者层。 因此,可以直接在片段/活动中跟踪它,或者(我通常做的)使用以下库之一
或者将“分析组件”插入到您的活动/片段中。通过这样做,您的片段/活动不包含分析代码,而是解耦到自己的类中(单一责任)。我认为分析属于演示者,但正如我在有分析视图的问题上所回答的,更容易点击按钮/标签/。。。定义并查看此按钮在UI中的位置,更好地了解为GAnalytics的类别、活动、标签和值参数发送什么。我想我不需要提及演示者不能有任何特定于android的依赖项,所以你不能跳转到按钮/标签/。。。来自演示者的定义。关于我不同意
分析
属于视图
层<代码>视图是关于显示信息,而不是跟踪信息。但是,哇CompositeAndroid
看起来像是我的“扩展地狱”的解决方案,无论如何,谢谢!)