🎲
Sportheca Mobile DEV Week - Simulador de Partidas
Projeto desenvolvido no bootcamp Sportheca da DIO.
Desenvolvimento Mobile Nativo Para Android
Objetivo Geral
Fornercer uma visão geral sobre a área de Desenvolvimento Mobile, com ênfase na criação de Apps Nativos em Android. Para isso, o ambiente de desenvolvimento é configurado com o Android Studio, possibilitando a construção de aplicativos nas linguagens Java e Kotlin.
Percurso
- Introdução ao Desenvolvimento Mobile
- Android Nativo: Ambiente de Desenvolvimento
- Android Nativo: Estrutura de Projetos Android
Setup: Elementros Centrais
SDK Manager: possibilita o gerenciamento de pacotes por meio de ferramentas, APIs e outros componentes;
AVD Manager: provê múltiplas possibilidades de emulação através de dispositivos virtuais.
Iniciando o Projeto
EmptyActivty
Simulator
me.dio.simulator
Kotlin
API 21
Componentes, Layouts e UI UX Em Apps Android
Objetivo Geral
Apresentar alguns dos componentes disponíveis nativamente na SDK Android, explorando o Jetpack sempre que possível. Nesse sentido, os layouts de um App para simulação de partidas esportivas serão definidos. Para isso, os conceitos de prototipação e UI/UX são essencialmente compreendidos.
Percurso
- Introdução ao Android Jetpack
- Material Design
- Criação dos Layouts do App
Conhecendo o Jetpack
O Android Jetpack é um conjunto de bibliotecas que ajuda desenvolvedores a seguir práticas recomendadas, reduzir códigos boilerplate e programar códigos que funcionam de maneira consistente em diferentes dispositivos e versões do Android. Assim, o desenvolvedor pode se concentrar em seu domínio de aplicação.
Usando o View Binding
Facilitar/centralizar o acesso à componentes definidos via layout XML. Com isso, as incômodas/recorrentes chamadas ao método findViewById tornam-se desnecessárias.
Usando o SwipeRefreshLayout
implementantion 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
Get from VCS
Informa a URL do Projeto - GitHub, clona direto no Android Studio.
Material Design
É um sistema de design (que engloba UI e UX) criado pelo Google para nos ajudar a criar experiências digitais de alta qualidade para multiplas plataformas.
Prototipação do App
Primeira tela: Listagem/Simulação de Partidas
Segunda tela: Detalhes da Partida
Atalhos
Replace: Ctrl + R
Abrir Opções: Alt + Enter
In res/values/type.xml:
Java e Kotlin
Objetivo Geral
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.
Percurso
- Criando uma "API" e Modelando seu Domínio
- Conhecendo as Bibliotecas Retrofit e Glide
- Parcelable e Simulação de Partidas
🎲
Domínio/Problema
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:
- Toda Partida é realizada em um Local;
- Uma Partida possui dois Times (mandante e visitante);
- Os Times têm um nível de força (estrelas)…
🤨
“API” no GitHub Pages 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.
[
{
"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"
}
}
]
Retrofit
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)
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
Glide
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)
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
"> Permissão de acesso a internet
Listas dinâmicas com o RecyclerView
Parcelable
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'
}
Firebase
Objetivo Geral
Conheça algumas das possibilidades oferecidas pelo Firebase. Nesse contexto, vamos explorar alguns recursos interessantes dessa plataforma, como o Analytics, Crashlytics, entre outros. Com isso, nosso App estará muito mais preparado para uma publicação em produção (Google Play), pois eventuais crashes e insights relacionados ao seu uso poderão ser monitorados proativamente.
Introdução ao Firebase
Fornece as ferramentas para desenvolver aplicativos de alta qualidade, ampliar a base de usuários e lucrar mais. Para isso, o Firebase oferece uma poderosa suite de soluções, abstraindo a complexidade em diferentes contextos:
- Construção
- Implantação e Monitoramento
- Engajamento
Configurando o Firebase
Passos para adicionar o Firebase em seu App usando o Console do Firebase (recomendado):
- Criar um projeto do Firebase
- Registrar seu app com o Firebase
- Adicionar um arquivo de configuração do Firebase
- Adicionar SDKs do Firebase ao seu App
Crashlytics
O Firebase Crashlytics é uma ferramenta de relatório de falhas leve e em tempo real que ajuda a monitorar, priorizar e corrigir problemas de estabilidade que comprometem a qualidade do seu aplicativo.
O Crashlytics economiza tempo na solução de problemas com o agrupamento inteligente das falhas e a exibição das circunstâncias que levam a elas.
Configurando o Crashlytics
Passos para adicionar o Firebase Crashlytics: