$30 off During Our Annual Pro Sale. View Details »
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
67
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
88
Living on a green rocket field - DevFest Istanbul 2018
alosdev
1
220
Living on a green rocket field - Mobilization 2018
alosdev
1
170
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
58
PERFMATTERS for Android - DroidCon Berlin 2016
alosdev
0
1.8k
Other Decks in Technology
See All in Technology
MySQLのSpatial(GIS)機能をもっと充実させたい ~ MyNA望年会2025LT
sakaik
0
120
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1.6k
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
370
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
180
Microsoft Agent Frameworkの可観測性
tomokusaba
1
110
AI との良い付き合い方を僕らは誰も知らない
asei
0
270
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
980
『君の名は』と聞く君の名は。 / Your name, you who asks for mine.
nttcom
1
120
[2025-12-12]あの日僕が見た胡蝶の夢 〜人の夢は終わらねェ AIによるパフォーマンスチューニングのすゝめ〜
tosite
0
180
SQLだけでマイグレーションしたい!
makki_d
0
1.2k
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
sonoda_mj
6
1.7k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Discover your Explorer Soul
emna__ayadi
2
1k
Utilizing Notion as your number one productivity tool
mfonobong
2
190
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
860
The browser strikes back
jonoalderson
0
130
エンジニアに許された特別な時間の終わり
watany
106
220k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
0
96
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
230
KATA
mclloyd
PRO
33
15k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Un-Boring Meetings
codingconduct
0
160
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