Ignite Gym 2.0

Conheça o projeto

O Ignite Gym 2.0 é o quarto desafio da trilha da formação React Native 2022.
O objetivo é evoluir o aplicativo de treinos desenvolvido nos desafios anteriores, adicionando duas funcionalidades avançadas essenciais em aplicações móveis modernas: Push Notifications e Deep Linking.

Com esse desafio, você aprenderá a integrar serviços de notificação (OneSignal, FCM, APNS), configurar links para navegação direta em telas específicas (React Navigation + URI Scheme) e utilizar o Expo Dev Client, que possibilita trabalhar com recursos nativos indisponíveis no Expo Go.

Essas funcionalidades aproximam o projeto de um app real de academia, capaz de engajar usuários com notificações personalizadas e facilitar o acesso direto a funcionalidades críticas via links externos.

Instruções

Estrutura, regras e requisitos do projeto

1. Objetivo

Adicionar ao projeto Ignite Gym:

  • Integração completa com Push Notifications.
  • Implementação de Deep Linking para abrir fluxos dentro do app.
  • Configuração do Expo Dev Client para suporte a recursos nativos.

2. Conceitos e Regras

  1. Push Notifications
    • Criar conta e projeto no OneSignal.
    • Configurar suporte para Android (Firebase Cloud Messaging – FCM v1) e iOS (APNS com certificado p12).
    • Implementar pelo menos 3 notificações diferentes, com públicos e conteúdos variados, como:
      • Motivação para retornar ao treino (ex.: “Seu último treino foi há 3 dias. Vamos treinar hoje?”).
      • Notificação de novos exercícios disponíveis no app.
      • Relatório semanal de atividades (quantidade de exercícios realizados).
      • Convite para login/cadastro caso o usuário ainda não esteja autenticado.
    • Validar envio e recebimento no dispositivo físico.
  2. Deep Linking
    • Configurar React Navigation para gerenciar links.
    • Usar o pacote uri-scheme para registrar esquemas nativos no projeto.
    • Implementar pelo menos 3 deep links, incluindo:
      • 1 link com parâmetro (ex.: abrir tela de detalhes de exercício passando o id).
      • Links para fluxos autenticados (usuário logado) e não autenticados.
    • Implementar tratamento para rotas inexistentes (404).
  3. Expo Dev Client
    • Configurar o projeto para usar o Expo Dev Client (substituindo o Expo Go).
    • Garantir que todas as funcionalidades nativas (OneSignal, URI Scheme) funcionem dentro do novo fluxo de desenvolvimento.

3. Código da aplicação

Caso você não tenha implementado ou não queira aproveitar o código que desenvolveu em aula, você pode utilizar o que disponibilizamos no nosso Github:

GitHub - rocketseat-education/ignite-rn-04-ignite-gym


4. Desenvolvendo o projeto

Para desenvolver esse projeto, recomendamos utilizar as principais ferramentas que utilizamos durante o desenvolvimento do módulo da formação.

Caso você tenha alguma dificuldade você pode ir no nosso fórum e deixar sua dúvida por lá!

Após terminar o desafio, caso você queira, você pode tentar dar o próximo passo e deixar a aplicação com a sua cara. Tente mudar o layout, cores, ou até adicionar novas funcionalidades para ir além 🚀


5. Entrega

Após concluir o desafio, você deve enviar a URL do seu código no Github.

Além disso, que tal fazer um post no LinkedIn compartilhando o seu aprendizado e contando como foi a experiência?

É uma excelente forma de demonstrar seus conhecimentos e atrair novas oportunidades!

Obs: Se você se sentir à vontade, pode postar um print do resultado e nos marcar! Vai ser incrível acompanhar a sua evolução! 💜

Feito com 💜 por Rocketseat 👋

Tarefas

Use este checklist para ajudar a organizar a sua entrega

Projetos relacionados