Simplificando Analytics com Kotlin no Android!
Objetivos
- Adicionar e remover serviços de análise rapidamente
- Adicionar e remover eventos rapidamente
- Capaz de se integrar rapidamente a qualquer projeto
Mercado de Analytics
Cada vez mais, as organizações têm requisitos rigorosos desde o momento em que os dados são gerados até o momento em que os insights acionáveis são entregues aos usuários. Portanto, os dados precisam ser coletados, armazenados, processados e analisados em janelas relativamente curtas — variando de diariamente a em tempo real.
Você sabe quem são seus usuários? O que os motiva a comprar? O que fará com que eles desinstalem seu aplicativo? Para aumentar o seu público, é preciso ter as ferramentas e o processo para responder a essas perguntas.
Primeiro, podemos definir a interface Analytics.kt que tem apenas um método chamado track(EventBuilder. () ->Unit) mas o que isso significa?
Observe que a classe AnalyticsImpl não precisa receber contexto Android, apenas uma lista de objetos Tracker.
Existem algumas maneiras de tornar o Analytics um singleton e ele dependerá do tamanho do seu projeto e do mecanismo de DI.
Singleton Pattern
Koin
Vale ressaltar que podemos usar a mesma estratégia de esconder a implementação atrás de uma interface (Facade) e compor diferentes comportamentos como:
- Dispatcher HTTP com OkHttp ou Retrofit ou Ktor
- Relatório de falhas com Crashlytics ou BugSnag ou AppCenter
- Logging(Firebase,New Relic, ELK, Snowplow)
Chave de API única e genérica
Observe o uso de UUID.randomUUID (), compartilhei algumas ideias sobre esse assunto aqui, verifique e dê seu feedback e deixe um comentario caso queira esse artigo em português!
Classes e hierarquias com Sealed Classes
Eventos como data classes simples e hierarquia de classes com sealed classes são um bom ajuste, uma vez que a mesma abordagem em direção ao MVVM é utlizada amplamente em aplicativos Android nos dias de hoje.
Lambda With Receivers e Builders em Kotlin
Conclusão
A solução completa consiste em apenas alguns arquivos minúsculos, que você pode verificar aqui.
Depois de adicionar alguns arquivos Kotlin simples, quando você precisar remover ou adicionar “mais uma ferramenta de tracking do gerente de projeto ou do PO”, você só precisa adicionar a dependência ao arquivo build.gradle e criar uma classe que implemente o Tracker e o implemente de acordo com a documentação do tracker.
Gostou da biblioteca? veja meu perfil e me dê um aplauso e deixe uma estrela no GitHub. :)
https://www.linkedin.com/in/williamgouvea/
Por último, mas não menos importante, comentários / sugestões são sempre bem-vindos. Continue aprendendo e compartilhando.