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>
This commit is contained in:
191
docs/TODO_AUDIT.md
Normal file
191
docs/TODO_AUDIT.md
Normal file
@@ -0,0 +1,191 @@
|
||||
# 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:
|
||||
|
||||
```swift
|
||||
// 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`
|
||||
|
||||
```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`
|
||||
|
||||
```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`
|
||||
|
||||
```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`
|
||||
|
||||
```kotlin
|
||||
// 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`
|
||||
|
||||
```kotlin
|
||||
// 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`
|
||||
|
||||
```kotlin
|
||||
// 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`
|
||||
|
||||
```kotlin
|
||||
// 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`
|
||||
|
||||
```kotlin
|
||||
// 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`
|
||||
|
||||
```kotlin
|
||||
// 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
|
||||
4. Push notification navigation (iOS)
|
||||
5. Document download (iOS & Android)
|
||||
6. Profile update functionality (Android)
|
||||
|
||||
### Low Priority
|
||||
7. Contractor favorite toggle (Android)
|
||||
8. Widget App Groups (iOS)
|
||||
9. 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.
|
||||
Reference in New Issue
Block a user