Contexto
O Firebase Analytics e Crashlytics são chamados diretamente nas camadas compartilhadas do projeto. Isso:
- Torna o código não testável (não é possível mockar)
- Polui a camada compartilhada com dependências específicas de plataforma
- Dificulta a troca futura por outra solução de analytics
Ação Proposta
Criar uma interface AnalyticsTracker no core-shared e encapsular todas as chamadas ao Firebase atrás dela.
interface AnalyticsTracker {
fun trackScreen(screenName: String)
fun trackEvent(name: String, params: Map<String, Any> = emptyMap())
fun trackError(throwable: Throwable)
}
Critérios de Aceite
Contexto
O Firebase Analytics e Crashlytics são chamados diretamente nas camadas compartilhadas do projeto. Isso:
Ação Proposta
Criar uma interface
AnalyticsTrackernocore-sharede encapsular todas as chamadas ao Firebase atrás dela.Critérios de Aceite
AnalyticsTrackercriada nocore-sharedcomposeApp(plataforma)