Skip to content

ScreenRoom playback and media lifecycle

ScreenRoom is a television-first streaming product with an iPhone companion. It treats focus, playback lifetime, account state, access, and progress as durable product concerns rather than details of a player screen.

Product decision

How do playback ownership, remote commands, subtitles, interruptions, and durable progress fit together?

The smallest useful vertical slice is concrete: Give a playback coordinator the player lifetime, selected media, resume position, command handling, and observable event stream.

Boundaries that keep the design honest

  • Model catalog, profile, entitlement, playback intent, and progress separately so each lifecycle can fail and recover visibly.
  • Make focus and remote interaction deterministic across navigation, refreshed shelves, overlays, and profile changes.
  • Keep the player in a stable coordinator and persist progress from meaningful playback events.
  • Validate poor networks, subtitle and accessibility behavior, account transitions, StoreKit state, and television hardware before release.
  • Avoid this failure: Placing player ownership in a reusable cell or disposable view.

Release evidence

No ScreenRoom tvOS or iOS target, focus journey, AVPlayer session, media stream, StoreKit transaction, download, remote command, subtitle track, or Apple TV device run was exercised.

This chapter records product and architecture decisions. Apple framework behavior still requires the matching Xcode target, configured service or account where applicable, and named Simulator or physical-device evidence. The browser Swift runner does not validate these Apple SDK surfaces.

Series navigation

References