archbase_flutter 0.5.3
archbase_flutter: ^0.5.3 copied to clipboard
Framework Flutter empresarial — services (API, auth, cache offline-first), widgets Material 3, templates de tela CRUD, validadores brasileiros (CPF/CNPJ) e CLI generator.
Changelog #
0.5.3 — corrige URL de docs #
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 dearchbase_flutter: ^0.5.3e o documentation URL correto
0.5.2 — metadata para pub.dev #
Mudou #
pubspec.yaml: description trimada para 180 chars (limite recomendado pelo pana), adicionadosissue_tracker,documentationetopics(framework,ui,offline,material-design,scaffolding)
Adicionado #
- Site oficial de documentação em
https://edsonmartins.github.io/archbase-flutter-docs/ (Docusaurus 3 +
pt-BR/en, repo:
archbase-flutter-docs)
0.5.1 — iOS no Maestro Cloud #
Adicionado #
- Job
cloud-iosem.github/workflows/maestro-cloud.yml, rodando emmacos-latest: build do.apppara iOS Simulator (sem assinatura), zip e upload viaaction-maestro-cloud - Os 4 flows agora usam
appId: ${APP_ID}para servir Android e iOS (bundle id difere — iOS não permite_) - Job Android antigo renomeado para
cloud-android(clareza) - Cada job passa o
APP_IDcerto viaenv:no action
Mudou #
demo/.maestro/config.yamle os 4 flows:appIdparametrizadodemo/.maestro/README.md: documentaexport APP_ID=...para rodar localmente
Roadmap restante #
- Bricks Mason equivalentes ao CLI Dart (interativo) — opcional
0.5.0 — CLI generator #
Adicionado #
- CLI Dart
archbase(bin/archbase.dart), exposto viaexecutables:e invocável pordart run archbase_flutter:archbase - Comando
feature <nome>: gera scaffold completo de uma feature CRUD (model + repository + controller + 3 telas), com nomes derivados em snake/Pascal/camel/human automaticamente - Helpers
Casing(snake, kebab, camel, pascal, human) reutilizáveis - Suporte a
--root,--endpoint,--force
Dependências #
args: ^2.5.0(parser do CLI)path: ^1.9.0(manipulação de paths)
Testes #
- +12 testes (Casing + FeatureScaffold em diretório temp) → 296 totais
0.4.4 — Maestro Cloud no CI #
Adicionado #
- Workflow
.github/workflows/maestro-cloud.ymlque constrói o APK do demo e roda os 4 flows Maestro em devices reais via Maestro Cloud. - Triggers:
pushparamainquandodemo/**muda, eworkflow_dispatchmanual. Workflow separado do CI principal para isolar o custo (Maestro Cloud é pago por minuto). - Gate em secret: se
MAESTRO_CLOUD_API_KEYnão estiver configurado, o job termina como "skipped" sem falhar (forks-friendly). - Docs no
demo/.maestro/README.mdexplicando como gerar a API key e adicionar o secret no GitHub. - Badge do workflow no README principal.
0.4.3 — cobertura de media (parcial) #
Testes #
- +6 testes para
ArchbaseSwipeToConfirm(rendering, ícone, cor) eArchbaseSignaturePad(placeholder, labels custom, confirmar vazio) - Total: 278 → 284. Gestos de swipe complexos ficam por conta do E2E
Maestro (
tester.dragé frágil quando o GestureDetector se move junto)
0.4.2 — cobertura de screens #
Testes #
- +29 testes nas screens templates:
ArchbaseIntroScreen,ArchbaseDetailScreen(modo seções + modo abas),ArchbaseCrudFormScreen(validate, submit, delete, discard guard),ArchbaseSettingsScreen(theme toggle, contraste, logout),ArchbaseSplashScreen(bootstrap, onReady, onError, minimumDisplay) - Total: 249 → 278 testes. Cobertura de screens públicas em 100%.
0.4.1 — cobertura de testes #
Testes #
- +47 testes (dialogs, display, shimmer, dropdown, search, country picker, layout, sticky header, clippers) → 249 totais
- Cobertura de widgets públicos sobe para ~85% (ainda faltam apenas os widgets que dependem de plugins nativos — media/scanner/audio)
0.4.0 — charts + i18n #
Adicionado #
Charts (wrappers opinados sobre fl_chart)
ArchbaseLineChart— múltiplas séries, eixos auto, tooltip, legendArchbasePieChart— slices nomeados, donut com center text, animaçãoArchbaseBarChart— barras agrupadas com labels de eixo XArchbaseAreaChart— line com fill- Compartilham
ArchbaseChartSeries,ArchbaseChartPoint,ArchbaseChartSliceeArchbaseChartLegend - Cores automáticas da
ArchbaseColors.chartPalettequando não informadas
i18n
ArchbaseLocalizations(abstract) — bundle com todos os strings da lib (~80 chaves: validators, botões, dialogs, erros HTTP, login, settings, sync banner)ArchbaseLocalizationsPtBr— implementação defaultArchbaseLocalizationsEnUs— implementação de referênciaArchbaseLocalizations.set(...)para override globalArchbaseLocalizationsScope(InheritedWidget) para override por subárvoreArchbaseLocalizations.of(context)resolve scope → global- Validators e
ArchbaseErrorInterceptoragora consultam o bundle ativo
Testes #
- +16 testes (charts + i18n) → 202 totais
0.3.0 — state management adapters #
Sub-pacotes opcionais em packages/ para ergonomia em um state mgmt
específico. A lib mãe continua agnóstica.
Adicionado #
archbase_flutter_riverpod (packages/archbase_flutter_riverpod/)
- 7 providers para os singletons (
archbaseApiProvider, etc.) - 5 stream providers reativos (
archbaseIsAuthenticatedProvider,archbaseCurrentUserProvider,archbaseIsConnectedProvider,archbaseConnectionTypeProvider,archbaseSyncStatusProvider) ArchbaseRiverpodNotifier<TState>—StateNotifiercomguard()
archbase_flutter_getx (packages/archbase_flutter_getx/)
ArchbaseGetBindings— registra services no Get containerArchbaseGetController—GetxControllerbase comguard()(RxBool isLoading,RxnString error)- Extension
ValueListenable<T>.asRx()+BridgedRx<T>para usar osValueNotifiers da lib comObx
CI #
- 2 jobs novos:
adapter-riverpod,adapter-getx(paralelos ao demo)
0.2.0 — anteros migration #
Portagem de componentes selecionados da anterosflutter (lib antiga). Tudo
foi reescrito para Material 3, sem RxDart/Flare e mantendo o estilo
agnóstico de state management.
Adicionado #
Validators
cnh,plateBr,ageMin,url,creditCard,equal,notEqual,pattern,numericBetween
Formatters / máscaras
ArchbaseMaskFormatter.cnh,creditCardArchbasePlateFormatter(uppercase + alphanumeric, 7 chars)
Forms (sistema declarativo)
ArchbaseForm+ArchbaseFormController(gerencia valores e erros sem amarrar a state mgmt externo)ArchbaseFormTextFieldintegrado ao controller vianame:- Campos especializados:
ArchbaseFormCpfField,CnpjField,CnhField,PlateField,PhoneBrField,EmailField,CepField,BirthDateField
Widgets — display
ArchbaseTextAvatar(iniciais com cor determinística por hash de texto)ArchbaseAvatarStack(avatares sobrepostos com+N)ArchbaseGlassContainer(glass morphism com BackdropFilter)ArchbaseCarousel(paginação, autoplay, loop infinito)ArchbaseBadgeAdv(badge posicional sobre um child)
Widgets — layout
ArchbaseDraggableHome(header colapsável, sem RxDart)ArchbaseFloatingNavBar(bottom nav flutuante com label inline)
Widgets — structural
ArchbaseAccordion(single ou multi-open)ArchbaseStickyHeader+ArchbaseStickyHeaderDelegateArchbaseTimeline(vertical com pontos+linha)ArchbaseClippers:WaveClipper,ArcClipper,DiagonalClipper,ArchbaseClippedHeader
Widgets — forms
ArchbaseNumericStepper(touch spin com -/+)ArchbaseCountryPicker(~28 países com bandeiras emoji e dial code)
Screens
ArchbaseIntroScreen(onboarding paginado)
Utils
ArchbaseExtensions: 30+ extensions úteis em String, num, DateTime, List, Iterable, Map, BuildContext
Testes #
- 186 testes passando (de 138 → 186, +48 novos)
Não portado (decisão consciente) #
- Wrappers de
flare_flutter(deprecado) - TabBar/ListTile/Drawer wrappers (Material atual cobre)
- Componentes que duplicam
flutter_colorpicker,cool_alert phone_number:0.12.0+2(abandonado) — usarlibphonenumber_plusou similares se precisar
0.1.0 — initial #
- Setup do pacote, theme system, services base (Api/Auth/Cache/Connectivity/Storage/OfflineSync/Geolocation/Push/Media)
- Widgets reutilizáveis (Loading, Empty, Input, Button, AppBar, AudioRecorder, SignaturePad, PhotoGallery, BarcodeScanner)
- Templates de tela (Login, Splash, Crud List/Form, Settings)
- Validadores brasileiros (CPF/CNPJ/telefone/email/senha) e formatadores
- Modelos: ApiResponse<T>, PaginatedResponse<T>, BaseDto