Files
RSSuper/tasks/native-business-logic-migration/README.md

108 lines
6.4 KiB
Markdown

# Native Business Logic Migration
Objective: Migrate RSSuper business logic from Expo/TypeScript to native platforms (iOS, Android, Linux)
Status legend: [ ] todo, [~] in-progress, [x] done
## Phase 1: Analysis & Design
- [x] 01 — Analyze and document current Expo architecture → `01-analyze-current-architecture.md`
- [x] 02 — Design shared data models for all platforms → `02-design-shared-data-models.md`
## Phase 2: Data Models (Per Platform)
- [x] 03 — Implement iOS data models (Swift) → `03-implement-ios-data-models.md`
- [x] 04 — Implement Android data models (Kotlin) → `04-implement-android-data-models.md`
- [x] 05 — Implement Linux data models (C/Vala) → `05-implement-linux-data-models.md`
## Phase 3: Database Layer (Per Platform)
- [x] 06 — Implement iOS database layer (Core Data/GRDB) → `06-implement-ios-database-layer.md`
- [x] 07 — Implement Android database layer (Room) → `07-implement-android-database-layer.md`
- [x] 08 — Implement Linux database layer (SQLite) → `08-implement-linux-database-layer.md`
## Phase 4: Feed Parsing (Per Platform)
- [x] 09 — Implement iOS RSS/Atom feed parser → `09-implement-ios-feed-parser.md`
- [x] 10 — Implement Android RSS/Atom feed parser → `10-implement-android-feed-parser.md`
- [x] 11 — Implement Linux RSS/Atom feed parser → `11-implement-linux-feed-parser.md`
## Phase 5: Feed Fetching (Per Platform)
- [x] 12 — Implement iOS feed fetcher service → `12-implement-ios-feed-fetcher.md`
- [x] 13 — Implement Android feed fetcher service → `13-implement-android-feed-fetcher.md`
- [x] 14 — Implement Linux feed fetcher service → `14-implement-linux-feed-fetcher.md`
## Phase 6: State Management (Per Platform)
- [x] 15 — Implement iOS state management (Combine/Observer) → `15-implement-ios-state-management.md`
- [x] 16 — Implement Android state management (StateFlow/LiveData) → `16-implement-android-state-management.md`**FRE-527**
- [x] 17 — Implement Linux state management (GObject signals) → `17-implement-linux-state-management.md`**FRE-528**
## Phase 7: Services (Per Platform)
### Background Sync
- [x] 18 — Implement iOS background sync service → `18-implement-ios-background-sync.md`**FRE-529**
- [x] 19 — Implement Android background sync service → `19-implement-android-background-sync.md`**FRE-530**
- [x] 20 — Implement Linux background sync service → `20-implement-linux-background-sync.md`**FRE-531**
### Search Service
- [x] 21 — Implement iOS search service (FTS) → `21-implement-ios-search-service.md`**FRE-532**
- [x] 22 — Implement Android search service (FTS) → `22-implement-android-search-service.md`**FRE-533**
- [x] 23 — Implement Linux search service (FTS) → `23-implement-linux-search-service.md`**FRE-534**
### Notifications
- [x] 24 — Implement iOS notification service → `24-implement-ios-notifications.md`**FRE-535**
- [x] 25 — Implement Android notification service → `25-implement-android-notifications.md`**FRE-536**
- [x] 26 — Implement Linux notification service → `26-implement-linux-notifications.md`**FRE-537**
### Settings Store
- [x] 27 — Implement iOS settings/preferences store → `27-implement-ios-settings-store.md`**FRE-538**
- [x] 28 — Implement Android settings/preferences store → `28-implement-android-settings-store.md`**FRE-539**
- [x] 29 — Implement Linux settings/preferences store → `29-implement-linux-settings-store.md`**FRE-540**
### Bookmark Store
- [x] 30 — Implement iOS bookmark store → `30-implement-ios-bookmark-store.md`**FRE-541**
- [x] 31 — Implement Android bookmark store → `31-implement-android-bookmark-store.md`**FRE-542**
- [x] 32 — Implement Linux bookmark store → `32-implement-linux-bookmark-store.md`**FRE-543**
## Phase 8: UI Integration (Per Platform)
- [x] 33 — Integrate business logic with iOS UI → `33-integrate-ios-business-logic.md`**FRE-544**
- [x] 34 — Integrate business logic with Android UI → `34-integrate-android-business-logic.md`**FRE-545**
- [x] 35 — Integrate business logic with Linux UI → `35-integrate-linux-business-logic.md`**FRE-546**
## Phase 9: Testing
- [x] 36 — Write unit tests for iOS business logic → `36-write-unit-tests-ios.md`**FRE-547**
- [x] 37 — Write unit tests for Android business logic → `37-write-unit-tests-android.md`**FRE-548**
- [x] 38 — Write unit tests for Linux business logic → `38-write-unit-tests-linux.md`**FRE-549**
- [x] 39 — Write cross-platform integration tests → `39-write-integration-tests.md`**FRE-550**
## Phase 10: Optimization
- [x] 40 — Performance optimization and benchmarking → `40-performance-optimization.md`**FRE-551**
## Dependencies
- 01 → 02 (architecture analysis feeds into data model design)
- 02 → 03, 04, 05 (data models depend on shared design)
- 03 → 06 (iOS database depends on iOS models)
- 04 → 07 (Android database depends on Android models)
- 05 → 08 (Linux database depends on Linux models)
- 06, 07, 08 → 09, 10, 11 (feed parsers need database layer)
- 09 → 12 (iOS fetcher depends on iOS parser)
- 10 → 13 (Android fetcher depends on Android parser)
- 11 → 14 (Linux fetcher depends on Linux parser)
- 12, 13, 14 → 15, 16, 17 (state management depends on fetchers)
- 15 → 18, 21, 24, 27, 30 (iOS services depend on state management)
- 16 → 19, 22, 25, 28, 31 (Android services depend on state management)
- 17 → 20, 23, 26, 29, 32 (Linux services depend on state management)
- 30, 31, 32 → 33, 34, 35 (UI integration depends on all stores)
- 36, 37, 38 → 39 (integration tests depend on unit tests)
- 39 → 40 (optimization comes after testing)
## Exit Criteria
The feature is complete when:
- [ ] All data models implemented and tested on all platforms
- [ ] Database layer fully functional with migrations on all platforms
- [ ] RSS and Atom feed parsing working with >95% accuracy
- [ ] Feed fetching with error handling and retry logic on all platforms
- [ ] Background sync working on all platforms
- [ ] Full-text search functional on all platforms
- [ ] Notifications working for new articles on all platforms
- [ ] Settings persisted and readable on all platforms
- [ ] Bookmarks working across all platforms
- [ ] All unit tests passing (>80% coverage)
- [ ] Integration tests passing
- [ ] Performance benchmarks met (feed parse <100ms, fetch <5s, search <200ms)