Merge pull request #2 from fullsizemalt/claude/mobile-stack-decision-2025-11-17

Proposal: Mobile Stack Decision (Android/iOS)
This commit is contained in:
fullsizemalt 2025-11-17 16:49:23 -07:00 committed by GitHub
commit 3bbb2796c7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 56 additions and 0 deletions

View file

@ -0,0 +1,48 @@
# Proposal: Mobile Stack Decision (Android/iOS)
Status: draft
Authors: Platform Team
Owners: Architecture Lead, Mobile Lead
Created: 2025-11-17
Scope: spec
Related: openspec/specs/architecture.md
Summary
- Decide between React Native + Expo vs Flutter for Android/iOS with full accessibility parity, strong privacy posture, and long-term maintainability.
Motivation
- Commit to a mobile stack that accelerates delivery while meeting a11y, compliance, and performance requirements across all features.
Goals / NonGoals
- Goals: select stack, document rationale, list enabling libraries/tooling, define migration/rollback path.
- NonGoals: finalize design system visuals (handled in later proposals).
Evaluation Criteria
- Accessibility: VoiceOver/TalkBack parity; dynamic type; reduced motion; larger text support.
- Performance: cold start, nav latency, list virtualization; p95 targets defined in architecture spec.
- Ecosystem: firstparty support, community libs for a11y, storage, media, push, payments.
- Compliance & Security: secure storage, network stack, logging redaction, crash reporting controls.
- Developer Experience: CI/CD, hot reload, E2E testing, upgrade cadence.
Options
- React Native + Expo (with Reanimated, RNSkia optional, TypeScript, Detox/E2E)
- Flutter (Dart, integration_test/E2E, Impeller renderer)
Risks & Mitigations
- Accessibility gaps → add native modules or platform adapters; enforce CI a11y gates.
- Perf regressions → profiling budgets and regression tests.
Rollout Plan
- Pilot with Forum MVP screens; run A11y + perf checks; make decision.
Test Plan
- Prototype forum list/thread/post; run a11y audits; measure startup and interaction latencies.
Acceptance Criteria
- Decision recorded with rationale; pilot results included; signoff from a11y and compliance.
Slash Commands
- `/review areas=mobile,accessibility,security`
- `/apply spec=openspec/specs/architecture.md`
- `/archive link=<PR>`

View file

@ -33,3 +33,11 @@ Implementation notes
Decisions
- <record crosscutting decisions here>
Client platform decisions
- Mobile: React Native + Expo (TypeScript).
Rationale: strong a11y ecosystem, mature tooling, and DX.
Notes: Expo modules; E2E via Detox; push via Expo/FCM/APNs.
Decisions
- 2025-11-17 — Mobile stack: React Native + Expo.