Overview
A working notebook for turning a question into a thing that can be tested, felt, and improved.
Problem
A native product can make listening, return, device audio, widgets, and system surfaces feel closer—but only if it respects the existing catalog, access, runtime, and playback owners.
Goals
- Consume the existing Casset API through a typed and tested Swift client.
- Ship a coherent profile → release → track flow with explicit loading and failure states.
- Explore native playback controls, offline metadata, widgets, Live Activities, and App Intents in that order.
Architecture
Existing Casset API and canonical owners → Swift networking/model layer → SwiftUI projection → system playback and device surfaces.
Design
Let the device change the interaction while keeping Casset's audiovisual identity and product nouns recognizable.
Implementation
Begin read-only. Prove networking, caching, failure, and accessibility before adding playback commands or ambient device capabilities.
Lessons
- Native is a specialization built on product and systems fundamentals.
- A projection can feel platform-specific without becoming a parallel source of truth.
Future improvements
Add native audio experiments and TestFlight observation after the primary catalog loop is dependable.