PackageTrack
Sign in Get early access

archbase_flutter

Framework Flutter empresarial — services (API, auth, cache offline-first), widgets Material 3, templates de tela CRUD, validadores brasileiros (CPF/CNPJ) e CLI generator.

0.7.0 edsonmartins/archbase-flutter

What this package is like to depend on

Last release 17 days ago

06 Aug 2026

Release timing varies

gaps range from 1 weeks to 2 months

Nearly every release is documented

notes for 5 of 5 stable releases

Nothing withdrawn

no release was ever pulled

3 months old

5 releases · first in 2026

5 releases in the last 12 months

see the full history below

Release timeline

5 releases · May 2026 to Aug 2026
Release Pre-release

Releases

latest 5
  1. 0.7.0 06 Aug 2026
    Release notes

    archbase_flutter 0.7.0 — coalescência por mutação (SYNC-001/002) + es…

    Open source →
    Release notes

    Adicionado

    • ArchbaseSyncEngine.save(coalesce: true) — coalescência local por (type, aggregateId), opt-in (default false). Desacopla a chave de coalescência (estável) do operationId (id de mutação, único por envio):
      • enquanto a op está pendente, uma nova edição do mesmo (type, aggregateId) substitui o payload da op ainda não enviada (preserva a posição na fila e reusa o id, que nunca saiu do device);
      • depois do ACK (op removida), a próxima edição vira uma op nova com UUID, então o servidor não a devolve como SKIPPED por reuso de id.
      • Elimina a perda silenciosa do anti-padrão de operationId estável TYPE:aggregateId (edições descartadas após o primeiro envio).
    • ArchbaseAtomicWriteStore — capacidade OPCIONAL do store: grava a entidade otimista e a operação de outbox na mesma transação. O motor a usa quando o store implementa (o ArchbaseSqfliteStore implementa); senão, cai no modo sequencial. Evita o estado inconsistente (entidade pendente sem op, ou registro removido antes do delete entrar na fila) após um crash.

    Notas

    • Tudo aditivo/opt-in: atualizar de 0.6.x não muda o comportamento de quem já usa o motor. Nenhuma migração de schema (a coalescência usa as colunas type/aggregate_id já existentes).
    • Implementações próprias de ArchbaseLocalStore seguem válidas sem mudança; para ganhar a escrita atômica, basta também implementar ArchbaseAtomicWriteStore.
    Open source →
  2. 0.6.2 06 Aug 2026
    Release notes

    archbase_flutter 0.6.2 — coalescing anti-ghost + resgate de dead-letter

    Open source →
    Release notes

    Adicionado

    • Coalescing delete↔upsert (anti-ghost) no motor: ArchbaseSyncEngine.save(..., supersedeAggregate: true) cancela todas as operações do mesmo agregado — abertas e terminais (exhausted/rejected/ conflict) — antes de enfileirar a nova. Elimina o "registro que ressuscita": um DELETE não deixa para trás um UPSERT no dead-letter que seria recriado depois.
    • Resgate de dead-letter (opt-in) via maxRescuesPerOperation (default 0 = desligado). Quando > 0, o drain() promove operações exhausted de volta a pending até este teto por operação — destrava a fila quando o erro terminal pode ter sido resolvido no servidor (ex.: a dependência voltou a existir), sem virar retry infinito. Contador em memória (por sessão). Também exposto como ArchbaseSyncEngine.rescueExhausted() para chamada manual.

    Notas

    • Ambos são aditivos e opt-in (defaults preservam o comportamento anterior): atualizar de 0.6.1 não exige nenhuma mudança em quem já usa o motor.
    Open source →
  3. 0.6.1 30 Jul 2026
    Release notes

    Adicionado

    • Reconciliação por transação no motor: ArchbaseSyncEngine.reconcilePendentes() pergunta ao servidor (via ArchbaseSyncSender.queryStatus) quais das operações ainda não confirmadas (pending/sending/failed/blocked/exhausted) já foram processadas e fecha essas — marca a entidade sincronizado e remove a op. Resolve o caso "o servidor deu commit mas o cliente perdeu o response" (inclusive ops que esgotaram o retry). Read-only, por transação individual.
    • ArchbaseSyncSender.queryStatus(operationIds) + ArchbaseSyncStatusResponse (contrato do endpoint POST /api/v1/sync/operations/status).
    • ArchbaseSyncEngine.failedOperations() — expõe as ops em erro terminal (conflict/exhausted/rejected) com lastError, para o app listar com o motivo.

    Notas

    • Implementadores de ArchbaseSyncSender agora precisam do método queryStatus (mudança de contrato).
    Open source →
  4. 0.6.0 27 Jul 2026
    Release notes

    archbase_flutter 0.6.0 — motor offline-first

    Open source →
    Release notes

    Adicionado

    • Módulo offline-first reutilizável em lib/src/offline/ (barrel archbase_offline.dart):
      • ArchbaseSyncEngine — outbox + drain single-flight, backoff exponencial + jitter, dependsOn que BLOQUEIA, dead-letter (exhausted) com retry manual, gating de binário, snapshot reativo para badges e hook de reconciliação.
      • ArchbaseSyncable / ArchbaseSyncState — contrato de entidade sincronizável (id UUID cliente, syncState, clientUpdatedAt, serverVersion, deletedAt).
      • ArchbaseSqfliteStore (implementa ArchbaseLocalStore) — store local em single-table JSON + outbox, watch<T>() reativo, opener injetável para SQLCipher; registro por ArchbaseEntityCodec (sem codegen).
      • Protocolo em lote (archbase_sync_protocol.dart): ArchbaseSyncSender (porta), serialização de operações e parsing de ACKs (PROCESSED/SKIPPED/CONFLICT/BLOCKED/ REJECTED/FAILED) — casa com POST /api/v1/sync/operations do archbase-offline-sync.
      • ArchbaseBinaryUploader (porta) para upload de binários em canal separado, com gating.
    • ADR-0001 (motor offline-first) + design do contrato do módulo em docs/.
    Open source →
  5. 0.5.3 16 May 2026
    Release notes

    🎉 Primeira release pública no pub.dev

    📦 https://pub.dev/packages/archbase_flutter

    dependencies:
      archbase_flutter: ^0.5.3

    Junto com a lib principal, os 2 adapters de state management também subiram:

    📚 Documentação completa: https://edsonmartins.github.io/archbase-flutter-docs/
    🚀 Boilerplate (template repo): https://github.com/edsonmartins/archbase-flutter-boilerplate


    O que tem na lib

    • Core — bootstrap, config/env, exceções, base de controllers/services
    • Services — API client (Dio), Auth com refresh coordenado, Cache (Hive + TTL), Connectivity, Offline sync queue (retry + backoff), Storage unificado (SharedPrefs + SecureStorage), Geolocation, Push, Media
    • Theme & i18n — Material 3 com tokens semânticos, alto contraste, escala de fonte; bundle pt-BR + en
    • Forms — sistema declarativo (ArchbaseForm + ArchbaseFormController) + validators BR (CPF, CNPJ, CNH, placa, telefone) + máscaras
    • Widgets — feedback, forms, layout, display, structural, charts (line/pie/bar/area), dialogs, media
    • Screens templates — Login, Splash, CRUD List/Form, Detail, Settings, Intro
    • CLI — dart run archbase_flutter:archbase feature gera scaffold completo de feature CRUD

    Mudanças desta versão (0.5.3)

    • documentation: no pubspec aponta para o URL real do site (/archbase-flutter-docs/)
    • Adapters bumpados pra depender de archbase_flutter: ^0.5.3

    Ver CHANGELOG.md para o histórico completo desde 0.1.0.

    Estatísticas

    • 296 testes (unit + widget) passando
    • 4 flows Maestro E2E (login, CRUD, offline, settings)
    • CI: 5 jobs (lib + 2 adapters + demo + APK build) + Maestro Cloud (Android + iOS)
    Open source →
    Release notes

    Mudou

    • documentation: no pubspec aponta para o URL real do site (/archbase-flutter-docs/ — o repo de docs é separado da lib)
    • Adapters (_riverpod, _getx) também atualizados — agora dependem de archbase_flutter: ^0.5.3 e o documentation URL correto
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive