Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin:...

Post on 21-May-2020

6 views 0 download

Transcript of Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin:...

Globalcode – Open4education

Trilha – Android/KotlinDiego Cunha

Android Developer IWS Brazil

Globalcode – Open4education

AgendaAndroid JetpackO que é injeção de dependênciasKoin, o grande inimigo do Dagger2Android Jetpack + Koin: Casamento perfeito

Globalcode – Open4education

Sobre mim• Android Developer 3 anos na

IWS Brazil

• Formado em Analise e Desenvolvimento de Sistemas

• Pós graduado em MetodologiasÁgeis

• Cozinheiro nas horas vagas

• Evangelista de Uncle Bob

Globalcode – Open4education

Android JetpackA Google corrigindo os erros do passado

Globalcode – Open4education

Android JetpackConjunto de bibliotecas que visam ajudar desenvolvedoresa criar aplicativos mais facilmente.

Trouxe um padrão de projeto para o Android (Antes elesfaziam exemplos com o MVVM).

Corrigiram os erros do passado

Dividido em componentes

Globalcode – Open4education

Android Jetpack

Globalcode – Open4education

Android Jetpack: Architecture

Bibliotecas para tornar o aplicativo mais robusto, testável e de fácil manutenção

Lida com problemas como ciclo de vida, data binding, navigation, workmanager, banco de dados entre outros componentes responsáveis por daruma arquitetura ao projeto.

Globalcode – Open4education

Android Jetpack: UIResponsável por todos os componentes que teminteração direta com o usuário

Atualizou e corrigiu erros existentes emfragmentos

Facilitou a utilização do Material Design do Google

Globalcode – Open4education

Android Jetpack: Behaviour

Responsável por conectar com serviços do sistema operacional Android

Removeu boilerplate para questões como uso de camera, requisição de notificações

CameraX, Slice, Notifications

Globalcode – Open4education

Android Jetpack: Foundation

Responsável pela retro compatibilidade das bibliotecas

Trouxe o suporte do Kotlin ao Android

Android KTX, AppCompat entre outros

Globalcode – Open4education

Injeção de dependência

O que é? Do que se alimenta? Onde vive?

Globalcode – Open4education

Injeção de dependênciaPadrão de projeto onde o foco é o baixo acoplamento

Remover a necessidade de classes específicas

Você pode imaginar ela como uma caixa de ferramentas enquanto vocêmonta uma cadeira

Spring, Dagger2, ASP.NET Core e…..Koin!

Globalcode – Open4education

Koin

Say hello to my little friend

Globalcode – Open4education

KoinBiblioteca de injeção de dependência

100% escrita em Kotlin

Mais limpo que Dagger2

Suporte a Unity Tests/Testes de UI

Globalcode – Open4education

KoinDesenvolvida em módulos

Sem geração de código nem se utiliza de proxys e reflexão

100% compatível com Android Jetpack ViewModel

Globalcode – Open4education

Koin: Pilaresget: Injeta a instância requisitada no construtor da classe

factory: Cria uma nova instância injetável cada vezque é chamada.

Globalcode – Open4education

Koin: Pilaressingle: Cria um singleton da classe/interface a ser utilizada

viewModel: Utilizada em conjunto com Jetpack e gera uma instância de ViewModel com respeito aociclo de vida

Globalcode – Open4education

Koin:Pilares

Globalcode – Open4education

Koin: Inicialização

Globalcode – Open4education

Koin: ViewModel

Globalcode – Open4education

Koin: Fragment

Globalcode – Open4education

Koin + Android JetpackO casamento perfeito

Globalcode – Open4education

Koin + Jetpack = <3 Koin é de fácil integração com Android, visto que tem um módulo só para isso

Aplicativos com tamanho de .apk muito menor

Menos tempo de builds

Globalcode – Open4education

Koin + Jetpack = <3

Globalcode – Open4education

Koin + Jetpack = <3Sintaxe mais limpa nas camadas de View/ViewModel

Fácil aprendizado de código para iniciantes

Menos boilerplate

Globalcode – Open4education

Koin + Jetpack = <3Sem geração de código

Jetpack te proporciona abstrair coisas antigascomo SQLite e WorkManagers

Jetpack permite criar um aplicativo reativo com poucos passos

Globalcode – Open4education

Koin + Jetpack = <3Koin permite pessoas novas em desenvolvimentoentender Injeção de Dependência

Koin tem fácil integração com testes

Globalcode – Open4education

Koin + Jetpack = <3 Teste

Globalcode – Open4education

Koin + Jetpack = <3 Teste

Globalcode – Open4education

Koin + Jetpack = <3 Teste

Globalcode – Open4education

Koin + Jetpack = <3 Teste

Globalcode – Open4education

Obrigado!