6.0 KiB
6.0 KiB
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
- 01 — Analyze and document current Expo architecture →
01-analyze-current-architecture.md - 02 — Design shared data models for all platforms →
02-design-shared-data-models.md
Phase 2: Data Models (Per Platform)
- 03 — Implement iOS data models (Swift) →
03-implement-ios-data-models.md - 04 — Implement Android data models (Kotlin) →
04-implement-android-data-models.md - 05 — Implement Linux data models (C/Vala) →
05-implement-linux-data-models.md
Phase 3: Database Layer (Per Platform)
- 06 — Implement iOS database layer (Core Data/GRDB) →
06-implement-ios-database-layer.md - 07 — Implement Android database layer (Room) →
07-implement-android-database-layer.md - 08 — Implement Linux database layer (SQLite) →
08-implement-linux-database-layer.md
Phase 4: Feed Parsing (Per Platform)
- 09 — Implement iOS RSS/Atom feed parser →
09-implement-ios-feed-parser.md - 10 — Implement Android RSS/Atom feed parser →
10-implement-android-feed-parser.md - 11 — Implement Linux RSS/Atom feed parser →
11-implement-linux-feed-parser.md
Phase 5: Feed Fetching (Per Platform)
- 12 — Implement iOS feed fetcher service →
12-implement-ios-feed-fetcher.md - 13 — Implement Android feed fetcher service →
13-implement-android-feed-fetcher.md - 14 — Implement Linux feed fetcher service →
14-implement-linux-feed-fetcher.md
Phase 6: State Management (Per Platform)
- 15 — Implement iOS state management (Combine/Observer) →
15-implement-ios-state-management.md - 16 — Implement Android state management (StateFlow/LiveData) →
16-implement-android-state-management.md - 17 — Implement Linux state management (GObject signals) →
17-implement-linux-state-management.md
Phase 7: Services (Per Platform)
Background Sync
- 18 — Implement iOS background sync service →
18-implement-ios-background-sync.md - 19 — Implement Android background sync service →
19-implement-android-background-sync.md - 20 — Implement Linux background sync service →
20-implement-linux-background-sync.md
Search Service
- 21 — Implement iOS search service (FTS) →
21-implement-ios-search-service.md - 22 — Implement Android search service (FTS) →
22-implement-android-search-service.md - 23 — Implement Linux search service (FTS) →
23-implement-linux-search-service.md
Notifications
- 24 — Implement iOS notification service →
24-implement-ios-notifications.md - 25 — Implement Android notification service →
25-implement-android-notifications.md - 26 — Implement Linux notification service →
26-implement-linux-notifications.md
Settings Store
- 27 — Implement iOS settings/preferences store →
27-implement-ios-settings-store.md - 28 — Implement Android settings/preferences store →
28-implement-android-settings-store.md - 29 — Implement Linux settings/preferences store →
29-implement-linux-settings-store.md
Bookmark Store
- 30 — Implement iOS bookmark store →
30-implement-ios-bookmark-store.md - 31 — Implement Android bookmark store →
31-implement-android-bookmark-store.md - 32 — Implement Linux bookmark store →
32-implement-linux-bookmark-store.md
Phase 8: UI Integration (Per Platform)
- 33 — Integrate business logic with iOS UI →
33-integrate-ios-business-logic.md - 34 — Integrate business logic with Android UI →
34-integrate-android-business-logic.md - 35 — Integrate business logic with Linux UI →
35-integrate-linux-business-logic.md
Phase 9: Testing
- 36 — Write unit tests for iOS business logic →
36-write-unit-tests-ios.md - 37 — Write unit tests for Android business logic →
37-write-unit-tests-android.md - 38 — Write unit tests for Linux business logic →
38-write-unit-tests-linux.md - 39 — Write cross-platform integration tests →
39-write-integration-tests.md
Phase 10: Optimization
- 40 — Performance optimization and benchmarking →
40-performance-optimization.md
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)