archbase_flutter_getx 0.2.0
archbase_flutter_getx: ^0.2.0 copied to clipboard
Adapter GetX para archbase_flutter — bindings para registrar singletons no Get container, ArchbaseGetController base com guard() e bridge ValueNotifier→Rx.
archbase_flutter_getx #
Adapter GetX para a archbase_flutter.
O que tem aqui #
ArchbaseGetBindings #
Registra os singletons do ArchbaseBootstrap no container do Get para
que controllers possam fazer Get.find<T>():
GetMaterialApp(
initialBinding: ArchbaseGetBindings(),
getPages: [...],
);
Disponibiliza:
ArchbaseConfig,ArchbaseStorageService,ArchbaseCacheServiceArchbaseApiClient,ArchbaseConnectivityServiceArchbaseOfflineSyncQueue,ArchbaseAuthService(se setado)
ArchbaseGetController #
GetxController base com guard() automatizando loading + erro:
class VisitasController extends ArchbaseGetController {
final visitas = <Visita>[].obs;
final _repo = Get.find<VisitasRepository>();
Future<void> load() => guard(() async {
visitas.assignAll(await _repo.list());
});
}
Expõe:
isLoading: RxBoolerror: RxnString+hasErrorguard<T>(action)— captura exceptions e mapeia para mensagem amigávelclearError()
ValueListenable<T>.asRx() #
Bridge para usar ValueNotifiers dos services da lib com Obx:
class HomeController extends ArchbaseGetController {
late final isOnline =
Get.find<ArchbaseConnectivityService>().isConnected.asRx();
@override
void onClose() {
isOnline.disposeBridge();
super.onClose();
}
}
// No widget:
Obx(() => Text(controller.isOnline.value ? 'online' : 'offline'));
Lembre de chamar disposeBridge() no onClose do controller para
evitar listener pendurado.
Setup #
dependencies:
archbase_flutter:
path: ../archbase-flutter
archbase_flutter_getx:
path: ../archbase-flutter/packages/archbase_flutter_getx
get: ^4.6.6
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await ArchbaseBootstrap.init(config: ArchbaseConfig(...));
// (configurar AuthService etc.)
runApp(GetMaterialApp(
initialBinding: ArchbaseGetBindings(),
home: const HomePage(),
));
}
Por que adapter em vez de embutir GetX na lib mãe #
A archbase_flutter é agnóstica de state mgmt por desenho. Esse pacote
opcional dá ergonomia para quem escolheu GetX, sem forçar o resto.