-
Notifications
You must be signed in to change notification settings - Fork 0
12 Cross Platform Client Architecture
Corresponding Specifications:
sys-arch/ui-ux-01-product-foundation-cross-platform-interaction-architecture.md,sys-arch/ui-ux-02-desktop-dioxus-app-shell-navigation-window-architecture.md,sys-arch/ui-ux-03-android-jetpack-compose-app-shell-navigation-lifecycle-architecture.md
Key Modules:crates/siar-ui-state,apps/desktop,apps/android
SIAR uses a Single Core, Native Presentation architectural model:
+-------------------------------------------------------------------------------+
| Desktop UI (Dioxus 0.7) Android UI (Jetpack Compose) |
| Rust-Native Cross-Platform Kotlin Material 3 |
+------------------------------------+------------------------------------------+
| (JNI Bridge / Direct In-Process Memory)
+------------------------------------v------------------------------------------+
| SIAR Reactive UI State Engine (siar-ui-state) |
| - Unidirectional Data Flow (UDF) - Optimistic UI Mutators |
| - Caching & View State Slices - Subscription Event Bus |
+------------------------------------+------------------------------------------+
|
+------------------------------------v------------------------------------------+
| Underlying Rust Workspace Services |
| (siar-storage, siar-messaging, siar-routing, siar-crypto, siar-calls) |
+-------------------------------------------------------------------------------+
- Zero Business Logic in UI: All encryption, routing, validation, database operations, and state machine transitions execute strictly inside the Rust workspace.
-
Deterministic UI State: The UI is a pure projection of the reactive state models exposed by
siar-ui-state. -
Instant Responsiveness: Optimistic updates render message bubbles and UI interactions in
$< 16\text{ms}$ (60 fps), updating delivery ticks asynchronously as network events arrive.
The desktop application (apps/desktop) is written entirely in modern Rust using Dioxus 0.7:
#[component]
pub fn AppShell() -> Element {
let active_tab = use_signal(|| NavigationTab::Inbox);
let system_health = use_signal(|| MeshHealthStatus::Healthy);
rsx! {
div { class: "app-container dark-theme",
SidebarNavigation { active_tab }
MainContentSplitView { active_tab }
StatusBarMeshTelemetry { system_health }
}
}
}- Multi-Pane Responsive Layout: Collapsible sidebar, virtualized conversation stream, detail inspection sidebar.
- System Tray & Hotkeys: Native window minimizing to notification tray with global emergency shortcut keys.
-
Hardware Acceleration: GPU-accelerated rendering with low idle RAM footprint (
$< 60\text{ MB}$ ).
The Android application (apps/android) combines modern Jetpack Compose Kotlin UI with native Rust performance:
[Kotlin Jetpack Compose ViewModels]
|
v
[SiarNativeBridge (JNI Interface)]
|
v
[crates/siar-ui-state & Rust Core Engine]
-
MeshForegroundService: Maintains persistent low-power BLE advertising/scanning and Wi-Fi Direct listening when the screen is locked. -
WakeLock Management: Partitions wakeups into short, bounded micro-windows (
$< 250\text{ms}$ ) to preserve battery longevity while maintaining mesh routing presence. - Material You Dynamic Theming: Adaptive color palette conforming to system dark mode and user accessibility settings.
SIAR — Survivable Identity & Autonomous Routing
Open Source Mesh & DTN Communications Platform | Dual Licensed under MIT / Apache-2.0 / Commercial
Documentation Index • GitHub Repository • System Specifications
- 04-Autonomous-Routing-and-Policy-Engine
- 05-Proximity-and-Hardware-Transports
- 06-Delay-Tolerant-Networking-and-Bundle-Forwarding
- 07-Battery-Aware-Scheduling-and-Emergency-Mesh
- 08-Offline-Event-Log-and-Outbox-Engine
- 09-Robust-Blob-Storage-and-Chunk-Transfers
- 10-Crash-Recovery-and-Data-Portability
- 11-Realtime-Audio-Video-Calling-Architecture
- 12-Cross-Platform-Client-Architecture
- 13-Messaging-Timeline-Composer-and-Inbox
- 14-Contacts-Groups-and-Security-Center
- 15-Nearby-Discovery-and-Out-of-Band-Pairing
- 16-Notifications-Presence-and-Background-Lifecycle
- 17-Local-Knowledge-Retrieval-and-Search
- 25-Design-System-Tokens-and-Responsive-Layouts
- 26-UI-UX-Performance-Testing-and-Quality-Gates
- 18-Protocol-Extensions-and-WASM-Plugins
- 19-Headless-Daemons-and-Embedded-Nodes
- 20-C-ABI-FFI-and-Native-Language-Bindings
- 21-Testing-Fuzzing-and-Network-Diagnostics
- 22-Getting-Started-and-Developer-Guide
- 23-Off-Grid-Survival-and-Field-Operations-Guide
- 24-System-Comparison-and-Benchmarking