# 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` - [ ] 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)