Scroll Kitty is an iOS app built on Apple Screen Time APIs (FamilyControls, ManagedSettings, DeviceActivity) that adds a “cat health” mechanic to help you slow down on selected apps.
- Lets the user pick “problem apps” during onboarding (stored as a
FamilyActivitySelection). - Applies shields to the selected apps/categories.
- When a shield is shown, the Shield UI offers:
- Step back → closes the app.
- Go in anyway → sends a local notification that opens Scroll Kitty to a bottom-sheet bypass flow.
- The bypass sheet guides the user through a short, single-screen flow (message → time selection → acknowledgment) and, if granted, removes shields for a cooldown window.
- Tracks bypass activity and weekly usage data in the shared app group so Insights can render usage summaries.
- State management: The Composable Architecture (TCA).
- Shared state across app + extensions: App Group
UserDefaults(group.com.scrollkitty.app). - Messaging: deterministic health bands + prewritten templates (no network/AI required).
ScrollKitty(main app)ScrollKittyMonitor(DeviceActivity monitor extension)ScrollKittyShield(Shield configuration UI:ShieldConfigurationDataSource)ScrollKittyAction(Shield button handling:ShieldActionDelegate)ScrollKittyReport(DeviceActivity report extension)
Stored in UserDefaults(suiteName: "group.com.scrollkitty.app"):
selectedApps(FamilyActivitySelectionencoded asData)catHealth(Int, 0–100)shieldState(String, drives shield UI state)selectedBypassMinutes(Int)weeklyUsageData(WeeklyUsageDataencoded asData)bypassDailyUsage([DailyUsageEntry]encoded asData)
DeviceActivity reporting (why a “hidden” view exists)
iOS Screen Time usage data is surfaced via DeviceActivityReport (a SwiftUI view). The app uses a hidden DeviceActivityReport(.daily, filter: …) to trigger the report pipeline while keeping the UI custom.
Note: Screen Time data can lag; expect delays before minutes/pickups appear.
- Open
ScrollKitty.xcodeproj. - Use an Apple developer team and enable required capabilities for the app + extensions:
- Screen Time / Family Controls
- App Groups (
group.com.scrollkitty.app) - Notifications (for bypass flow handoff)
- Build & run
ScrollKitty, complete onboarding, and grant Screen Time authorization.
Some Screen Time APIs and data behave best on a real device.
tca-docc-mcp/: a small MCP server that lets Cursor query TCA DocC directly. Seetca-docc-mcp/README.md.