morethanadiagnosis-hub/openspec/changes/2025-11-17-mobile-stack-decision/proposal.md

48 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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>`