nomos_flutter
nomos_flutter runs a generated Nomos business client locally inside a Flutter app. Reads and writes happen
against the local holon; cloud custody provides synchronization between devices.
Use it
dependencies:
nomos_flutter: ^0.62.3
import 'package:nomos_flutter/nomos_flutter.dart';
import 'package:co2_nomos_domain_client/co2_nomos_domain_client.dart';
NomosScope.home(
cloud: 'https://nomos.cafe',
application: 'co2-platform',
authToken: firebaseIdToken,
builder: (context, nomos) {
final app = Co2Client(nomos.bridge, actor: nomos.actor);
return Co2Home(app);
},
)
The public inputs are the application and its signed-in identity token. The client derives the subject from
the token, discovers the active application contract, and durably owns first use, later-device recovery,
local persistence, synchronization, and runtime
compatibility. It invokes builder only after the person's home is ready and verified.
If the application is absent, errorBuilder receives NomosApplicationUnavailable; deploy it once with:
githolon deploy co2-platform
Then use the generated client in business language:
final estate = await app.birth(CreateEstate(name: 'Team Alpha'));
app.watchEstates().listen(render);
Platform setup
- Android and web: no app configuration.
- iOS: device deployment target 13 or later (Apple-silicon simulators require iOS 14 or later).
- macOS on Apple silicon: deployment target 11 or later; sandboxed apps also add
com.apple.security.network.clientto DebugProfile and Release entitlements.
The package contains the client, host runner and—on Apple—the exact-pinned V8/DrumBrake executor. It does
not contain a kernel or pin one by package version. On every platform the host asks the configured provider for
its compatible kernel selection, fetches the immutable wasm32-wasip1 artifact by SHA-256, verifies it, and
keeps that exact selection in application-support storage. A first-ever start needs a connection; an app that
has started successfully can restart offline from those verified bytes.
Apple executes that same WASM through DrumBrake rather than WebKit or JIT compilation. Xcode links only the stable host ABI into the app. Compatible kernel releases, gradual rollouts and rollbacks therefore do not require a new npm, Pub, CocoaPods or App Store release. A host package release is required only when the host ABI, executor or compatibility range changes. Missing, incompatible or mismatched artifacts fail explicitly.
Libraries
- nomos_flutter
- nomos_flutter — run a generated Nomos business client inside a Flutter app.