← Capabilities

New capability

A real mobile foundation, not a webview

s-m-r-t now shares offline behavior, authentication, network contracts, evidence capture, and presentation state across native Android and iOS apps.

Shared mobile logic
ComposeSwiftUIOffline queueAuthEvidence
Shared state and offline behavior sit behind native Android and iOS interfaces.

Offline is designed into the write path

A SQLDelight queue stores durable requests, replays them through a shared authenticated client, and uses idempotency keys so retrying a capture does not duplicate it. Offline packs are integrity-checked immutable snapshots with localized text resolution.

Native capabilities sit behind small seams

Barcode scanning, speech, on-device models, secure credential storage, location, evidence bytes, and auth launchers remain platform implementations of shared contracts.

  • Android: Compose, ML Kit, speech, Gemini Nano, Keystore, Custom Tabs.
  • iOS: SwiftUI, VisionKit, Speech, Foundation Models, Keychain, ASWebAuthenticationSession.
  • Shared: StateFlow presenters, session bootstrap, packs, evidence, networking, and queue policy.

The server contract is part of the framework

smrt-users provides reusable /api/mobile handlers for brokered PKCE login, session bootstrap, device registration, and multipart upload. App-specific bootstrap data belongs in an explicit extras object.