AvançadoMobileAberto

Implementação de offline-first com sincronização inteligente

Arquitetura de app que funciona sem internet e sincroniza dados quando a conexão retorna.

offline-firstsincronizaçãoReact NativeWatermelonDBmobile

Objetivo do Prompt

Criar uma experiência de app que funcione perfeitamente offline, com resolução de conflitos e sincronização transparente para o usuário.

Exemplo Real de Uso

A agritech goiana CampoDigital tem um app usado por 3 mil produtores rurais em áreas com internet intermitente. Os produtores registram dados de colheita, aplicação de insumos e inspeções no campo, mas perdem dados quando estão sem sinal. Precisam de um app que funcione 100% offline.

Prompt

Projete uma arquitetura offline-first para [NOME DO APP], um app [REACT NATIVE/FLUTTER] usado por [PÚBLICO] em cenários de [DESCREVA O CENÁRIO DE CONECTIVIDADE].

**Operações que devem funcionar offline:**
1) [OPERAÇÃO 1: ex. criar registro de inspeção com fotos]
2) [OPERAÇÃO 2: ex. consultar histórico de registros]
3) [OPERAÇÃO 3: ex. editar registros existentes]
4) [OPERAÇÃO 4: ex. visualizar mapas/dashboards]

**1) Banco de Dados Local:**
- Escolha de DB: WatermelonDB vs. Realm vs. SQLite (expo-sqlite)
- Schema do banco local (tabelas, relacionamentos, índices)
- Migrations strategy para atualizações do schema
- Storage de arquivos (imagens, documentos) no filesystem local
- Limite de armazenamento e política de cleanup

**2) Queue de Sincronização:**
- Fila de operações pendentes (FIFO)
- Estrutura de cada operação: `{ id, type, entity, payload, timestamp, retries }`
- Persistência da fila (sobrevive a app kill/restart)
- Priorização: operações críticas primeiro
- Retry com exponential backoff
- Batch sync: agrupar operações para eficiência

**3) Estratégia de Sincronização:**
- Detecção de conectividade (NetInfo + polling real)
- Sync automático quando conexão retorna
- Sync manual (pull-to-refresh)
- Background sync (se suportado pelo OS)
- Sync parcial: só enviar deltas (não dados completos)
- Compression de payload para economia de dados móveis

**4) Resolução de Conflitos:**
- Cenário: mesmo registro editado offline em 2 dispositivos
- Estratégia: Last-Write-Wins vs. Merge automático vs. Prompt ao usuário
- Conflict detection: version vectors ou timestamps
- Merge rules por campo (ex: texto → merge, número → LWW)
- Log de conflitos resolvidos para auditoria

**5) UX Offline:**
- Indicador visual de status de conexão (banner discreto)
- Badge de "pendente de sync" em registros offline
- Feedback ao sincronizar: "3 registros sincronizados"
- Tratamento de sync failure: alertar sem bloquear uso
- Estimativa de dados pendentes (tamanho)

**6) Testes:**
- Simular offline no emulador/dispositivo
- Testes de conflito (criar conflito intencional)
- Stress test: 1000 operações offline → sync
- Edge cases: sync parcial, app killed durante sync

Inclua código para o SyncManager e o hook `useOfflineSync()` em [REACT NATIVE/FLUTTER].

Como usar este prompt

  1. 1Cole o prompt diretamente no ChatGPT, Claude, Gemini ou qualquer assistente de IA.
  2. 2Personalize os campos entre colchetes [assim] com suas informações específicas.
  3. 3Para melhores resultados, forneça contexto adicional sobre seu caso de uso.
  4. 4Combine múltiplos prompts em uma conversa para resultados mais completos.
  5. 5Salve os prompts que mais usa para acesso rápido no futuro.

Prompts relacionados

Ver todos

Explore outras categorias de prompts

Assine o AulasDeIA para desbloquear

Acesse 10.000+ prompts prontos para usar em qualquer profissão, além de todos os cursos da plataforma.

Assinar por R$ 49,90/mês

Cancele quando quiser. Sem multas.