📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Especialização em Flutter. Recomendado revisar antes de começar.

💙 Super-App Omnichannel com Biometria & Push FCM no Flutter 3

v4.0 — Flutter 3, Dart, Autenticação Biométrica (TouchID/FaceID), Firebase FCM e Secure Storage

Trilha de Especialização Pedagógica — Projeto 4 de 4

🎓 Nível Profissional Simulado: Arquiteto Mobile / Tech Lead Flutter. O estágio mais avançado do desenvolvimento mobile envolve segurança de nível bancário (biometria via Hardware Enclave), armazenamento seguro de chaves criptográficas (flutter_secure_storage) e mensageria em nuvem com Firebase Cloud Messaging (FCM).

—`

🎯 Objetivo & Escopo do Projeto

Construir o Super-App Omnichannel Corporativo em Flutter 3, implementando fluxo de login por biometria nativa com local_auth, guarda de tokens JWT no cofre de segurança criptografado do sistema operacional (Keystore no Android e Keychain no iOS) e recepção de notificações Push com Firebase Cloud Messaging.

—`

🧑‍💼 Fase 1 — Levantamento de Requisitos

O Briefing do Cliente (Diretor de Segurança Digital)

“Nosso aplicativo de pagamentos precisa eliminar senhas em texto puro. O usuário deve desbloquear a carteira usando o leitor de digital ou reconhecimento facial do smartphone. Os tokens de autenticação devem ser salvos em cofre criptografado de hardware e o app deve receber alertas de transações suspeitas via Push Notification em segundo plano.”

Requisitos Funcionais (RF) e Não-Funcionais (RNF)

ID Tipo Descrição Origem no Briefing
RF01 Funcional Autenticar usuário via Biometria nativa (TouchID/FaceID/Impressão Digital) com local_auth. “desbloquear usando leitor de digital”
RF02 Funcional Armazenar tokens de sessão na Keystore/Keychain criptografada via flutter_secure_storage. “cofre criptografado de hardware”
RF03 Funcional Configurar receptor de notificações Push FCM em foreground e background. “alertas de transações suspeitas”
RNF01 Não-Funcional Conformidade com padrões de segurança bancária e criptografia AES-256 no armazenamento. Segurança Mobile
RNF02 Não-Funcional Fallback seguro para PIN caso o hardware biométrico não esteja disponível. Usabilidade

—`

📋 Fase 2 — Backlog & User Stories

ID User Story Prioridade
US01 Como correntista, quero entrar no app em 1 segundo tocando o dedo no leitor biométrico. Alta
US02 Como cliente, quero receber alertas instantâneos no celular quando uma compra for realizada. Alta

—`

🌿 Fase 3 — Engenharia em Equipe (Git Flow & Setup)

# Branch da funcionalidade
git checkout -b feature/US01-superapp-biometria-fcm

# Executar no dispositivo fisico ou emulador
flutter run

—`

🛠️ Fase 4 — Implementação Guiada (main.dart)

Future<void> _autenticar() async {
  final didAuth = await auth.authenticate(
    localizedReason: 'Por favor, confirme sua identidade para acessar o Super-App',
    options: const AuthenticationOptions(biometricOnly: true),
  );
  if (didAuth) {
    await storage.write(key: 'jwt_token', value: 'token_seguro_criptografado_xyz');
  }
}

—`

🚀 Como Executar no Laboratório

1. Abra o terminal na pasta deste projeto

No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:

cd mobile_flutter_04_omnichannel_push

2. Execute a aplicação e os testes

flutter pub get
flutter run
flutter test

[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd proj_aplicacoes_full_stack/projetos/mobile_flutter_04_omnichannel_push`

🧭 Decisões de Arquitetura (ADRs)

—`

🧪 Testes de Validação & Asserções

—`

✅ Checkpoint Final

  1. Autenticação biométrica integrada com local_auth.
  2. flutter_secure_storage blindando os tokens de sessão.

⬅️ Ver Todos os Projetos no Super-Hub 🏠 Página Inicial do Portal