Skip to main content

GetX Adapter

archbase_flutter_getx registra os singletons no container do Get + oferece base controller + bridge para Obx.

Instalação

dependencies:
archbase_flutter_getx:
git:
url: https://github.com/edsonmartins/archbase-flutter.git
path: packages/archbase_flutter_getx

Bindings

No main, depois de ArchbaseBootstrap.init:

ArchbaseGetBindings.register();

runApp(GetMaterialApp(
initialBinding: BindingsBuilder(ArchbaseGetBindings.register),
// ...
));

Daí em diante:

final api = Get.find<ArchbaseApiClient>();
final auth = Get.find<ArchbaseAuthService>();

ArchbaseGetController

GetxController base com guard(), RxBool isLoading, RxnString error:

class ClientesGetController extends ArchbaseGetController {
final ClientesRepository repo;
final clientes = <Cliente>[].obs;

ClientesGetController(this.repo);

Future<void> load() async {
await guard(() async {
final response = await repo.list(page: 0);
clientes.value = response.content;
});
}
}

BridgedRx<T>

Extension que converte um ValueNotifier<T> da lib em um Rx<T> do Get, pra usar com Obx:

final isOnline = ArchbaseBootstrap.connectivity.isConnected.asRx();

Obx(() => Text(isOnline.value ? 'Online' : 'Offline'));

Importante: chame isOnline.disposeBridge() quando não precisar mais (geralmente no onClose do controller).