trilha –android/kotlin · 11/26/2019  · koin, o grande inimigo do dagger2 androidjetpack+ koin:...

33
Globalcode – Open4education Trilha – Android/Kotlin Diego Cunha Android Developer IWS Brazil

Upload: others

Post on 21-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Trilha – Android/KotlinDiego Cunha

Android Developer IWS Brazil

Page 2: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

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

Page 3: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

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

Page 4: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Android JetpackA Google corrigindo os erros do passado

Page 5: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

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

Page 6: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Android Jetpack

Page 7: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

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.

Page 8: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

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

Page 9: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

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

Page 10: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Android Jetpack: Foundation

Responsável pela retro compatibilidade das bibliotecas

Trouxe o suporte do Kotlin ao Android

Android KTX, AppCompat entre outros

Page 11: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Injeção de dependência

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

Page 12: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

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!

Page 13: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin

Say hello to my little friend

Page 14: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

KoinBiblioteca de injeção de dependência

100% escrita em Kotlin

Mais limpo que Dagger2

Suporte a Unity Tests/Testes de UI

Page 15: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

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

Page 16: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

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

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

Page 17: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

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

Page 18: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin:Pilares

Page 19: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin: Inicialização

Page 20: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin: ViewModel

Page 21: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin: Fragment

Page 22: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin + Android JetpackO casamento perfeito

Page 23: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

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

Page 24: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin + Jetpack = <3

Page 25: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

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

Fácil aprendizado de código para iniciantes

Menos boilerplate

Page 26: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

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

Page 27: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

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

Koin tem fácil integração com testes

Page 28: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin + Jetpack = <3 Teste

Page 29: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin + Jetpack = <3 Teste

Page 30: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin + Jetpack = <3 Teste

Page 31: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Koin + Jetpack = <3 Teste

Page 32: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise

Globalcode – Open4education

Obrigado!

Page 33: Trilha –Android/Kotlin · 11/26/2019  · Koin, o grande inimigo do Dagger2 AndroidJetpack+ Koin: Casamento perfeito ... Sobremim • Android Developer 3 anosna IWS Brazil • FormadoemAnalise