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
86
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Developing for the Big Screen - GDG Berlin Android 2014 10 Meetup
Hasan Hosgel
October 29, 2014
More Decks by Hasan Hosgel
See All by Hasan Hosgel
What's new in PlayStore @ IO19 @ BerlinDroid May 2019
alosdev
0
110
Living on a green rocket field - DevFest Istanbul 2018
alosdev
1
250
Living on a green rocket field - Mobilization 2018
alosdev
1
190
Living on a green rocket field - GDG Berlin Android meetup
alosdev
2
220
Actions on Google - GDG Berlin Android Meetup February 2017
alosdev
0
190
PERFMATTERS for Android - DevFest Switzerland 2016
alosdev
0
220
Let's Map It! DevFest Hamburg 2016
alosdev
0
180
PERFMATTERS for Android - DroidCon VIenna 2016
alosdev
0
80
PERFMATTERS for Android - DroidCon Berlin 2016
alosdev
0
1.8k
Other Decks in Technology
See All in Technology
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.4k
Genie Codeハンズオン応用編
taka_aki
0
120
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
350
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
0
130
AI-DLC実践録_フルサイクル開発への挑戦
miyuc
0
250
JavaScript 研修 (2026)
recruitengineers
PRO
2
620
Reference-Free Image Quality Assessment for Virtual Try-On via Human Feedback
zozotech
PRO
0
620
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
420
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
410
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
220
コーチングの奥義 何もしないテクニック
jinwatanabe
0
110
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
The Cost Of JavaScript in 2023
addyosmani
55
10k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Invisible Side of Design
smashingmag
301
52k
Docker and Python
trallard
47
4.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Statistics for Hackers
jakevdp
799
230k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
Amusing Abliteration
ianozsvald
1
250
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
WENDY [Excerpt]
tessaabrams
11
39k
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