This folder contains complete documentation for the new, streamlined iOS app that replaces the bloated dreamlauncher-ios.
The old dreamlauncher-ios app:
The new DreamLauncherLite app:
One thing: Cross-platform screen time tracking
dreamlauncher-api - Already built and runningUserScreenTime table exists/user-screen-time readyβββββββββββββββββββββββββββββββββββββββββββ
β iOS App (SwiftUI) β
β β
β Views β
β βββ AuthView β
β βββ DashboardView β
β βββ SettingsView β
β β
β ViewModels β
β βββ AuthViewModel β
β βββ DashboardViewModel β
β β
β Services β
β βββ AuthService β
β βββ ScreenTimeService β
β βββ SyncService β
β βββ APIClient β
β β
β Storage β
β βββ KeychainService β
β βββ CoreDataStack β
β βββ StorageService β
βββββββββββββββ¬ββββββββββββββββββββββββββββ
β
β HTTPS/REST
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β dreamlauncher-api (Node.js) β
β β
β Endpoints β
β βββ POST /apple-auth/sign-in β
β βββ POST /user-screen-time β
β βββ GET /user-screen-time β
β βββ GET /user-screen-time/combined β
β β
β Database (PostgreSQL) β
β βββ users β
β βββ user_screen_time β
βββββββββββββββ¬ββββββββββββββββββββββββββββ
β
β Shared Data
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β macOS App (student-time-tracker) β
β β
β - Displays iOS data β
β - Uploads macOS data β
β - Combined view β
βββββββββββββββββββββββββββββββββββββββββββ
DreamLauncherLite-iOS/
βββ DreamLauncherLite/
β βββ App/
β β βββ DreamLauncherLiteApp.swift
β β βββ AppDelegate.swift
β βββ Models/
β β βββ ScreenTimeEntry.swift
β β βββ User.swift
β βββ Services/
β β βββ AuthService.swift (100 lines)
β β βββ ScreenTimeService.swift (150 lines)
β β βββ SyncService.swift (200 lines)
β β βββ APIClient.swift (350 lines)
β βββ ViewModels/
β β βββ AuthViewModel.swift (100 lines)
β β βββ DashboardViewModel.swift (200 lines)
β βββ Views/
β β βββ AuthView.swift (100 lines)
β β βββ DashboardView.swift (300 lines)
β β βββ SettingsView.swift (100 lines)
β βββ Storage/
β β βββ CoreDataStack.swift (100 lines)
β β βββ StorageService.swift (200 lines)
β β βββ KeychainService.swift (100 lines)
β β βββ DreamLauncher.xcdatamodeld
β βββ Extensions/
β β βββ Date+Extensions.swift (100 lines)
β β βββ View+Extensions.swift (100 lines)
β βββ Config.swift (50 lines)
β βββ Info.plist
βββ DeviceActivityMonitorExtension/
β βββ DeviceActivityMonitorExtension.swift
β βββ Info.plist
βββ DeviceActivityReportExtension/
βββ TotalActivityReport.swift
βββ Info.plist
Total: ~2,300 lines of code across ~20 files
Deliverable: Working authentication
Deliverable: Collecting real iOS screen time
Deliverable: Data syncing to backend
Deliverable: Shows iOS + macOS data
Deliverable: Production-ready app
Deliverable: Live on App Store
Only collects:
Does NOT collect:
AuthServiceTests
- testAppleSignIn()
- testTokenRefresh()
- testLogout()
StorageServiceTests
- testSaveEntry()
- testFetchUnsynced()
- testMarkSynced()
APIClientTests
- testAuth()
- testUpload()
- testFetch()
SyncServiceTests
- testBatchUpload()
- testRetry()
- testOfflineQueue()
EndToEndTests
- testAuthToSync()
- testCrossPlatformData()
- testOfflineToOnline()
A: The old app has too much technical debt and legal issues. Starting fresh is faster and safer.
A: Maybe, but resist feature creep. Keep it simple. Every feature has a cost.
A: Focus on iOS first. Prove the concept. Then consider other platforms.
A: Native SwiftUI is faster, smaller, more reliable, and better for Family Controls integration.
A: Go to https://developer.apple.com/contact/request/family-controls-distribution and explain your use case.
A: Follow the checklist, be clear about purpose, and provide demo credentials. Should be approved first try.
This is a personal project, but feedback welcome:
This documentation and code are part of the DreamLauncher project. See main project LICENSE for details.
You have everything you need:
Next step: Create the Xcode project and start Day 1.
Estimated time to App Store: 6-7 weeks
Letβs build something simple, focused, and actually useful! π
dreamlauncher-api/ - Existing backend (already built)student-time-tracker/ - macOS app (uses same API)dreamlauncher-ios/ - Old app (DEPRECATED, legal issues)dreamlauncher-lite-ios/ - New app (TO BE CREATED)Last updated: January 2025 Version: 1.0 (Pre-development documentation)