mobiler-core
Mobiler's runtime — the developer-facing API.
Implement MobilerApp with your typed events, model, and a view built from the
widget builders. Mobiler wraps it in MobilerShell,
a Crux app speaking the fixed UI ABI
(mobiler-ui) — so the native shell stays
generic and you never touch the wire protocol.
pub type App = ;
- Capabilities via
Cx— device APIs as async effects, reached through typed helpers inupdate/input. Built in: HTTP, storage, clipboard, share, browser, toast, device info, haptics, a confirm dialog, the photo picker, camera capture, the date picker, and the time picker. Each is an opaque{plugin, op, input}effect, so adding one never changes the wire ABI; the generic shell fulfils them natively on Android, iOS, and the web. - Navigation — a core-owned
Nav<Route>stack +nav_scaffold. - Theme-as-data — dark mode, brand color, corner radius, and a
Density(Compact/Comfortable/Large —Largescales up control sizing and spacing for touch) all flow through theWidgettree. - Charts — typed builders for data viz:
bar_chart/line_chart, multi-serieschart/stacked_bar_chart/pct_stacked_bar_chart,pie_chart/donut_chart, fitness-stylerings_chart, agauge_chart, andregion_chart(variable-width coverage-gap bands). - Live native views — builders for native-engine widgets the shell hosts:
video_player(AVPlayer / ExoPlayer /<video>),web_view,pdf_view, andmap(MapKit / MapLibre — markers + tap events, no API key). - Accessibility —
a11y(child, label)(+with_a11y_hint/with_a11y_role) names any widget for VoiceOver / TalkBack. - Localization —
format(synchronous, ICU-free locale-aware currency / number / date formatting viaLocale+Currency, plusweekday_short/month_yearandLocale::week_startfor a localizedcalendar_in) andi18n(negotiatea device language + a tiny fallback-awareCatalogfor translating UI strings inview).
Most users go through the mobiler CLI, which
scaffolds a project wired to this crate and a generic native shell.
License
Dual-licensed under either MIT or Apache-2.0, at your option.