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