Files

6.4 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.mdFRE-527
  • 17 — Implement Linux state management (GObject signals) → 17-implement-linux-state-management.mdFRE-528

Phase 7: Services (Per Platform)

Background Sync

  • 18 — Implement iOS background sync service → 18-implement-ios-background-sync.mdFRE-529
  • 19 — Implement Android background sync service → 19-implement-android-background-sync.mdFRE-530
  • 20 — Implement Linux background sync service → 20-implement-linux-background-sync.mdFRE-531

Search Service

  • 21 — Implement iOS search service (FTS) → 21-implement-ios-search-service.mdFRE-532
  • 22 — Implement Android search service (FTS) → 22-implement-android-search-service.mdFRE-533
  • 23 — Implement Linux search service (FTS) → 23-implement-linux-search-service.mdFRE-534

Notifications

  • 24 — Implement iOS notification service → 24-implement-ios-notifications.mdFRE-535
  • 25 — Implement Android notification service → 25-implement-android-notifications.mdFRE-536
  • 26 — Implement Linux notification service → 26-implement-linux-notifications.mdFRE-537

Settings Store

  • 27 — Implement iOS settings/preferences store → 27-implement-ios-settings-store.mdFRE-538
  • 28 — Implement Android settings/preferences store → 28-implement-android-settings-store.mdFRE-539
  • 29 — Implement Linux settings/preferences store → 29-implement-linux-settings-store.mdFRE-540

Bookmark Store

  • 30 — Implement iOS bookmark store → 30-implement-ios-bookmark-store.mdFRE-541
  • 31 — Implement Android bookmark store → 31-implement-android-bookmark-store.mdFRE-542
  • 32 — Implement Linux bookmark store → 32-implement-linux-bookmark-store.mdFRE-543

Phase 8: UI Integration (Per Platform)

  • 33 — Integrate business logic with iOS UI → 33-integrate-ios-business-logic.mdFRE-544
  • 34 — Integrate business logic with Android UI → 34-integrate-android-business-logic.mdFRE-545
  • 35 — Integrate business logic with Linux UI → 35-integrate-linux-business-logic.mdFRE-546

Phase 9: Testing

  • 36 — Write unit tests for iOS business logic → 36-write-unit-tests-ios.mdFRE-547
  • 37 — Write unit tests for Android business logic → 37-write-unit-tests-android.mdFRE-548
  • 38 — Write unit tests for Linux business logic → 38-write-unit-tests-linux.mdFRE-549
  • 39 — Write cross-platform integration tests → 39-write-integration-tests.mdFRE-550

Phase 10: Optimization

  • 40 — Performance optimization and benchmarking → 40-performance-optimization.mdFRE-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)