Developing Android TV Apps: Navigation, ExoPlayer, Google TV

User presses 'down' on the remote — focus jumps to the end of the list, skipping the 'Favorites' button. Sound familiar? That's a classic Focus Engine bug in Android TV apps. We design multimedia applications where navigation is predictable, the player adapts to the screen, and content shows up in G

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Developing Android TV Apps: Navigation, ExoPlayer, Google TV
Complex
~1-2 weeks

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

User presses 'down' on the remote — focus jumps to the end of the list, skipping the 'Favorites' button. Sound familiar? That's a classic Focus Engine bug in Android TV apps. We design multimedia applications where navigation is predictable, the player adapts to the screen, and content shows up in Google TV recommendations. We handle development turnkey — from prototype to Google Play publication. Over 5 years, we have delivered 12 OTT projects; our accumulated experience ensures quality and compliance with Google requirements. 95% of our apps pass Google Play review on first submission, and users spend an average of 5 minutes per session on our TV apps.

Android TV vs Google TV

Google TV is an overlay on Android TV with a different launcher and content requirements. An app for Android TV may display incorrectly on Google TV due to differences in recommendation handling and deep links. We account for this at the design stage to avoid problems after release.

Configuring D-pad navigation in complex layouts

The main difference from mobile development is that the user controls via the D-pad remote. Focus moves via the Android Focus Engine, but nested horizontal RecyclerViews inside a vertical one (Netflix pattern) break the logic: pressing 'down' may jump focus to the end of the screen. The solution is a custom LinearLayoutManager with overridden onInterceptFocusSearch(). Without it, users may never reach the desired row.

The Leanback library (androidx.leanback) provides BrowseSupportFragment and RowsSupportFragment with native D-pad support, but it is considered deprecated. Jetpack Compose for TV (androidx.tv:tv-compose) offers TvLazyRow and TvLazyColumn with declarative focus management. For new projects, we choose Compose TV; for legacy, Leanback. Compose TV reduces code volume by 40% versus Leanback, leading to faster iterations.

Characteristic Leanback Compose TV
Architecture Fragments, View Declarative Compose
Navigation Automatic, limited Custom via FocusRequester
Performance Higher on old devices Better on new (API 24+)
Development speed Lower due to templates Higher, less code
Google TV support Limited Full

Integrating ExoPlayer with adaptive quality

androidx.media3:media3-exoplayer is the standard for Android TV. It is critical to properly configure TrackSelector: selecting a video track should take into account the display resolution, not just pick the highest — 4K on a 1080p screen wastes bandwidth. DRM Widevine L1 is available on certified devices (SHIELD TV, Chromecast with Google TV). We check the level via MediaDrm.isCryptoSchemeSupported(WIDEVINE_UUID) and securityLevel query. Media3 documentation recommends this approach. ExoPlayer outperforms deprecated MediaPlayer by 2x on low-end chipsets.

Integration with Google TV recommendations

Google TV displays personalized recommendations from apps via the WatchNext recommendations API. It requires a ContentProvider to fill in watch progress, update status, and remove completed programs. Fire TV uses a different mechanism — App-to-App Communication via Intent for deep linking to content.

How development proceeds: step-by-step

  1. Analysis of content, monetization, and target platform requirements.
  2. Design of navigation and focus management.
  3. Integration of ExoPlayer with custom track settings and DRM.
  4. Implementation of Google TV recommendations (WatchNext Programs).
  5. Testing on 5+ devices (NVIDIA Shield, Chromecast with Google TV, Xiaomi Mi Box, TCL TV, Sony Bravia).
  6. Preparation of launcher graphics and icons.
  7. Build and publication on Google Play following the Android TV developer guide.
  8. Technical support after release (1 month).

Certification and publication on Google Play

The app is published with <uses-feature android:name="android.software.leanback"/> and <uses-feature android:name="android.hardware.touchscreen" android:required="false"/>. The latter is mandatory — without it, the Play Store will not show the app on TV. Google checks: navigation accessible via D-pad, no touch dependencies, correct handling of KEYCODE_BACK and KEYCODE_DPAD_*.

What's included in the work

  • Source code with comments and build documentation.
  • CI/CD configuration (GitHub Actions, Fastlane) for automatic publication to TestFlight and Google Play.
  • Access to developer consoles (App Store Connect, Google Play Console).
  • Test report on 5 devices with different OS versions.
  • Training of the client's team on content admin panel usage.
  • Post-release support for 1 month (critical bug fixes).
Typical development mistakes and how to avoid them
  • Ignoring Focus Engine — user cannot reach buttons.
  • Missing KEYCODE_BACK handling — app does not close.
  • Incorrect TrackSelector configuration — buffering 4K on 1080p screen.
  • Missing metadata for Google TV — no recommendations.
  • Forgetting android.hardware.touchscreen:false — app not visible.

Timelines and cost

App type Timeline
Informational on Leanback from 5 to 9 weeks
VOD with DRM, recommendations, offline from 12 to 20 weeks

Costs vary by complexity: simple informational apps start from $15,000; full VOD platforms with DRM and recommendations range from $50,000 to $150,000. We offer a free project evaluation. Contact us to discuss details. Get a consultation for your project.