🚀 Trilha de Projetos Práticos: Geek Edition
Bem-vindo à sua jornada de construção! Aqui você encontrará os Projetos Práticos que transformam a teoria em realidade. Cada projeto foi desenhado sob a ótica da Cultura Geek (filmes, quadrinhos, animes, RPG e ficção científica) para ser um degrau divertido na sua evolução como desenvolvedor mobile.
[!NOTE] 📋 Decisões de curso (Etapa 0 — 2026-06-13)
- Alinhamento com a trilha teórica:
topicos/segue esta mesma progressão (Java/XML → Kotlin/XML → Compose) — os Caps 01–02 preparam diretamente o P01 (Dado RPG) abaixo.- P12–P21 = Trilha Bônus/Avançada (opcional): os projetos das Fases 6–9 (nível Pleno/Sênior) passam a ser tratados como conteúdo bônus/opcional, com pré-requisitos explícitos (Kotlin + Compose + MVVM consolidados), separados do núcleo essencial encerrado em P10.
- Molde de projeto e checklist de qualidade: ver o Guia de Contribuição — define a estrutura de
README.md/index.md, a infraestrutura Android Studio esperada e o checklist de verificação antes de publicar/alterar um projeto.Execução em andamento — ver plano de melhoria, Etapas 4 e 5.
📅 Sequência Pedagógica
🏛️ Fase 1: Fundamentos Legados (Java & XML)
Nesta fase, você aprende como os apps eram feitos e como muitos apps de grandes empresas ainda funcionam.
1.0 🎲 P01: Dado RPG (D20) - Sua primeira Activity e lógica de sorteio.
1.1 🎲 P01: Dado RPG (D20 3D) - Sua primeira Activity e lógica de sorteio.
2.0 🧠 P02: Jogo da Memória POC - Lógica de comparação e GridLayout.
2.1 🧠 P02: Jogo da Memória PNG - Lógica de comparação e GridLayout.
🌉 Fase 2: A Ponte para o Moderno (Kotlin & XML)
Você começa a usar a linguagem do futuro (Kotlin) mantendo o desenho tradicional.
3.0 🔴 P03: Geniuz Game (Simon) Demo - Listas, Delays e ViewBinding em Kotlin.
3.1 🔴 P03: Geniuz Game (Simon) - Listas, Delays e ViewBinding em Kotlin.
🎨 Fase 3: A Era Compose (UI Moderna)
Aqui você abandona o XML e entra no mundo do Jetpack Compose.
-
🖼️ P04: Cartão de Treinador - Column, Row e Modifiers.
-
🎮 P05: Quiz Gamer - Gerenciamento de Estado e Navegação.
🚀 Fase 4: Recursos Avançados
Integração com Banco de Dados, APIs e Hardware.
-
💾 P06: Meus Jogos Favoritos - Banco de Dados Room (Offline First).
-
☁️ P07: Master Pokedex - Integração com PokeAPI via Retrofit.
-
📷 P08: Batalha Scanner - Câmera e ML Kit (QR Code).
-
📍 P09: PokeMap (Ginásios) - Google Maps SDK e GPS.
🏆 Fase 5: Desafio Final do Núcleo Essencial
- 🔥 P10: Arena Social / SuperApp - Firebase Auth, Firestore e Notificações Push.
🎓 Trilha Bônus / Avançada (opcional)
Parabéns por chegar até aqui! Com o P10 você concluiu o núcleo essencial do curso — já tem uma base sólida para construir, publicar e manter apps Android profissionais.
Os projetos abaixo são opcionais e de nível Pleno/Sênior: exploram arquitetura avançada (injeção de dependências, modularização), execução em background, gráficos customizados e sincronização multiplayer em tempo real.
[!TIP] Pré-requisitos recomendados: Kotlin + Jetpack Compose + arquitetura MVVM consolidados (Fases 3 e 4). Encare estes projetos como desafios extras para quem quer se aprofundar em tópicos de mercado de nível avançado.
A numeração
P12–P21(semP11) é mantida por estabilidade de links: é um artefato histórico da reclassificação desta trilha como bônus, e não há nenhum projeto “P11” planejado.
⚡ Fase 6: Arquitetura Avançada & Engenharia (Pleno)
-
🦇 P12: Batcomputer - Injeção de Dependências com Hilt DI e Modularização.
-
🌌 P13: TARDIS Panel - Persistência leve e assíncrona com Jetpack DataStore.
-
🌀 P14: Portais Dimensionais - Roteamento declarativo e argumentos com Navigation Compose.
⏰ Fase 7: Ciclos de Vida & Execução em Background (Pleno)
-
🤖 P15: J.A.R.V.I.S. Sync - Agendamento inteligente persistente em background com WorkManager.
-
🚨 P16: Alerta Gotham - Alarmes rígidos de hardware e notificações locais com AlarmManager.
🎨 Fase 8: Mídia & Gráficos Customizados (Pleno)
-
🦊 P17: Anime Soundboard - Reprodução de áudio e concorrência de mídias com o MediaPlayer.
-
📊 P18: Radar de Habilidades - Desenho geométrico e trigonometria com a Canvas API.
🛡️ Fase 9: Robustez Técnica & Multiplayer Realtime (Pleno/Sênior)
-
💜 P19: Banco de Wakanda - Caching offline-first e persistência local sincronizada com o Room DB.
-
🧪 P20: Simulador de Batalha - Cobertura de códigos e testes unitários automatizados com JUnit 5.
-
⚔️ P21: Duelo Jedi - Sincronismo bidirecional multiplayer em tempo real com Firebase Realtime Database.
🚀 Como Entregar seus Projetos (GitHub + Teams)
Para que seus projetos sejam avaliados e componham seu portfólio profissional, você deve versioná-los no GitHub de forma pública e submeter o link na plataforma Microsoft Teams. Siga o passo a passo abaixo para garantir que sua entrega ocorra com sucesso!
📂 1. Criando e Configurando o .gitignore (Crítico!)
Antes de enviar qualquer arquivo para a nuvem, precisamos garantir que arquivos temporários gerados pelo compilador do Android Studio (que podem ultrapassar centenas de megabytes!) não sejam enviados ao GitHub.
-
Na raiz da pasta do seu projeto Android Studio, verifique se já existe um arquivo chamado
.gitignore. Caso não exista, crie um arquivo de texto com este nome exato. -
Certifique-se de que ele contenha as seguintes pastas e arquivos ignorados:
.gradle/ /build/ .idea/ *.iml local.properties .DS_Store[!CAUTION] Nunca envie suas chaves de API secretas ou arquivos de serviço! Se você estiver trabalhando no P09 (PokeMap) ou P10 (Arena Social), certifique-se de que suas chaves API do Google Maps no
AndroidManifest.xmle seu arquivogoogle-services.jsonnão sejam compartilhados publicamente no seu repositório de produção caso possuam faturamento ou credenciais reais ativas.
🐙 2. Subindo o Projeto para o GitHub
-
Abra o GitHub e faça login em sua conta.
-
No canto superior direito, clique no botão
+e selecioneNew repository. - Configure as opções do repositório:
- Repository name: Use um nome descritivo (ex:
d20-dados-rpgougenius-game-android). - Description: Uma breve descrição do que o app faz (ex: “App de dados de RPG 3D criado com Jetpack Compose”).
- Public/Private: Selecione obrigatoriamente PUBLIC 🔓. Repositórios privados não podem ser visualizados pelos instrutores, o que invalidará sua entrega!
- Initialize this repository with: Deixe desmarcado (não adicione README, .gitignore ou licença por lá, pois faremos isso localmente).
- Clique em
Create repository.
- Repository name: Use um nome descritivo (ex:
- Agora, no seu computador, abra o Terminal ou PowerShell dentro da pasta raiz do seu projeto Android Studio e digite a sequência de comandos:
# 1. Inicializa o repositório Git local
git init
# 2. Adiciona todos os arquivos do projeto (respeitando o .gitignore)
git add .
# 3. Cria a primeira versão do seu código
git commit -m "feat: estrutura inicial do app"
# 4. Cria e aponta para a branch principal 'main'
git branch -M main
# 5. Vincula seu repositório local ao repositório criado no GitHub
# (Substitua a URL abaixo pela URL fornecida na tela do seu GitHub)
git remote add origin https://github.com/seu-usuario/nome-do-repositorio.git
# 6. Envia os arquivos para o GitHub!
git push -u origin main
⚔️ 3. Realizando a Entrega no Microsoft Teams
-
No seu navegador, acesse o repositório do projeto recém-criado no seu GitHub e copie a URL completa da barra de endereços (ex:
https://github.com/seu-usuario/nome-do-repositorio). -
Abra o Microsoft Teams e navegue até a equipe da sua turma.
-
Acesse o canal Geral ou a aba Tarefas / Assignments.
-
Encontre a tarefa correspondente ao projeto que você deseja entregar (ex: Entrega do Projeto P06).
-
Clique no botão
Anexar / Add workno painel da tarefa. -
Escolha a opção
Linke cole a URL do seu repositório do GitHub. No campo “Texto a ser exibido”, digite o nome do projeto (ex: Repositório GitHub P06). -
Clique em Anexar e, em seguida, clique no botão roxo “Entregar” (Turn In) no canto superior direito para confirmar o envio!
[!TIP] Dica de Sucesso: Para ter 100% de certeza de que seu repositório está acessível publicamente, copie a URL do GitHub, abra uma janela anônima no seu navegador e tente acessá-la. Se a página do código abrir sem pedir login, seu projeto está pronto para ser corrigido com sucesso!
💡 Dica de Ouro
Não pule etapas! Cada projeto ensina um conceito que será usado no próximo. Se tiver dúvidas, consulte o Gabarito Passo a Passo dentro do README de cada projeto.
Boa codificação, Treinador! 🎮🚀