[1]
Venilton FalvoJr
Education Tech Lead na DIO�Doutorando no ICMC-USP
@falvojr
Java e Kotlin Juntos!? Construindo Apps
Android
[2]
Início da Graduação em Engenharia de Computação
Graduação
Estágio como
Dev Java/.NET
1º Emprego
Enfim Mestre
Título e carreira como
Dev Mobile
2007
Doutorado e desafios como Education Tech Lead na DIO
Doutorado e DIO
2008
2015
Hoje
Sobre Mim
já expirou, mas foi top 😅
[3]
Desenvolva os eventos, integrações e interações de usuário em um App Android. Para isso, vamos explorar conceitos essenciais, como: APIs, Orientação a Objetos e Padrões de Projetos; tudo na prática usando Java e Kotlin!
Nesse sentido, bibliotecas consolidadas como Glide e Retrofit serão utilizadas com o objetivo de aumentar ainda mais nossa produtividade e qualidade de código.
Objetivo Geral
[4]
Nosso App já está versionado no GitHub: disponível aqui. �Por isso, os seguintes conteúdos são pré-requisitos:
Premissas/Revisão
[5]
Percurso
Parte 1
Criando uma "API" e Modelando seu Domínio
Parte 2
Conhecendo as Bibliotecas Retrofit e Glide
Parte 3
Parcelable e Simulação de Partidas 🎲
[6]
// Java e Kotlin Juntos!? Construindo Apps Android
Parte 1
Criando uma "API" e Modelando seu Domínio
[7]
Domínio/Problema
Listagem/Simulação de Partidas
Detalhes da Partida
[8]
Com base nos protótipos, conseguimos ter uma boa ideia do nosso domínio de aplicação. Nesse contexto, vamos abstrair as entidades relevantes para o App, por exemplo:
Domínio/Problema
[9]
Uma Application Programming Interface (API), basicamente, se propõe a expor recursos de um domínio de aplicação. Seu principal objetivo é definir uma interface para integrações concisas e eficientes.
Nesse sentido, para que não tenhamos que construir uma API do zero, vamos prover nossos recursos (partidas) via GET por meio do recurso GitHub Pages.
“API” no GitHub Pages 🤨
[10]
[
{
"descricao": "Eliminatórias Copa 2022",
"local": {
"nome": "Maracanã",
"imagem": "TODO"
},
"mandante": {
"nome": "Brasil",
"estrelas": 5,
"imagem": "https://www.bandeirasnacionais.com/data/flags/normal/br.png"
},
"visitante": {
"nome": "Argentina",
"estrelas": 5,
"imagem": "https://www.bandeirasnacionais.com/data/flags/normal/ar.png"
}
}
…
]
“API” no GitHub Pages 🤯
[11]
Hands On! Criando a “API” e Classes de Domínio
[12]
Percurso
Parte 1
Criando uma "API" e Modelando seu Domínio
Parte 2
Conhecendo as Bibliotecas Retrofit e Glide
Parte 3
Parcelable e Simulação de Partidas 🎲
[13]
// Java e Kotlin Juntos!? Construindo Apps Android
Parte 2
Conhecendo as Bibliotecas Retrofit e Glide
[14]
Cliente HTTP para Android e Java, o qual abstrai incrivelmente a complexidade no consumo de APIs. Além disso, possui uma série de conversores JSON, que facilitam a (de)serialização dos dados:
// Retrofit (HTTP Client): https://square.github.io/retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
�Nota: Ao obter as partidas da API, vamos listá-las dinamicamente com o RecyclerView.
Retrofit
[15]
Gerenciador de mídia rápido e eficiente, abstraindo o processo de carregamento de imagens em Android, gerenciando desde a decodificação e transformação até o controle de cache das mesmas:
// Glide (Image Loading): https://github.com/bumptech/glide
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
Glide
[16]
Hands On! Explorando as Libs Retrofit e Glide
[17]
Percurso
Parte 1
Criando uma "API" e Modelando seu Domínio
Parte 2
Conhecendo as Bibliotecas Retrofit e Glide
Parte 3
Parcelable e Simulação de Partidas 🎲
[18]
// Java e Kotlin Juntos!? Construindo Apps Android
Parte 3
Parcelable e
Simulação de Partidas 🎲
[19]
Parcelable é a estratégia de (de)serialização padrão em Apps Android, ou seja, é a implementação utilizada para troca de mensagens entre as telas de um App. Nesse contexto, o Kotlin Parcelize é uma alternativa muito simples e efetiva:
plugins {
…
id 'kotlin-parcelize'
}
Parcelable
[20]
Hands On! Finalizando Nosso App
[21]
Links Úteis
[22]
> Fórum/Artigos
> Comunidade Online (Discord)
Dúvidas?