Files
2026-02-17 01:08:02 -05:00

1.6 KiB

PRD: Mobile Client

Module: mobile/ | Namespace: TBD Status: Deferred (v2+) | Last updated: 2026-02-17


1. Overview

Mobile client is deferred to a future version. The architecture supports it via the same Auth GW + SSE pattern used by the web and TUI clients.

2. Options to Evaluate

Option Pros Cons
PWA (web-sm) Zero extra work — web UI works on mobile browsers. Add manifest + service worker for installability. Limited push notifications, no native feel.
ClojureDart Stay in Clojure ecosystem. Compiles to Dart/Flutter. Immature ecosystem, debugging harder.
React Native + API Mature ecosystem, native feel, large talent pool. Separate language (JS/TS), not Clojure.

Start with PWA (progressive web app from web-sm) for mobile access in v1. Evaluate native options for v2 based on user feedback.

PWA requirements (P2, not v1):

  • Add web app manifest to web-sm
  • Add service worker for offline caching
  • Responsive CSS for mobile viewports
  • Touch-friendly interaction sizes

4. Architecture (Future Native)

Same pattern as TUI client:

Mobile App ←─ SSE (JSON) ──→ Mobile SM ──→ NATS
           ←─ HTTP POST ───→           ──→ API

A dedicated Mobile SM would handle push notification routing and mobile-specific optimizations (battery-aware polling, data compression).

5. No Test Cases

No test cases defined for the mobile client as it is deferred. Test cases will be created when a specific implementation approach is chosen.