19.7 · Top Shelf on tvOS, and treating extensions as a product API
tvOS has far fewer extension points than iOS, and the one most apps need is Top Shelf. At the other end, a mature product treats everything its extensions expose as an API with versions and contracts.
Mental model. On the TV the extension is a content provider the system asks for a shelf. At scale every extension is a public API you must not break.
The living room
Top Shelf and what tvOS does not have.
- What is a tvOS Top Shelf extension, how do static and dynamic content differ, and what does tvOS not have compared with iOS?
On the Apple TV Home Screen, when the user focuses an app in the top row, the area above shows that app’s Top Shelf: a banner or a row of content that works as…
The product surface
Designing extensions and widgets as a versioned public API.
- How do you treat extensions, widgets and intents as a public API of the product: shared modules, data contracts, versioning, testing and operations?
Once an app has a widget, a notification service extension, a share extension, a watch app, a Top Shelf and App Intents, it is no longer one program but a…
More in Extensions, widgets & intents
- 19.1 · Extension processes, limits, and sharing data with the app
- 19.2 · Notification Service and Notification Content extensions
- 19.3 · Share, Action, keyboards, message filtering, web extensions and network extensions
- 19.4 · WidgetKit timelines, families, refresh budgets, interactivity and controls
- 19.5 · App Intents, Shortcuts, Siri and Spotlight
- 19.6 · The watch app model, Watch Connectivity, and complications
- 19.8 · Timeline fallbacks, testing, bundles and rendering modes
- 19.9 · Dependencies, entities and queries, errors, and build-time metadata
- 19.10 · Info.plist, bundle ids, app group containers and shared payloads