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
53
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
65
Living on a green rocket field - DevFest Istanbul 2018
alosdev
1
190
Living on a green rocket field - Mobilization 2018
alosdev
1
150
Living on a green rocket field - GDG Berlin Android meetup
alosdev
2
170
Actions on Google - GDG Berlin Android Meetup February 2017
alosdev
0
150
PERFMATTERS for Android - DevFest Switzerland 2016
alosdev
0
150
Let's Map It! DevFest Hamburg 2016
alosdev
0
110
PERFMATTERS for Android - DroidCon VIenna 2016
alosdev
0
41
PERFMATTERS for Android - DroidCon Berlin 2016
alosdev
0
1.7k
Other Decks in Technology
See All in Technology
ネットワークだけ隔離されたコンテナ作成デモ / Kichijoji.pm36
tenforward
1
250
サプライチェーン攻撃に備える
ryunen344
0
390
とあるOSSを継続可能にするための取り組みについて / OSS Refactoring Process
bun913
1
210
やってやろうじゃないかメカアジャイル! / Let's do it, mechanical agile!
psj59129
1
700
あなたの知らないiOS開発の世界
recruitengineers
PRO
3
190
持続可能なソフトウェア開発を支える『GitHub CI/CD実践ガイド』
tmknom
8
1.4k
ついに出た!OpenAIの最新モデル「o1」って何がすごいの?
minorun365
PRO
3
1.3k
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
4
480
AIで変わるテスト自動化:最新ツールの多様なアプローチ/ 20240910 Takahiro Kaneyama
shift_evolve
0
250
Cloud Run と GitHub Template Repository による軽量なアプリケーションプラットフォーム/ #nikkei_tech_talk
nikkei_engineer_recruiting
0
120
Privacy Sandbox on Android / DroidKaigi 2024
7pairs
1
280
LINEヤフーのフロントエンド組織・体制の紹介
lycorp_recruit_jp
1
1.2k
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
23
1.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
28
1.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
5
490
Agile that works and the tools we love
rasmusluckow
327
20k
Writing Fast Ruby
sferik
623
60k
Teambox: Starting and Learning
jrom
131
8.7k
YesSQL, Process and Tooling at Scale
rocio
167
14k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
Become a Pro
speakerdeck
PRO
22
4.9k
A Modern Web Designer's Workflow
chriscoyier
692
190k
RailsConf 2023
tenderlove
28
810
Web development in the modern age
philhawksworth
205
10k
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