Files
honeyDueKMP/docs/TODO_AUDIT.md
Trey t fff1032c29 Add onboarding UI tests and improve app data management
- Add Suite0_OnboardingTests with fresh install and login test flows
- Add accessibility identifiers to onboarding views for UI testing
- Remove deprecated DataCache in favor of unified DataManager
- Update API layer to support public upgrade-triggers endpoint
- Improve onboarding first task view with better date handling
- Update various views with accessibility identifiers for testing
- Fix subscription feature comparison view layout
- Update document detail view improvements

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 15:55:34 -06:00

4.9 KiB

TODO Audit - Incomplete Functionality

This document tracks all incomplete functionality, TODOs, and missing features across the iOS and Android/Kotlin codebases.

Last Updated: December 3, 2024


iOS (SwiftUI)

1. Push Notification Navigation

File: iosApp/iosApp/PushNotifications/PushNotificationManager.swift

Three TODO items related to deep-linking from push notifications:

// TODO: Navigate to specific residence
// TODO: Navigate to specific task
// TODO: Navigate to specific contractor

Status: Push notifications are received but tapping them doesn't navigate to the relevant screen.

Priority: Medium - Improves user experience when responding to notifications.


2. File/Document Download

File: iosApp/iosApp/Documents/DocumentDetailView.swift

// TODO: Implement file download functionality

Status: Document viewing is partially implemented, but users cannot download/save documents to their device.

Priority: Medium - Documents can be viewed but not saved locally.


3. Subscription Upgrade Flow

File: iosApp/iosApp/Subscription/FeatureComparisonView.swift

// TODO: Implement upgrade functionality

Status: Feature comparison UI exists but the actual upgrade/purchase flow is not connected.

Priority: High - Required for monetization.


4. Widget App Groups

File: iosApp/TaskWidgetExample.swift

// TODO: Implement App Groups or shared container for widget data access.

Status: Widget shell exists but cannot access shared app data. Widgets always show empty state.

Priority: Low - Widgets are a nice-to-have feature.


Android/Kotlin (Compose Multiplatform)

1. Document Download

File: composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentDetailScreen.kt

// TODO: Download functionality

Status: Same as iOS - documents can be viewed but not downloaded.

Priority: Medium


2. Subscription Navigation from Residences

File: composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidencesScreen.kt

// TODO: Navigate to subscription/upgrade screen

Status: When user hits residence limit, there's no navigation to the upgrade screen.

Priority: High - Blocks user from upgrading when hitting limits.


3. Subscription Navigation from Residence Detail

File: composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceDetailScreen.kt

// TODO: Navigate to subscription screen

Status: Same issue - hitting task limit doesn't navigate to upgrade.

Priority: High


4. Profile Update Disabled

File: composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ProfileScreen.kt

// Update profile button is disabled/not implemented

Status: Profile editing UI exists but the save/update functionality may be incomplete.

Priority: Medium - Users expect to be able to edit their profile.


5. Contractor Favorite Toggle

File: composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceDetailScreen.kt

// Contractor favorite toggle not fully implemented

Status: Favorite toggle button exists on contractor cards but may not persist correctly.

Priority: Low


6. Platform-Specific Image Pickers

Files:

  • composeApp/src/jvmMain/kotlin/ImagePicker.jvm.kt
  • composeApp/src/wasmJsMain/kotlin/ImagePicker.wasmJs.kt
  • composeApp/src/jsMain/kotlin/ImagePicker.js.kt
// TODO: Implement for Desktop
// TODO: Implement for WASM
// TODO: Implement for JS

Status: Image picker only works on mobile (Android/iOS). Desktop and web targets show placeholder implementations.

Priority: Low - Mobile is primary target.


Summary by Priority

High Priority

  1. Subscription navigation from ResidencesScreen (Android)
  2. Subscription navigation from ResidenceDetailScreen (Android)
  3. Subscription upgrade flow (iOS)

Medium Priority

  1. Push notification navigation (iOS)
  2. Document download (iOS & Android)
  3. Profile update functionality (Android)

Low Priority

  1. Contractor favorite toggle (Android)
  2. Widget App Groups (iOS)
  3. Platform-specific image pickers (Desktop/Web)

Recommendations

  1. Subscription Flow (High): Both platforms need proper navigation to upgrade screens when users hit feature limits. This is critical for monetization.

  2. Push Notification Deep Links (Medium): iOS push notification taps should navigate to the relevant residence/task/contractor detail screen.

  3. Document Download (Medium): Implement share sheet / file saving for both platforms.

  4. Profile Update (Medium): Verify the profile update API call is connected and working.

  5. Low Priority Items: Widget, desktop/web image pickers, and contractor favorites can be addressed in future iterations.