SlideShare a Scribd company logo
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Working with Android TV
Pedro Vicente Gómez Sánchez
Android Expert at Karumi
pedro@karumi.com
@pedro_g_s
github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Are we going to develop always for
smartphones?
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
https://developer.android.com/tv/adt-1/index.html
Nexus Player
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
● Introduction.
● First steps.
● Thinking different.
● BrowseFragment.
● DetailsFragment.
● SearchFragment.
● Recommendations.
● Without Leanback library.
Agenda
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
● Nexus Player supports API level 21 or higher.
● Leanback library is really useful. Almost essential.
● Easy to work with if you don’t want to do something different.
● Forget about touch your TV.
Introduction
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
First steps
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Add Leanback library to your project:
First steps
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
First steps
Configure an Activity to use “LEANBACK_LAUNCHER” intent filter:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Thinking different:
Try to use your smartphone without touch it!
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Try to avoid the keyboard:
Thinking different
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Thinking different
All the user experience is going to be related to the focus usage.
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
You have a microphone, use it.
Thinking different
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Use the background, it’s a powerful tool.
Thinking different
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Use content recommendations.
Thinking different
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Leanback Library
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
BrowseFragment
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
DetailFragment
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
SearchFragment
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
How can I use these Fragments?
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
BrowseFragment
Create your own Fragment and extend from Leanback BrowseFragment:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
BrowseFragment
Configure your user interface to apply your application colors and icons:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
BrowseFragment
Once you have loaded all the content, configure one ArrayObjectAdapter with
your data:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
BrowseFragment
Each row is going to be represented with one “ArrayObjectAdapter”, one
“HeaderItem” and one “Presenter”:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
BrowseFragment
Configure your listeners to
change your user
interface when one
element is selected or
clicked.
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
DetailsFragment
Create your own Fragment and extend from Leanback DetailsFragment:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
DetailsFragment
Configure DetailsFragment background to be updated when needed:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
DetailsFragment
Show detailed information using the same approach we use with
BrowseFragment based on ArrayObjectAdapter:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
DetailsFragment
Add actions if needed:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
SearchFragment
Create your own Fragment and extend from Leanback SearchFragment:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
SearchFragment
To be able to react to user clicks you have to configure a
OnItemViewClickedListener instance:
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
SearchFragment
Override some methods
to perform your search
and indicate the adapter
you are going to use to
show search information.
Your fragment has to
implement Leanback
SearchResultProvider
interface.
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Android Presenters
Android Presenters are the base of how your data is shown inside Leanback Fragments.
You can use some widgets from Leanback library or create your own presenters.
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Recommendations
Android gives you the
opportunity to show
content
recommendations to
your users. This
mechanism is based
on classic Android
notifications.
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Without Leanback library
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Without Leanback library
One of the problems related to the Leanback usage is that all your applications are going to be
really similar. If you want to do something different, you’ll have to use your imagination.
Some interesting ideas:
● Use the focus and selectors to give more information to the user.
● State list animator is going to be your new best friend.
● Some elements will have to be focusables and disable the focus on
runtime could be needed.
● Change your backgrounds with cool images to provide more context to
the user.
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Without Leanback library:
Focus
NextFocusX configuration is
going to be really useful for
your UI.
RequestFocus xml label will
provide you more flexibility.
Remember to enable
focusable in some of your
views, default state is false in
some views.
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Without Leanback library:
State List Animators
If you want to improve how
your users know what’s the
elemen it selected and you
are not using a Leanback
widget, you can use state list
animators to animate your
widgets when one get or lose
the focus.
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Without Leanback library:
Use focus programmatically
Use “getCurrentFocus()”
method to know which is the
view with the focus and don’
t be afraid to change
“focusable” attribute of your
views to create a better user
experience.
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Without Leanback library:
Backgrounds
To be able to provide more information to the user about the current context you can change the
Activity/Fragment background.
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
https://www.github.com/pedrovgs/TuentiTV
Show me the code!
Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
Questions?

More Related Content

PDF
Dependency injection on Android
PDF
Karumi Dojo - String Calculator Kata
PDF
Karumi Dojo: Kata Maxibon
PDF
World-Class Testing Development Pipeline for Android
PDF
Effective Android UI - English
PDF
Lean frontend development
PDF
Just Enough Software Development in Times of Rapid Change
Dependency injection on Android
Karumi Dojo - String Calculator Kata
Karumi Dojo: Kata Maxibon
World-Class Testing Development Pipeline for Android
Effective Android UI - English
Lean frontend development
Just Enough Software Development in Times of Rapid Change

What's hot (11)

PDF
From zero to hero with kotlin & spring boot
PPTX
Becoming an Advanced Groovy Developer Spring One 2gx 2015
PDF
Frontend Development vs Backend Development | Detailed Comparison
PDF
Usando gradle a seu favor
PDF
Managing and evolving JavaScript Code
PDF
Why reactive programing matter, and how PicCollage adaptive it.
PDF
Testing stage. being ahead business with cucumber
DOCX
Mukesh b.e (cse)
PDF
The building blocks of the next web
PDF
20180524 Android Taipei : RxJava Threading
PDF
Fearless Internationalization and Localization Across the Nations
From zero to hero with kotlin & spring boot
Becoming an Advanced Groovy Developer Spring One 2gx 2015
Frontend Development vs Backend Development | Detailed Comparison
Usando gradle a seu favor
Managing and evolving JavaScript Code
Why reactive programing matter, and how PicCollage adaptive it.
Testing stage. being ahead business with cucumber
Mukesh b.e (cse)
The building blocks of the next web
20180524 Android Taipei : RxJava Threading
Fearless Internationalization and Localization Across the Nations
Ad

Viewers also liked (20)

PDF
TV design guidelines
PPTX
PDF
Getting your app on Android TV
PDF
Android TV: Building apps with Google’s Leanback Library
PPTX
Android tv get started
PDF
The Good Developer - Spanish
PDF
IT talk #18 Odessa: Alexey Rybakov "Android TV"
ODP
Android TV Overview
ODP
Migrating to Android TV
PPT
Catégorisation automatisée de contenus documentaires : la ...
PDF
Android Workshop Part 1
PDF
Introduction to Android by Demian Neidetcher
PDF
Designing for Google TV
PDF
Bees Showreel
PDF
Android TV Introduction - Stockholm Android TV meetup
PDF
Video Streaming: from the native Android player to uncoventional devices
PDF
Google Developers Summit Android TV で実現するリビングルームでのアプリ体験
PPTX
Introduction of Android Camera1
PDF
Mastering RecyclerView Layouts
PPT
Tv ppt
TV design guidelines
Getting your app on Android TV
Android TV: Building apps with Google’s Leanback Library
Android tv get started
The Good Developer - Spanish
IT talk #18 Odessa: Alexey Rybakov "Android TV"
Android TV Overview
Migrating to Android TV
Catégorisation automatisée de contenus documentaires : la ...
Android Workshop Part 1
Introduction to Android by Demian Neidetcher
Designing for Google TV
Bees Showreel
Android TV Introduction - Stockholm Android TV meetup
Video Streaming: from the native Android player to uncoventional devices
Google Developers Summit Android TV で実現するリビングルームでのアプリ体験
Introduction of Android Camera1
Mastering RecyclerView Layouts
Tv ppt
Ad

Similar to Working with Android TV - English (20)

PPTX
Android 3
PPTX
mobile development with androiddfdgdfhdgfdhf.pptx
PDF
Android development first steps
PDF
Mobile Application Development -Lecture 09 & 10.pdf
PDF
Android - Working with Fragments
PPTX
Android crash course
PDF
Unblocking The Main Thread_ Solving ANRs and Frozen Frames.pdf
PDF
Gabor Varadi - Reactive State Management with Jetpack Components
PDF
Reuse features in Android applications
PDF
Don't Make Android Bad... Again
PDF
Android Jumpstart Jfokus
PDF
Innovation Generation - The Mobile Meetup: Android Best Practices
PPTX
What's New in Android
PDF
10 ways to improve your Android app performance
PDF
Five android architecture
PDF
Developer's guide for Readpeer Android
PPTX
Reactive state management with Jetpack Components
PDF
Unblocking The Main Thread - Solving ANRs and Frozen Frames
PDF
Android Development 201
PPTX
Android 3
mobile development with androiddfdgdfhdgfdhf.pptx
Android development first steps
Mobile Application Development -Lecture 09 & 10.pdf
Android - Working with Fragments
Android crash course
Unblocking The Main Thread_ Solving ANRs and Frozen Frames.pdf
Gabor Varadi - Reactive State Management with Jetpack Components
Reuse features in Android applications
Don't Make Android Bad... Again
Android Jumpstart Jfokus
Innovation Generation - The Mobile Meetup: Android Best Practices
What's New in Android
10 ways to improve your Android app performance
Five android architecture
Developer's guide for Readpeer Android
Reactive state management with Jetpack Components
Unblocking The Main Thread - Solving ANRs and Frozen Frames
Android Development 201

Recently uploaded (20)

PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Nekopoi APK 2025 free lastest update
PDF
medical staffing services at VALiNTRY
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
top salesforce developer skills in 2025.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
System and Network Administration Chapter 2
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
Nekopoi APK 2025 free lastest update
medical staffing services at VALiNTRY
CHAPTER 2 - PM Management and IT Context
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
top salesforce developer skills in 2025.pdf
Odoo Companies in India – Driving Business Transformation.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
System and Network Administration Chapter 2
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
L1 - Introduction to python Backend.pptx
Odoo POS Development Services by CandidRoot Solutions
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
wealthsignaloriginal-com-DS-text-... (1).pdf
Understanding Forklifts - TECH EHS Solution
Internet Downloader Manager (IDM) Crack 6.42 Build 41

Working with Android TV - English

  • 1. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Working with Android TV Pedro Vicente Gómez Sánchez Android Expert at Karumi pedro@karumi.com @pedro_g_s github.com/pedrovgs
  • 2. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 3. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Are we going to develop always for smartphones?
  • 4. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs https://developer.android.com/tv/adt-1/index.html Nexus Player
  • 5. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 6. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs ● Introduction. ● First steps. ● Thinking different. ● BrowseFragment. ● DetailsFragment. ● SearchFragment. ● Recommendations. ● Without Leanback library. Agenda
  • 7. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs ● Nexus Player supports API level 21 or higher. ● Leanback library is really useful. Almost essential. ● Easy to work with if you don’t want to do something different. ● Forget about touch your TV. Introduction
  • 8. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs First steps
  • 9. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Add Leanback library to your project: First steps
  • 10. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs First steps Configure an Activity to use “LEANBACK_LAUNCHER” intent filter:
  • 11. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Thinking different: Try to use your smartphone without touch it!
  • 12. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Try to avoid the keyboard: Thinking different
  • 13. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Thinking different All the user experience is going to be related to the focus usage.
  • 14. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs You have a microphone, use it. Thinking different
  • 15. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Use the background, it’s a powerful tool. Thinking different
  • 16. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Use content recommendations. Thinking different
  • 17. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Leanback Library
  • 18. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs BrowseFragment
  • 19. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs DetailFragment
  • 20. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs SearchFragment
  • 21. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs How can I use these Fragments?
  • 22. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs BrowseFragment Create your own Fragment and extend from Leanback BrowseFragment:
  • 23. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs BrowseFragment Configure your user interface to apply your application colors and icons:
  • 24. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs BrowseFragment Once you have loaded all the content, configure one ArrayObjectAdapter with your data:
  • 25. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs BrowseFragment Each row is going to be represented with one “ArrayObjectAdapter”, one “HeaderItem” and one “Presenter”:
  • 26. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs BrowseFragment Configure your listeners to change your user interface when one element is selected or clicked.
  • 27. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 28. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs DetailsFragment Create your own Fragment and extend from Leanback DetailsFragment:
  • 29. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs DetailsFragment Configure DetailsFragment background to be updated when needed:
  • 30. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs DetailsFragment Show detailed information using the same approach we use with BrowseFragment based on ArrayObjectAdapter:
  • 31. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs DetailsFragment Add actions if needed:
  • 32. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 33. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs SearchFragment Create your own Fragment and extend from Leanback SearchFragment:
  • 34. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs SearchFragment To be able to react to user clicks you have to configure a OnItemViewClickedListener instance:
  • 35. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs SearchFragment Override some methods to perform your search and indicate the adapter you are going to use to show search information. Your fragment has to implement Leanback SearchResultProvider interface.
  • 36. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 37. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Android Presenters Android Presenters are the base of how your data is shown inside Leanback Fragments. You can use some widgets from Leanback library or create your own presenters.
  • 38. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 39. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Recommendations Android gives you the opportunity to show content recommendations to your users. This mechanism is based on classic Android notifications.
  • 40. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 41. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Without Leanback library
  • 42. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Without Leanback library One of the problems related to the Leanback usage is that all your applications are going to be really similar. If you want to do something different, you’ll have to use your imagination. Some interesting ideas: ● Use the focus and selectors to give more information to the user. ● State list animator is going to be your new best friend. ● Some elements will have to be focusables and disable the focus on runtime could be needed. ● Change your backgrounds with cool images to provide more context to the user.
  • 43. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Without Leanback library: Focus NextFocusX configuration is going to be really useful for your UI. RequestFocus xml label will provide you more flexibility. Remember to enable focusable in some of your views, default state is false in some views.
  • 44. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 45. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Without Leanback library: State List Animators If you want to improve how your users know what’s the elemen it selected and you are not using a Leanback widget, you can use state list animators to animate your widgets when one get or lose the focus.
  • 46. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 47. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Without Leanback library: Use focus programmatically Use “getCurrentFocus()” method to know which is the view with the focus and don’ t be afraid to change “focusable” attribute of your views to create a better user experience.
  • 48. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 49. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Without Leanback library: Backgrounds To be able to provide more information to the user about the current context you can change the Activity/Fragment background.
  • 50. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 51. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs
  • 52. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs https://www.github.com/pedrovgs/TuentiTV Show me the code!
  • 53. Pedro V. Gómez Sánchez - pedro@karumi.com - @pedro_g_s - github.com/pedrovgs Questions?