🚀 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)

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.

  1. 🖼️ P04: Cartão de Treinador - Column, Row e Modifiers.

  2. 🎮 P05: Quiz Gamer - Gerenciamento de Estado e Navegação.

🚀 Fase 4: Recursos Avançados

Integração com Banco de Dados, APIs e Hardware.

  1. 💾 P06: Meus Jogos Favoritos - Banco de Dados Room (Offline First).

  2. ☁️ P07: Master Pokedex - Integração com PokeAPI via Retrofit.

  3. 📷 P08: Batalha Scanner - Câmera e ML Kit (QR Code).

  4. 📍 P09: PokeMap (Ginásios) - Google Maps SDK e GPS.

🏆 Fase 5: Desafio Final do Núcleo Essencial

  1. 🔥 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 P12P21 (sem P11) é 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)

  1. 🦇 P12: Batcomputer - Injeção de Dependências com Hilt DI e Modularização.

  2. 🌌 P13: TARDIS Panel - Persistência leve e assíncrona com Jetpack DataStore.

  3. 🌀 P14: Portais Dimensionais - Roteamento declarativo e argumentos com Navigation Compose.

⏰ Fase 7: Ciclos de Vida & Execução em Background (Pleno)

  1. 🤖 P15: J.A.R.V.I.S. Sync - Agendamento inteligente persistente em background com WorkManager.

  2. 🚨 P16: Alerta Gotham - Alarmes rígidos de hardware e notificações locais com AlarmManager.

🎨 Fase 8: Mídia & Gráficos Customizados (Pleno)

  1. 🦊 P17: Anime Soundboard - Reprodução de áudio e concorrência de mídias com o MediaPlayer.

  2. 📊 P18: Radar de Habilidades - Desenho geométrico e trigonometria com a Canvas API.

🛡️ Fase 9: Robustez Técnica & Multiplayer Realtime (Pleno/Sênior)

  1. 💜 P19: Banco de Wakanda - Caching offline-first e persistência local sincronizada com o Room DB.

  2. 🧪 P20: Simulador de Batalha - Cobertura de códigos e testes unitários automatizados com JUnit 5.

  3. ⚔️ 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.

  1. 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.

  2. 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.xml e seu arquivo google-services.json nã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

  1. Abra o GitHub e faça login em sua conta.

  2. No canto superior direito, clique no botão + e selecione New repository.

  3. Configure as opções do repositório:
    • Repository name: Use um nome descritivo (ex: d20-dados-rpg ou genius-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.
  4. 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

  1. 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).

  2. Abra o Microsoft Teams e navegue até a equipe da sua turma.

  3. Acesse o canal Geral ou a aba Tarefas / Assignments.

  4. Encontre a tarefa correspondente ao projeto que você deseja entregar (ex: Entrega do Projeto P06).

  5. Clique no botão Anexar / Add work no painel da tarefa.

  6. Escolha a opção Link e 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).

  7. 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! 🎮🚀