Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Developing for the Big Screen - GDG Berlin Andr...
Search
Hasan Hosgel
October 29, 2014
Technology
0
57
Developing for the Big Screen - GDG Berlin Android 2014 10 Meetup
Hasan Hosgel
October 29, 2014
Tweet
Share
More Decks by Hasan Hosgel
See All by Hasan Hosgel
What's new in PlayStore @ IO19 @ BerlinDroid May 2019
alosdev
0
71
Living on a green rocket field - DevFest Istanbul 2018
alosdev
1
200
Living on a green rocket field - Mobilization 2018
alosdev
1
160
Living on a green rocket field - GDG Berlin Android meetup
alosdev
2
180
Actions on Google - GDG Berlin Android Meetup February 2017
alosdev
0
150
PERFMATTERS for Android - DevFest Switzerland 2016
alosdev
0
160
Let's Map It! DevFest Hamburg 2016
alosdev
0
120
PERFMATTERS for Android - DroidCon VIenna 2016
alosdev
0
51
PERFMATTERS for Android - DroidCon Berlin 2016
alosdev
0
1.8k
Other Decks in Technology
See All in Technology
CARTA HOLDINGS エンジニア向け 採用ピッチ資料 / CARTA-GUIDE-for-Engineers
carta_engineering
0
28k
encoding/json v2を予習しよう!
yuyu_hf
PRO
1
220
Vibe Coding Tools
ijin
1
300
ホワイトボックス& SONiC アーキテクチャ(全体像) - SONiC Workshop Japan 2025
ebiken
PRO
1
390
"発信文化"をどうやって計測する?技術広報のKPI探索記/How do we measure communication culture?
bitkey
4
360
The PyArrow revolution in Pandas
reuven
0
130
Creative UIs with Compose: Kotlinconf 2025
chrishorner
0
110
KubeCon EU 2025 Recap - Kubernetes CRD Design for the Long Haul: Tips, Tricks, and Lessons Learned / Kubernetes Meetup Tokyo #70 / k8sjp70-crd-long-haul-recap
everpeace
0
110
AWS_MCP_Servers入門.pdf
naotoiso
0
180
PCNW20250514(情シスはAIとどう向き合う?事例から学ぶ活用法)
suguru0719
0
110
Amplifyとゼロからはじめた AIコーディング。失敗と気づき
mkdev10
1
180
使えるデータ基盤を作る技術選定の秘訣 / selecting-the-right-data-technology
pei0804
10
1.7k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
94
13k
Making Projects Easy
brettharned
116
6.2k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Done Done
chrislema
184
16k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.8k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Docker and Python
trallard
44
3.4k
Transcript
Developing for the Big Screen From Android TV to Chromecast
about me Hasan Hosgel G+: Hasan Hosgel Twitter: @alosdev Github:
alosdev Senior Developer @ImmobilienScout24
Prerequisite • casual consumption - not focused like on phone
• cinematic experience - 3 meter away • Simplicity - no touchpad
None
Navigation • D-Pad in two axis • enter Button •
Back • Home
None
Navigation support • use appropriate states for better recognotion of
focus/ selection • use sound - occasionally • use next focus targets - for defining own navigation flow ⇒ TEST IT properly
how to get started • Sample Project https://github.com/googlesamples/androidtv- Leanback/ •
DevByte Video https://www.youtube.com/watch? v=72K1VhjoL98
needed libraries • v17 leanback support library • v7 recyclerview
support library • v7 cardview support library forces to use also • v4 support library
AndroidManifest extension <activity android:name="MainActivity" android:label="@string/app_name" android:theme="@style/Theme.Leanback"> <intent-filter> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity>
AndroidManifest extension <activity android:name="MainActivity" android:label="@string/app_name" android:theme="@style/Theme.Leanback"> <intent-filter> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity>
AndroidManifest extension <activity android:name="MainActivity" android:label="@string/app_name" android:theme="@style/Theme.Leanback"> <intent-filter> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity>
Not supported Hardware features • android.hardware.touchscreen • android.hardware.telephony • android.hardware.camera
• android.hardware.nfc • android.hardware.location.gps • android.hardware.microphone
avoid filtering in play store • set the attribute “required”
to “false” in AndroidManifest ⇒ If you don’t to this, the application cannot be found on the play store for TV
recognize TV programmatically UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE); if (uiModeManager.getCurrentModeType()
== Configuration.UI_MODE_TYPE_TELEVISION) { Log.d(TAG, "Running on a TV Device") } else { Log.d(TAG, "Running on a non-TV Device") }
None
BrowseFragment
BrowseFragment
DetailFragment
VerticalGridFragment
SearchFragment
How to test? • ADT-1 • Nexus Player • Emulator
ChromeCast • Sender Application ◦ Android ◦ Chrome ◦ IOs
• Receiver Application ◦ HTML ⇒ register your receiver application https://cast. google.com/publish/ - costs 5$
needed libraries • v7 appcompat support library • v7 mediarouter
support library • google play services library forces to use also • v4 support library
Resources • Site: https://developers.google.com/cast/ • repositories: https://developers.google. com/cast/docs/downloads
Additional possibility for Android With the feature “mirror screen” you
can now use the “presentation mode” again for your Android application, like for MiraCast
Q & A