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
70
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
93
Living on a green rocket field - DevFest Istanbul 2018
alosdev
1
220
Living on a green rocket field - Mobilization 2018
alosdev
1
180
Living on a green rocket field - GDG Berlin Android meetup
alosdev
2
210
Actions on Google - GDG Berlin Android Meetup February 2017
alosdev
0
160
PERFMATTERS for Android - DevFest Switzerland 2016
alosdev
0
180
Let's Map It! DevFest Hamburg 2016
alosdev
0
150
PERFMATTERS for Android - DroidCon VIenna 2016
alosdev
0
60
PERFMATTERS for Android - DroidCon Berlin 2016
alosdev
0
1.8k
Other Decks in Technology
See All in Technology
サラリーマンソフトウェアエンジニアのキャリア
yuheinakasaka
40
19k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
First-Principles-of-Scrum
hiranabe
4
2.1k
困ったCSVファイルの話
mottyzzz
0
230
コールドスタンバイ構成でCDは可能か
hiramax
0
130
手軽に作れる電卓を作って イベントソーシングに親しもう CQRS+ESカンファレンス2026
akinoriakatsuka
0
290
SwiftDataを覗き見る
akidon0000
0
210
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
62k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1.5k
Data Hubグループ 紹介資料
sansan33
PRO
0
2.6k
ALB「証明書上限問題」からの脱却
nishiokashinji
0
130
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
From π to Pie charts
rasagy
0
110
A better future with KSS
kneath
240
18k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Agile that works and the tools we love
rasmusluckow
331
21k
Leo the Paperboy
mayatellez
3
1.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.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