Skip to content

[Arquitetura] Abstrair Firebase Analytics/Crashlytics atrás de interface #79

@gabrielbmoro

Description

@gabrielbmoro

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

  • Interface AnalyticsTracker criada no core-shared
  • Implementação Firebase criada no módulo composeApp (plataforma)
  • Implementação fake/no-op criada para testes
  • Todas as chamadas diretas ao Firebase substituídas pelo tracker
  • Tracker registrado via DI (Koin)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions