Research: React Native + React selected for mobile and web
- Completed mobile-first platform strategy research - React Native selected for iOS and Android mobile apps - React selected for web companion app - 70-80% code sharing between mobile and web - Excellent health sensor integration (HealthKit, Health Connect) - QR scanning, encryption, and background sync support - Created comprehensive frontend research documentation - Updated README with platform strategy - Updated tech stack decisions Key advantages: - Single language (TypeScript) reduces development cost - 70-80% code sharing between mobile and web - Excellent health sensor integration - Great chart visualization for web companion - Faster time to market Next: State management research (Redux vs Zustand)
This commit is contained in:
parent
eef5aed28e
commit
307f4964fa
4 changed files with 963 additions and 33 deletions
147
thoughts/research/2026-02-14-frontend-decision-summary.md
Normal file
147
thoughts/research/2026-02-14-frontend-decision-summary.md
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
# Frontend Framework Decision Summary
|
||||
|
||||
**Date**: 2026-02-14
|
||||
**Decision**: **React Native + React**
|
||||
|
||||
---
|
||||
|
||||
## Platform Strategy
|
||||
|
||||
### Primary: Mobile Apps (iOS + Android)
|
||||
- Daily health tracking and data entry
|
||||
- Health sensor integration (HealthKit, Health Connect)
|
||||
- QR code scanning (lab results)
|
||||
- Push notifications (reminders)
|
||||
- Background sync
|
||||
|
||||
### Secondary: Web Browser
|
||||
- Complex data visualization and charts
|
||||
- Historical trend analysis
|
||||
- Profile and family management
|
||||
- Extensive reporting
|
||||
|
||||
---
|
||||
|
||||
## Framework Decision: React Native + React
|
||||
|
||||
| Criteria | React Native + React | Flutter | Native |
|
||||
|----------|---------------------|----------|--------|
|
||||
| Code Sharing | 70-80% | 0% | 0% |
|
||||
| Development Cost | Low | Medium | High |
|
||||
| Time to Market | Fast | Medium | Slow |
|
||||
| Health Sensors | ✅ Excellent | ✅ Excellent | ✅ Excellent |
|
||||
| QR Scanning | ✅ Excellent | ✅ Excellent | ✅ Excellent |
|
||||
| Performance | Good | Excellent | Excellent |
|
||||
| Team Skills | JS/TS only | Dart + JS | Swift + Kotlin + JS |
|
||||
| Ecosystem | Largest | Large | Native |
|
||||
|
||||
---
|
||||
|
||||
## Key Advantages
|
||||
|
||||
### 1. Code Sharing (70-80%)
|
||||
- Business logic: State, API, encryption
|
||||
- Data validation: Zod schemas
|
||||
- Date handling: date-fns
|
||||
- Utilities: Monorepo shared package
|
||||
|
||||
### 2. Health Sensors
|
||||
- iOS: react-native-health (HealthKit)
|
||||
- Android: react-native-google-fit (Health Connect)
|
||||
- Background sensor data collection
|
||||
|
||||
### 3. Encryption
|
||||
- react-native-quick-crypto
|
||||
- AES-256-GCM, PBKDF2
|
||||
- Secure key storage (Keychain/Keystore)
|
||||
- Web Crypto API compatible
|
||||
|
||||
### 4. QR Scanning
|
||||
- react-native-camera
|
||||
- Fast, accurate scanning
|
||||
|
||||
### 5. Web Charts
|
||||
- Recharts (React)
|
||||
- Beautiful, interactive visualizations
|
||||
- Perfect for health data
|
||||
|
||||
### 6. Team & Cost
|
||||
- Single language: JavaScript/TypeScript
|
||||
- Single ecosystem: npm
|
||||
- Lower development cost
|
||||
- Faster time to market
|
||||
|
||||
---
|
||||
|
||||
## Technology Stack
|
||||
|
||||
### Mobile (React Native)
|
||||
- Framework: React Native 0.73+
|
||||
- Language: TypeScript
|
||||
- Health: react-native-health, react-native-google-fit
|
||||
- Camera: react-native-camera
|
||||
- Encryption: react-native-quick-crypto
|
||||
- HTTP: Axios
|
||||
|
||||
### Web (React)
|
||||
- Framework: React 18+
|
||||
- Language: TypeScript
|
||||
- Charts: Recharts
|
||||
- HTTP: Axios
|
||||
- UI: Tailwind CSS / Chakra UI
|
||||
|
||||
### Shared (Monorepo)
|
||||
- Language: TypeScript
|
||||
- State: Redux/Zustand (TBD)
|
||||
- API: Axios
|
||||
- Encryption: AES-256-GCM, PBKDF2
|
||||
- Validation: Zod
|
||||
- Date: date-fns
|
||||
|
||||
---
|
||||
|
||||
## Implementation Timeline
|
||||
|
||||
### Phase 1: Mobile MVP (8-12 weeks)
|
||||
- Setup React Native project
|
||||
- Integrate HealthKit and Health Connect
|
||||
- Implement encryption
|
||||
- Build core UI
|
||||
- Test QR scanning
|
||||
- Background sync
|
||||
|
||||
### Phase 2: Web Companion (4-6 weeks)
|
||||
- Setup React project
|
||||
- Share business logic
|
||||
- Build charts
|
||||
- Profile management UI
|
||||
|
||||
### Phase 3: Polish & Launch (4-6 weeks)
|
||||
- Performance optimization
|
||||
- Security audit
|
||||
- App store submission
|
||||
- Beta launch
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. ✅ Mobile Framework: React Native
|
||||
2. ⏭️ State Management: Redux vs Zustand
|
||||
3. ⏭️ Database Schema Design
|
||||
4. ⏭️ Create Health Sensor POC
|
||||
5. ⏭️ Implement Authentication
|
||||
|
||||
---
|
||||
|
||||
## Conclusion
|
||||
|
||||
**React Native + React** is optimal for Normogen:
|
||||
|
||||
- 70-80% code sharing reduces development cost
|
||||
- Excellent health sensor integration
|
||||
- Single language (JavaScript/TypeScript)
|
||||
- Great chart visualization for web
|
||||
- Faster time to market
|
||||
|
||||
**Decision**: Use **React Native** for mobile (iOS + Android) and **React** for web companion app.
|
||||
Loading…
Add table
Add a link
Reference in a new issue