This article charts the optimal progression of a media app from a likely starting place to best-in-class. It's designed to help you think about scaling your app over time, and what features to implement when. While every media app is different, consider these recommendations to achieve a best-in-class app.
Basic media app
A basic media app provides users with a foundational experience, which may include:
- Offering in-app content browsing and discovery
- Offering an in-app media player with playback controls
- Using formats that are supported across the Android ecosystem
- Implementing best practices, such as using the latest version of the Jetpack Media3 library
- Investing in accessibility
Better media app
A better media app starts to grow its reach to meet users where they are and increase engagement. You may also start to consider more holistic improvements in your app, which may include:
- Using ExoPlayer for advanced and customized playback features, such as using native platform digital rights management capabilities to protect content
- Implementing a
MediaSession
to enable playback integration with external Android clients - Adding support for form factors such as system media controls on mobile and large screen devices, Wear OS, Android TV, and Android Auto
- Integrating with media resumption features, such as Watch Next on Android TV and media controls on mobile and large screen devices
- Enabling picture-in-picture so users can multi-task
- Improving accessibility for all, such as by adding subtitles
- Supporting playback to Cast devices
- Using Google Play Billing to handle subscriptions
Best-in-class media app
A best-in-class media app builds on the previous recommendations to create a seamless multidevice experience for users, which may include:
- Leveraging premium device capabilities by streaming HDR and spatial audio content when possible, and gracefully falling-back as necessary
- Enabling media downloading and offline playback
- Optimizing for foldables by supporting the
HALF_OPENED
state - Testing and refining voice assistant integrations, such as with Google Assistant
- Investing in performance on lower-powered devices, for example by leveraging performance class
- Supporting Better Together use cases, such as Nearby Connections
- Ensuring design consistency with the platform
- Investing in seamless identity across surfaces such as One Tap and account linking
- Offering frictionless subscriptions
- Implementing Cast Connect so users can cast to your native Android TV app