blackbox_flutter 0.0.2
blackbox_flutter: ^0.0.2 copied to clipboard
Flutter bindings for Blackbox (Observer + BoxProvider + ObservableBox) with production-grade tracking.
blackbox_flutter #
Flutter bindings for blackbox.
This package adds UI integration primitives:
BoxProviderto expose boxes in the widget treeBoxObserverto rebuild widgets when tracked boxes changeSharedPrefsStoreas aPersistentStoreimplementation based onshared_preferences
Features #
- Fine-grained rebuilds through tracked box reads
- Simple dependency access via
context.box<T>() - Persistence adapter for generated persistent boxes
Installation #
dependencies:
blackbox_flutter: ^0.0.2
blackbox: any
Initialize SharedPrefsStore #
Call preload once before using persistent boxes:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SharedPrefsStore.preload();
runApp(const MyApp());
}
Basic Usage #
BoxProvider.multi(
boxes: [
counterBox,
profileBox,
],
child: const MyPage(),
);
class MyPage extends StatelessWidget {
const MyPage({super.key});
@override
Widget build(BuildContext context) {
final counter = context.box<AsyncCounterBox>();
return BoxObserver(
builder: (_) {
final out = counter.output;
return out.when(
data: (value) => Text('Count: $value'),
loading: () => const Text('Loading...'),
error: (error, _) => Text('Error: $error'),
);
},
);
}
}
Notes #
BoxProviderdoes not manage lifecycle of boxes. Dispose connectors/subscriptions manually where needed.BoxObservertracks boxes read duringbuilderexecution and rebuilds when those outputs change.
License #
MIT