Files
ajet-chat/docs/prd/mobile.md
2026-02-17 01:08:02 -05:00

43 lines
1.6 KiB
Markdown

# 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. |
## 3. Recommended Path
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.