tvOS playback client
Atlantide
A native Apple TV client in the Celesti stream-routing and newsroom-display family.
I designed and built this project independently, using my own resources.
01 / Context
The problem behind the project
A newsroom display system needs a playback client that fits the Apple TV platform rather than treating every screen as a browser.
Atlantide connects Celesti’s device and channel model to an Apple TV. It needs to preserve the operator’s channel order, remote commands, and viewing state while presenting a television-native interface rather than a desktop dashboard.
Playback also feeds product data. A channel should count as viewed when media is actually advancing in an active application, not merely because a command was received or a tile had focus.
02 / Implementation
Design and implementation
I develop the native tvOS client within the broader display and stream-routing project.
I built the device-state adapters, channel/API mapping, remote playback controllers, durable viewing outbox, and application integration. Sabella owns reusable television presentation, remote focus, and decoder selection; Atlantide supplies registered identity and authoritative product state.
Channel groups load lightweight summaries first and fetch channel pages when opened. Focus and browse position are restored after playback, while the service owns ranking and lineup order. Stream medium comes from the service rather than being guessed from a filename or logo.
Viewing intervals use engine-confirmed activity and monotonic duration. They are checkpointed into durable segments and delivered with stable IDs so retries and relaunches do not double-count. Quad layouts attribute visible channels separately and ignore hidden panes.
03 / Architecture
Architecture and workflow
Register and browse
Load device identity and ordered channel-group summaries without downloading the entire catalog.
Resolve authoritative media
Pass the service-provided stream and medium to the shared television player.
Observe real activity
Distinguish advancing media from buffering, inactivity, failure, and source replacement.
Persist viewing events
Queue bounded segments before delivery, retry transient failures, and preserve browse/focus state on return.
04 / Approach
Engineering decisions
A native television client
The public repository contains Swift application code, an Xcode project, and tvOS configuration.
Keep the platform scope clear
This is the Apple TV client; the wider stream-routing platform is described separately under Celesti.
05 / Evidence
Evidence and outcomes
The UI architecture records late-callback/source-generation guards, page-boundary tuning, focus restoration, background-radio behavior, and durable segment delivery.
The outbox treats recorded and duplicate responses as terminal success, retains retryable failures, and skips durable terminal rejections so one bad segment does not block unrelated viewing history.
Source and technical notes
06 / Current scope
Where it stands
A native Swift tvOS client, in development.
Signed release creation, physical-device installation, and production smoke tests remain separate from package and simulator checks.
Sabella owns player behavior. Atlantide does not replace the authoritative stream URL or implement a competing visual system to work around a consumer integration issue.