📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Especialização em Flutter. Recomendado revisar antes de começar.
📁 Código deste projeto:
mobile-flutter/(os caminhos citados abaixo são relativos à subpasta).
v3.0 — Flutter 3, Dart, Hive DB, Connectivity Plus, Background Sync e Resiliência
Trilha de Especialização Pedagógica — Projeto 3 de 4
- v1: App Financeiro · Flutter 3 · Provider · Material 3
- v2: Clean Architecture · BLoC Pattern · GetIt · Dartz
- ➡️ v3 (este): App Offline-First · Banco NoSQL Hive · Sincronização em Segundo Plano
- v4: Super-App Omnichannel com Biometria & Push FCM
🎓 Nível Profissional Simulado: Engenheiro Mobile Sênior. Aplicativos de missão crítica (vendas em trânsito, logística portuária) não podem parar se a conexão 4G/5G cair. Construir uma arquitetura Offline-First com Hive NoSQL e sincronização assíncrona é a chave da resiliência móvel.
Desenvolver um Aplicativo de Vendas e Pedidos de Campo Offline-First em Flutter 3, com persistência local em alta velocidade usando o banco NoSQL embarcado Hive, detecção dinâmica de conectividade com connectivity_plus e fila de mutações com reconciliação assíncrona no backend.
“Nossos 200 representantes comerciais visitam clientes em fazendas e galpões sem sinal de internet. O app precisa salvar pedidos localmente em sub-milissegundos no banco embarcado Hive, avisar na barra superior se está Online ou Offline, e assim que o vendedor chegar na cidade com sinal de Wi-Fi, o aplicativo deve descarregar a fila de pedidos automaticamente para o servidor.”
| ID | Tipo | Descrição | Origem no Briefing |
|---|---|---|---|
| RF01 | Funcional | Gravar pedidos localmente no Hive Box sem depender de rede. | “salvar pedidos localmente” |
| RF02 | Funcional | Monitorar conectividade de rede exibindo indicador Online/Offline. | “avisar na barra superior” |
| RF03 | Funcional | Fila de sincronização automática com flags sincronizado: true/false. |
“descarregar a fila automaticamente” |
| RNF01 | Não-Funcional | Leitura e escrita local em Hive com tempo de resposta inferior a 2 milissegundos. | Alta Performance |
| RNF02 | Não-Funcional | Reatividade automática de tela com ValueListenableBuilder. |
Reatividade Flutter |
| ID | User Story | Prioridade |
|---|---|---|
| US01 | Como vendedor em área rural, quero cadastrar pedidos sem travar o aplicativo. | Alta |
| US02 | Como sistema, quero reconciliar pedidos pendentes ao restabelecer conexão. | Alta |
# Branch da funcionalidade
git checkout -b feature/US01-flutter-offline-hive
# Executar a aplicacao Flutter
flutter run
main.dart)void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Hive.initFlutter();
await Hive.openBox('pedidos_offline');
runApp(const OfflineFirstApp());
}
cd catalogo_projetos/mobile_flutter_03_offline_first_hive/mobile-flutter
flutter pub get
flutter run
flutter test
- Hive Box gravando e recuperando pedidos offline.
- Reconciliação e monitoramento de conectividade funcionando.
| ⬅️ Ver Todos os Projetos no Catálogo de Projetos | 🏠 Página Inicial do Portal |