SlideShare a Scribd company logo
1 of 107
Download to read offline
www.immobilienscout24.de 
Developing for the Big 
Screen - from Android TV to 
Chromecast 
DevFest Istanbul 2014 | 06.12.2014 | Hasan Hosgel
About me 
+HasanHosgel 
@alosdev 
alosdev 
hosgel 
CO-Organizer 
Developer 
Developing for the Big Screen | Hasan Hosgel
About ImmobilienScout24 
Germany’s largest real 
estate listing company. 
> 10.5 Mio. Monthly unique 
users 
> 1.5 Mio. real estates 
> 300 Mio. detail views 
> 1500 Servers 
~ 8 Mio. App downloads 
> 3.5 Mio. Android 
> 55% mobile traffic 
Developing for the Big Screen | Hasan Hosgel
Once upon a time 
Developing for the Big Image Source Screen | Hasan Hosgel 
https://www.flickr.com/photos/theinfamousgdub/1765952198
Has time to create something new 
Developing for the Big Image Source Screen | Hasan Hosgel 
https://www.flickr.com/photos/slworking/8095803230
While sitting in the living room… 
Developing for the Big Image Source Screen | Hasan Hosgel 
http://upload.wikimedia.org/wikipedia/commons/4/4c/Children_watching_TV.jpg
Image source: 
http://upload.wikimedia.org/wikipedia/commons/b/b2/Google_tv_logo.svg 
Developing for the Big Screen | Hasan Hosgel
Wait 
Image source: 
http://upload.wikimedia.org/wikipedia/commons/b/b2/Google_tv_logo.svg 
Developing for the Big Screen | Hasan Hosgel
Oops 
Image source: 
http://upload.wikimedia.org/wikipedia/commons/b/b2/Google_tv_logo.svg 
Developing for the Big Screen | Hasan Hosgel
Android TV 
Image source: 
http://www.android.com/tv/ 
Developing for the Big Screen | Hasan Hosgel
Device 
Image source: 
http://www.android.com/tv/ 
Developing for the Big Screen | Hasan Hosgel
Let’s build the ground 
Image source: 
http://www.flickr.com/photos/hertenberger/1434191066/ 
Developing for the Big Screen | Hasan Hosgel
Before we start programming 
Developing for the Big Image Source Screen | Hasan Hosgel 
https://www.flickr.com/photos/pgautier/166610944
Prerequisite 
Developing for the Big Screen | Hasan Hosgel
Prerequisite 
● casual consumption - not focused like on 
phone 
Developing for the Big Screen | Hasan Hosgel
Prerequisite 
● casual consumption - not focused like on 
phone 
● cinematic experience - 3 meter away 
Developing for the Big Screen | Hasan Hosgel
Prerequisite 
● casual consumption - not focused like on 
phone 
● cinematic experience - 3 meter away 
● Simplicity - no touchpad 
Developing for the Big Screen | Hasan Hosgel
Navigation 
Developing for the Big Screen | Hasan Hosgel
Navigation 
● Home 
Developing for the Big Screen | Hasan Hosgel
Navigation 
● Home 
● Enter Button 
Developing for the Big Screen | Hasan Hosgel
Navigation 
● Home 
● Enter Button 
● Back 
Developing for the Big Screen | Hasan Hosgel
Navigation 
● Home 
● Enter Button 
● Back 
● D-Pad in two axis 
Developing for the Big Screen | Hasan Hosgel
Navigation with D-Pad 
Developing for the Big Screen | Hasan Hosgel 
Source: http://www.flickr.com/photos/16210667@N02/9172895225
Navigation 
Developing for the Big Screen | Hasan Hosgel
Navigation 
● use appropriate states for better 
recognotion of focus/ selection 
Developing for the Big Screen | Hasan Hosgel
Navigation 
● use appropriate states for better 
recognotion of focus/ selection 
● use sound – occasionally 
Developing for the Big Screen | Hasan Hosgel
Navigation 
● use appropriate states for better 
recognotion of focus/ selection 
● use sound – occasionally 
● use next focus targets - for defining own 
navigation flow 
Developing for the Big Screen | Hasan Hosgel
Navigation 
● use appropriate states for better 
recognotion of focus/ selection 
● use sound – occasionally 
● use next focus targets - for defining own 
navigation flow 
èTest it properly 
Developing for the Big Screen | Hasan Hosgel
Start 
Developing for the Big Image Source Screen | Hasan Hosgel 
https://www.flickr.com/photos/thevancats/422670456
Needed libraries 
Developing for the Big Screen | Hasan Hosgel
Needed libraries 
● v17 leanback support library 
Developing for the Big Screen | Hasan Hosgel
Needed libraries 
● v17 leanback support library 
● v7 recyclerview support library 
Developing for the Big Screen | Hasan Hosgel
Needed libraries 
● v17 leanback support library 
● v7 recyclerview support library 
● v7 cardview support library 
Developing for the Big Screen | Hasan Hosgel
Needed libraries 
● v17 leanback support library 
● v7 recyclerview support library 
● v7 cardview support library 
è Forces you to use also 
● v4 support library 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml changes 
<manifest ...> 
... 
... 
</manifest> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml changes 
<manifest ...> 
... 
<uses-feature 
android:name="android.hardware.touchscreen" 
android:required="false" /> 
... 
</manifest> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml changes 
<manifest ...> 
... 
<uses-feature 
android:name="android.hardware.touchscreen" 
android:required="false" /> 
... 
</manifest> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml changes 
<manifest ...> 
... 
<uses-feature 
android:name="android.hardware.touchscreen" 
android:required="false" /> 
... 
</manifest> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml changes 
<manifest ...> 
... 
<uses-feature 
android:name="android.hardware.touchscreen" 
android:required="false" /> 
... 
</manifest> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml changes 
<manifest ...> 
... 
<uses-feature 
android:name="android.hardware.touchscreen" 
android:required="false" /> 
<uses-feature 
android:name="android.software.leanback" 
android:required="true" /> 
... 
</manifest> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml changes 
<manifest ...> 
... 
<uses-feature 
android:name="android.hardware.touchscreen" 
android:required="false" /> 
<uses-feature 
android:name="android.software.leanback" 
android:required="true" /> 
... 
</manifest> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml changes 
<manifest ...> 
... 
<uses-feature 
android:name="android.hardware.touchscreen" 
android:required="false" /> 
<uses-feature 
android:name="android.software.leanback" 
android:required="true" /> 
... 
</manifest> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml changes 
<manifest ...> 
... 
<uses-feature 
android:name="android.hardware.touchscreen" 
android:required="false" /> 
<uses-feature 
android:name="android.software.leanback" 
android:required="true" /> 
... 
</manifest> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml application changes 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml application changes 
<application 
android:banner="@drawable/banner" > 
... 
</application> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml application changes 
<application 
android:banner="@drawable/banner" > 
... 
</application> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml application changes 
<application 
android:banner="@drawable/banner" > 
... 
</application> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml application changes 
<application 
android:banner="@drawable/banner" > 
... 
<activity 
android:name="com.example.android.TvActivity“ 
android:theme="@style/Theme.Leanback"> 
</activity> 
</application> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml application changes 
<application 
android:banner="@drawable/banner" > 
... 
<activity 
android:name="com.example.android.TvActivity“ 
android:theme="@style/Theme.Leanback"> 
</activity> 
</application> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml application changes 
<application 
android:banner="@drawable/banner" > 
... 
<activity 
android:name="com.example.android.TvActivity“ 
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> 
</application> 
Developing for the Big Screen | Hasan Hosgel
AndroidManifest.xml application changes 
<application 
android:banner="@drawable/banner" > 
... 
<activity 
android:name="com.example.android.TvActivity“ 
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> 
</application> 
Developing for the Big Screen | Hasan Hosgel
Not Supported Hardware Features 
● android.hardware.touchscreen 
● android.hardware.telephony 
● android.hardware.camera 
● android.hardware.nfc 
● android.hardware.location.gps 
● android.hardware.microphone 
Developing for the Big Screen | Hasan Hosgel
avoid filtering in Playstore 
Developing for the Big Screen | Hasan Hosgel
avoid filtering in Playstore 
set the attribute “required” to “false” in 
AndroidManifest 
Developing for the Big Screen | Hasan Hosgel
avoid filtering in Playstore 
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 
Developing for the Big Screen | Hasan Hosgel
Recognize TV programmatically 
Developing for the Big Screen | Hasan Hosgel
Recognize TV programmatically 
UiModeManager uiModeManager = (UiModeManager) 
getSystemService(UI_MODE_SERVICE); 
Developing for the Big Screen | Hasan Hosgel
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") 
} 
Developing for the Big Screen | Hasan Hosgel
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") 
} 
Developing for the Big Screen | Hasan Hosgel
Consider Overscan 
Developing for the Big Screen | Hasan Hosgel
Avoid Layout Anti-Patterns 
Developing for the Big Screen | Hasan Hosgel
Avoid Layout Anti-Patterns 
● Reuse of phone or tablet layout 
Developing for the Big Screen | Hasan Hosgel
Avoid Layout Anti-Patterns 
● Reuse of phone or tablet layout 
● Usage of ActionBar 
Developing for the Big Screen | Hasan Hosgel
Avoid Layout Anti-Patterns 
● Reuse of phone or tablet layout 
● Usage of ActionBar 
● Usage of ViewPager 
Developing for the Big Screen | Hasan Hosgel
Let’s take a deeper look at the used Design Pattern 
Developing for the Big Image Source Screen | Hasan Hosgel 
https://www.flickr.com/photos/dsittig/12311006886
Model View Constroller vs. Model View Presenter 
Developing for the Big Screen | Hasan Hosgel 
Source: http://i.imgur.com/xbeB5.png
Model View Constroller vs. Model View Presenter 
Developing for the Big Screen | Hasan Hosgel 
Source: http://i.imgur.com/xbeB5.png
Some Base Classes 
● BrowseFragment 
Developing for the Big Screen | Hasan Hosgel
Browse Fragment 
Developing for the Big Screen | Hasan Hosgel 
Source: https://github.com/googlesamples/androidtv-Leanback/
Browse Fragment 
Developing for the Big Screen | Hasan Hosgel 
Source: https://github.com/googlesamples/androidtv-Leanback/
Some Base Classes 
● BrowseFragment 
● DetailFragment 
Developing for the Big Screen | Hasan Hosgel
Detail Fragment 
Developing for the Big Screen | Hasan Hosgel 
Source: https://github.com/googlesamples/androidtv-Leanback/
Detail Fragment 
Developing for the Big Screen | Hasan Hosgel 
Source: https://github.com/googlesamples/androidtv-Leanback/
Some Base Classes 
● BrowseFragment 
● DetailFragment 
● SearchFragment 
Developing for the Big Screen | Hasan Hosgel
Search Fragment 
Developing for the Big Screen | Hasan Hosgel 
Source: https://github.com/googlesamples/androidtv-Leanback/
Some Base Classes 
● BrowseFragment 
● DetailFragment 
● SearchFragment 
● Recommendations (no base class) 
Developing for the Big Screen | Hasan Hosgel
Recommendation 
Developing for the Big Screen | Hasan Hosgel 
Source: https://github.com/googlesamples/androidtv-Leanback/
Testing 
● Emulator 
● ADT-1 
● Nexus Player 
Developing for the Big Screen | Hasan Hosgel
Finished waiting for $$$ 
Developing for the Big Screen | Hasan Hosgel 
Source: http://www.flickr.com/photos/16210667@N02/9172895225
Some days later a friend sends a message 
Developing for the Big Image Source Screen | Hasan Hosgel 
https://www.flickr.com/photos/jparise/214330120
Chromecast 
Developing for the Big Image Source Screen | Hasan Hosgel 
http://www.google.de/intl/de/chrome/devices/chromecast/
Chromecast 
Developing for the Big Image Source Screen | Hasan Hosgel 
http://www.google.de/intl/de/chrome/devices/chromecast/
Starting the conversation 
Developing for the Big Image Source Screen | Hasan Hosgel 
http://pixabay.com/de/katze-hauskate-tier-augen-blick-278187/
You can conquer a new world 
Developing for the Big Image Source Screen | Hasan Hosgel 
http://pixabay.com/de/katze-wand-loch-überraschung-alt-491730/
Developing for Chomecast 
● Registration (cost 5$) 
Developing for the Big Screen | Hasan Hosgel
Developing for Chomecast 
● Registration (cost 5$) 
" Register application and developer 
devices 
Developing for the Big Screen | Hasan Hosgel
You can conquer a new world 
Developing for the Big Screen | Hasan Hosgel
Developing for Chomecast 
● Registration (cost 5$) 
" Register application and developer 
devices 
● Create sender app 
" Android, IOs, Chrome 
Developing for the Big Screen | Hasan Hosgel
Developing for Chomecast 
● Registration (cost 5$) 
" Register application and developer 
devices 
● Create sender app 
" Android, IOs, Chrome 
Developing for the Big Screen | Hasan Hosgel
Needed libraries 
Developing for the Big Screen | Hasan Hosgel
Needed libraries 
● v7 appcompat support library 
Developing for the Big Screen | Hasan Hosgel
Needed libraries 
● v7 appcompat support library 
● v7 mediarouter support library 
Developing for the Big Screen | Hasan Hosgel
Needed libraries 
● v7 appcompat support library 
● v7 mediarouter support library 
● google play services library 
Developing for the Big Screen | Hasan Hosgel
Needed libraries 
● v7 appcompat support library 
● v7 mediarouter support library 
● google play services library 
è Forces you to use also 
Developing for the Big Screen | Hasan Hosgel
Needed libraries 
● v7 appcompat support library 
● v7 mediarouter support library 
● google play services library 
è Forces you to use also 
● v4 support library 
Developing for the Big Screen | Hasan Hosgel
Developing for Chomecast 
● Registration (cost 5$) 
" Register application and developer 
devices 
● Create sender application 
" Android, IOs, Chrome 
● Create receiver application 
" HTML 
Developing for the Big Screen | Hasan Hosgel
Wait again for $$$ 
Developing for the Big Screen | Hasan Hosgel 
Source: http://www.flickr.com/photos/16210667@N02/9172895225
Users complaining: they can’t use it on Chromecast! 
Developing for the Big Image Source Screen | Hasan Hosgel 
http://pixabay.com/de/baby-tränen-kleinkind-traurig-443393/
After you understand the problem 
Developing for the Big Image Source Screen | Hasan Hosgel 
http://pixabay.com/de/darstellung-porträt-schreien-schrei-89189/
Presenation API 
Developing for the Big Screen | Hasan Hosgel
Presenation API 
● In Android API Level 17 support for 
secondary screen was added 
Developing for the Big Screen | Hasan Hosgel
Presenation API 
● In Android API Level 17 support for 
secondary screen was added 
è Android Mirroring can display different Uis 
for device and what is displayed ChromeCast 
Developing for the Big Screen | Hasan Hosgel
Presenation API 
● In Android API Level 17 support for 
secondary screen was added 
è Android Mirroring can display different Uis 
for device and what is displayed ChromeCast 
Similar to MiraCast 
Developing for the Big Screen | Hasan Hosgel
Now we can rule the world! 
Developing for the Big Image Source Screen | Hasan Hosgel 
http://www.bhmpics.com/success_kid-wallpapers.html
Q & A 
Source: http://www.flickr.com/photos/21496790@N06/5065834411/ 
Developing for the Big Screen | Hasan Hosgel
www.immobilienscout24.de 
Thanks for your Attention! 
İlginiz için teşekkürler! 
Contact: 
+HasanHosgel 
Twitter: @alosdev 
Github: alosdev 
Developing for the Big Screen - from Android TV to Chromecast 
https://de.slideshare.net/hosgel/dev-fest-istanbul2014developingforthebig-screenfromandroidtvtochromecast
material 
● AndroidTV 
" http://developer.android.com/training/tv/ 
" https://github.com/googlesamples/androidtv-Leanback 
● ChromeCast 
" https://developers.google.com/cast/ 
" https://github.com/googlecast 
● Presentation API 
" http://developer.android.com/reference/android/app/ 
Presentation.html 
" https://github.com/googlecast/CastPresentation-android 
Developing for the Big Screen | Hasan Hosgel

More Related Content

Viewers also liked

Multi-Layer Barrier Technology
Multi-Layer Barrier TechnologyMulti-Layer Barrier Technology
Multi-Layer Barrier TechnologyDave Morton
 
Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013Hasan Hosgel
 
Tariff engineering: All You Can Eat Buffet or Customs Fraud
Tariff engineering: All You Can Eat Buffet or Customs FraudTariff engineering: All You Can Eat Buffet or Customs Fraud
Tariff engineering: All You Can Eat Buffet or Customs FraudLawrence Friedman
 
MPPL Chapter 7
MPPL Chapter 7MPPL Chapter 7
MPPL Chapter 7beiharira
 
Set nits amb la paula (miriam)
Set nits amb la paula (miriam)Set nits amb la paula (miriam)
Set nits amb la paula (miriam)antoniadenrabassa
 
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢESISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢERaducanuM
 
Lean, stratégie et résultats par Catherine Chabiron
Lean, stratégie et résultats par Catherine Chabiron Lean, stratégie et résultats par Catherine Chabiron
Lean, stratégie et résultats par Catherine Chabiron Institut Lean France
 
How to become an Android developer
How to become an Android developerHow to become an Android developer
How to become an Android developerIvan Kocijan
 

Viewers also liked (11)

stosa
stosastosa
stosa
 
Multi-Layer Barrier Technology
Multi-Layer Barrier TechnologyMulti-Layer Barrier Technology
Multi-Layer Barrier Technology
 
Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013
 
Tariff engineering: All You Can Eat Buffet or Customs Fraud
Tariff engineering: All You Can Eat Buffet or Customs FraudTariff engineering: All You Can Eat Buffet or Customs Fraud
Tariff engineering: All You Can Eat Buffet or Customs Fraud
 
Fire at LOGSTOR
Fire at LOGSTORFire at LOGSTOR
Fire at LOGSTOR
 
MPPL Chapter 7
MPPL Chapter 7MPPL Chapter 7
MPPL Chapter 7
 
Set nits amb la paula (miriam)
Set nits amb la paula (miriam)Set nits amb la paula (miriam)
Set nits amb la paula (miriam)
 
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢESISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
SISTEM DE PRIORITIZARE AL TRAFICULUI DE URGENŢE
 
Inheritance in java
Inheritance in javaInheritance in java
Inheritance in java
 
Lean, stratégie et résultats par Catherine Chabiron
Lean, stratégie et résultats par Catherine Chabiron Lean, stratégie et résultats par Catherine Chabiron
Lean, stratégie et résultats par Catherine Chabiron
 
How to become an Android developer
How to become an Android developerHow to become an Android developer
How to become an Android developer
 

Similar to DevFest Istanbul 2014 - Developing for the Big Screen - from Android TV to Chromecast

Building Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with DrupalBuilding Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with DrupalFour Kitchens
 
Android training day 3
Android training day 3Android training day 3
Android training day 3Vivek Bhusal
 
Presentation - Android App Development - Mr. Samrakchan
Presentation - Android App Development - Mr. SamrakchanPresentation - Android App Development - Mr. Samrakchan
Presentation - Android App Development - Mr. SamrakchanMobileNepal
 
Android Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareAndroid Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareHasan Hosgel
 
Whitepaper - Native App or HTML5
Whitepaper - Native App or HTML5Whitepaper - Native App or HTML5
Whitepaper - Native App or HTML5Dan Vitoriano
 
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...mstonis
 
Creating Mobile Aps without Coding
Creating Mobile Aps without CodingCreating Mobile Aps without Coding
Creating Mobile Aps without CodingJack Molisani
 
The Web Platform - State of the Union '17
The Web Platform - State of the Union '17The Web Platform - State of the Union '17
The Web Platform - State of the Union '17Abdelrahman Omran
 
Droidcon nl 2013 best practices to develop for different android device class...
Droidcon nl 2013 best practices to develop for different android device class...Droidcon nl 2013 best practices to develop for different android device class...
Droidcon nl 2013 best practices to develop for different android device class...Hasan Hosgel
 
An Introduction to Responsive Design
An Introduction to Responsive DesignAn Introduction to Responsive Design
An Introduction to Responsive DesignValtech UK
 
Responsive web design
Responsive web designResponsive web design
Responsive web designpsophy
 
Designing A Great User Experience
Designing A Great User ExperienceDesigning A Great User Experience
Designing A Great User ExperienceSteve Hickey
 
How to Project-Manage and Implement a Responsive Website
How to Project-Manage and Implement a Responsive WebsiteHow to Project-Manage and Implement a Responsive Website
How to Project-Manage and Implement a Responsive WebsiteJj Jurgens
 
Droidcon 2013 multidevice nightmare
Droidcon 2013 multidevice nightmareDroidcon 2013 multidevice nightmare
Droidcon 2013 multidevice nightmareDroidcon Berlin
 
Native Android Development Practices
Native Android Development PracticesNative Android Development Practices
Native Android Development PracticesRoy Clarkson
 
Droidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareDroidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareHasan Hosgel
 
Making money with android applications
Making money with android applicationsMaking money with android applications
Making money with android applicationssonia1sh
 
Invading the home screen
Invading the home screenInvading the home screen
Invading the home screenMatteo Bonifazi
 
Delivering Responsive Design at Scale
Delivering Responsive Design at ScaleDelivering Responsive Design at Scale
Delivering Responsive Design at ScaleCantina
 

Similar to DevFest Istanbul 2014 - Developing for the Big Screen - from Android TV to Chromecast (20)

Building Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with DrupalBuilding Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with Drupal
 
Android training day 3
Android training day 3Android training day 3
Android training day 3
 
Presentation - Android App Development - Mr. Samrakchan
Presentation - Android App Development - Mr. SamrakchanPresentation - Android App Development - Mr. Samrakchan
Presentation - Android App Development - Mr. Samrakchan
 
Android Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareAndroid Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice Nightmare
 
Whitepaper - Native App or HTML5
Whitepaper - Native App or HTML5Whitepaper - Native App or HTML5
Whitepaper - Native App or HTML5
 
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
 
Creating Mobile Aps without Coding
Creating Mobile Aps without CodingCreating Mobile Aps without Coding
Creating Mobile Aps without Coding
 
The Web Platform - State of the Union '17
The Web Platform - State of the Union '17The Web Platform - State of the Union '17
The Web Platform - State of the Union '17
 
Droidcon nl 2013 best practices to develop for different android device class...
Droidcon nl 2013 best practices to develop for different android device class...Droidcon nl 2013 best practices to develop for different android device class...
Droidcon nl 2013 best practices to develop for different android device class...
 
An Introduction to Responsive Design
An Introduction to Responsive DesignAn Introduction to Responsive Design
An Introduction to Responsive Design
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Designing A Great User Experience
Designing A Great User ExperienceDesigning A Great User Experience
Designing A Great User Experience
 
How to Project-Manage and Implement a Responsive Website
How to Project-Manage and Implement a Responsive WebsiteHow to Project-Manage and Implement a Responsive Website
How to Project-Manage and Implement a Responsive Website
 
Gup web mobilegis
Gup web mobilegisGup web mobilegis
Gup web mobilegis
 
Droidcon 2013 multidevice nightmare
Droidcon 2013 multidevice nightmareDroidcon 2013 multidevice nightmare
Droidcon 2013 multidevice nightmare
 
Native Android Development Practices
Native Android Development PracticesNative Android Development Practices
Native Android Development Practices
 
Droidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareDroidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice Nightmare
 
Making money with android applications
Making money with android applicationsMaking money with android applications
Making money with android applications
 
Invading the home screen
Invading the home screenInvading the home screen
Invading the home screen
 
Delivering Responsive Design at Scale
Delivering Responsive Design at ScaleDelivering Responsive Design at Scale
Delivering Responsive Design at Scale
 

More from Hasan Hosgel

MTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi DevicesMTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi DevicesHasan Hosgel
 
Android bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & AdapterAndroid bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & AdapterHasan Hosgel
 
Customer&rsquo;s Choice @ GDG Android Berlin on January meetup
Customer&rsquo;s Choice @ GDG Android Berlin on January meetupCustomer&rsquo;s Choice @ GDG Android Berlin on January meetup
Customer&rsquo;s Choice @ GDG Android Berlin on January meetupHasan Hosgel
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The AndroidHasan Hosgel
 
Coexisting of Android & Robots
Coexisting of Android & RobotsCoexisting of Android & Robots
Coexisting of Android & RobotsHasan Hosgel
 
Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Hasan Hosgel
 

More from Hasan Hosgel (6)

MTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi DevicesMTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi Devices
 
Android bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & AdapterAndroid bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & Adapter
 
Customer&rsquo;s Choice @ GDG Android Berlin on January meetup
Customer&rsquo;s Choice @ GDG Android Berlin on January meetupCustomer&rsquo;s Choice @ GDG Android Berlin on January meetup
Customer&rsquo;s Choice @ GDG Android Berlin on January meetup
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
 
Coexisting of Android & Robots
Coexisting of Android & RobotsCoexisting of Android & Robots
Coexisting of Android & Robots
 
Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

DevFest Istanbul 2014 - Developing for the Big Screen - from Android TV to Chromecast

  • 1. www.immobilienscout24.de Developing for the Big Screen - from Android TV to Chromecast DevFest Istanbul 2014 | 06.12.2014 | Hasan Hosgel
  • 2. About me +HasanHosgel @alosdev alosdev hosgel CO-Organizer Developer Developing for the Big Screen | Hasan Hosgel
  • 3. About ImmobilienScout24 Germany’s largest real estate listing company. > 10.5 Mio. Monthly unique users > 1.5 Mio. real estates > 300 Mio. detail views > 1500 Servers ~ 8 Mio. App downloads > 3.5 Mio. Android > 55% mobile traffic Developing for the Big Screen | Hasan Hosgel
  • 4. Once upon a time Developing for the Big Image Source Screen | Hasan Hosgel https://www.flickr.com/photos/theinfamousgdub/1765952198
  • 5. Has time to create something new Developing for the Big Image Source Screen | Hasan Hosgel https://www.flickr.com/photos/slworking/8095803230
  • 6. While sitting in the living room… Developing for the Big Image Source Screen | Hasan Hosgel http://upload.wikimedia.org/wikipedia/commons/4/4c/Children_watching_TV.jpg
  • 8. Wait Image source: http://upload.wikimedia.org/wikipedia/commons/b/b2/Google_tv_logo.svg Developing for the Big Screen | Hasan Hosgel
  • 9. Oops Image source: http://upload.wikimedia.org/wikipedia/commons/b/b2/Google_tv_logo.svg Developing for the Big Screen | Hasan Hosgel
  • 10. Android TV Image source: http://www.android.com/tv/ Developing for the Big Screen | Hasan Hosgel
  • 11. Device Image source: http://www.android.com/tv/ Developing for the Big Screen | Hasan Hosgel
  • 12. Let’s build the ground Image source: http://www.flickr.com/photos/hertenberger/1434191066/ Developing for the Big Screen | Hasan Hosgel
  • 13. Before we start programming Developing for the Big Image Source Screen | Hasan Hosgel https://www.flickr.com/photos/pgautier/166610944
  • 14. Prerequisite Developing for the Big Screen | Hasan Hosgel
  • 15. Prerequisite ● casual consumption - not focused like on phone Developing for the Big Screen | Hasan Hosgel
  • 16. Prerequisite ● casual consumption - not focused like on phone ● cinematic experience - 3 meter away Developing for the Big Screen | Hasan Hosgel
  • 17. Prerequisite ● casual consumption - not focused like on phone ● cinematic experience - 3 meter away ● Simplicity - no touchpad Developing for the Big Screen | Hasan Hosgel
  • 18. Navigation Developing for the Big Screen | Hasan Hosgel
  • 19. Navigation ● Home Developing for the Big Screen | Hasan Hosgel
  • 20. Navigation ● Home ● Enter Button Developing for the Big Screen | Hasan Hosgel
  • 21. Navigation ● Home ● Enter Button ● Back Developing for the Big Screen | Hasan Hosgel
  • 22. Navigation ● Home ● Enter Button ● Back ● D-Pad in two axis Developing for the Big Screen | Hasan Hosgel
  • 23. Navigation with D-Pad Developing for the Big Screen | Hasan Hosgel Source: http://www.flickr.com/photos/16210667@N02/9172895225
  • 24. Navigation Developing for the Big Screen | Hasan Hosgel
  • 25. Navigation ● use appropriate states for better recognotion of focus/ selection Developing for the Big Screen | Hasan Hosgel
  • 26. Navigation ● use appropriate states for better recognotion of focus/ selection ● use sound – occasionally Developing for the Big Screen | Hasan Hosgel
  • 27. Navigation ● use appropriate states for better recognotion of focus/ selection ● use sound – occasionally ● use next focus targets - for defining own navigation flow Developing for the Big Screen | Hasan Hosgel
  • 28. Navigation ● use appropriate states for better recognotion of focus/ selection ● use sound – occasionally ● use next focus targets - for defining own navigation flow èTest it properly Developing for the Big Screen | Hasan Hosgel
  • 29. Start Developing for the Big Image Source Screen | Hasan Hosgel https://www.flickr.com/photos/thevancats/422670456
  • 30. Needed libraries Developing for the Big Screen | Hasan Hosgel
  • 31. Needed libraries ● v17 leanback support library Developing for the Big Screen | Hasan Hosgel
  • 32. Needed libraries ● v17 leanback support library ● v7 recyclerview support library Developing for the Big Screen | Hasan Hosgel
  • 33. Needed libraries ● v17 leanback support library ● v7 recyclerview support library ● v7 cardview support library Developing for the Big Screen | Hasan Hosgel
  • 34. Needed libraries ● v17 leanback support library ● v7 recyclerview support library ● v7 cardview support library è Forces you to use also ● v4 support library Developing for the Big Screen | Hasan Hosgel
  • 35. AndroidManifest.xml changes <manifest ...> ... ... </manifest> Developing for the Big Screen | Hasan Hosgel
  • 36. AndroidManifest.xml changes <manifest ...> ... <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest> Developing for the Big Screen | Hasan Hosgel
  • 37. AndroidManifest.xml changes <manifest ...> ... <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest> Developing for the Big Screen | Hasan Hosgel
  • 38. AndroidManifest.xml changes <manifest ...> ... <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest> Developing for the Big Screen | Hasan Hosgel
  • 39. AndroidManifest.xml changes <manifest ...> ... <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest> Developing for the Big Screen | Hasan Hosgel
  • 40. AndroidManifest.xml changes <manifest ...> ... <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <uses-feature android:name="android.software.leanback" android:required="true" /> ... </manifest> Developing for the Big Screen | Hasan Hosgel
  • 41. AndroidManifest.xml changes <manifest ...> ... <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <uses-feature android:name="android.software.leanback" android:required="true" /> ... </manifest> Developing for the Big Screen | Hasan Hosgel
  • 42. AndroidManifest.xml changes <manifest ...> ... <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <uses-feature android:name="android.software.leanback" android:required="true" /> ... </manifest> Developing for the Big Screen | Hasan Hosgel
  • 43. AndroidManifest.xml changes <manifest ...> ... <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <uses-feature android:name="android.software.leanback" android:required="true" /> ... </manifest> Developing for the Big Screen | Hasan Hosgel
  • 44. AndroidManifest.xml application changes Developing for the Big Screen | Hasan Hosgel
  • 45. AndroidManifest.xml application changes <application android:banner="@drawable/banner" > ... </application> Developing for the Big Screen | Hasan Hosgel
  • 46. AndroidManifest.xml application changes <application android:banner="@drawable/banner" > ... </application> Developing for the Big Screen | Hasan Hosgel
  • 47. AndroidManifest.xml application changes <application android:banner="@drawable/banner" > ... </application> Developing for the Big Screen | Hasan Hosgel
  • 48. AndroidManifest.xml application changes <application android:banner="@drawable/banner" > ... <activity android:name="com.example.android.TvActivity“ android:theme="@style/Theme.Leanback"> </activity> </application> Developing for the Big Screen | Hasan Hosgel
  • 49. AndroidManifest.xml application changes <application android:banner="@drawable/banner" > ... <activity android:name="com.example.android.TvActivity“ android:theme="@style/Theme.Leanback"> </activity> </application> Developing for the Big Screen | Hasan Hosgel
  • 50. AndroidManifest.xml application changes <application android:banner="@drawable/banner" > ... <activity android:name="com.example.android.TvActivity“ 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> </application> Developing for the Big Screen | Hasan Hosgel
  • 51. AndroidManifest.xml application changes <application android:banner="@drawable/banner" > ... <activity android:name="com.example.android.TvActivity“ 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> </application> Developing for the Big Screen | Hasan Hosgel
  • 52. Not Supported Hardware Features ● android.hardware.touchscreen ● android.hardware.telephony ● android.hardware.camera ● android.hardware.nfc ● android.hardware.location.gps ● android.hardware.microphone Developing for the Big Screen | Hasan Hosgel
  • 53. avoid filtering in Playstore Developing for the Big Screen | Hasan Hosgel
  • 54. avoid filtering in Playstore set the attribute “required” to “false” in AndroidManifest Developing for the Big Screen | Hasan Hosgel
  • 55. avoid filtering in Playstore 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 Developing for the Big Screen | Hasan Hosgel
  • 56. Recognize TV programmatically Developing for the Big Screen | Hasan Hosgel
  • 57. Recognize TV programmatically UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE); Developing for the Big Screen | Hasan Hosgel
  • 58. 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") } Developing for the Big Screen | Hasan Hosgel
  • 59. 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") } Developing for the Big Screen | Hasan Hosgel
  • 60. Consider Overscan Developing for the Big Screen | Hasan Hosgel
  • 61. Avoid Layout Anti-Patterns Developing for the Big Screen | Hasan Hosgel
  • 62. Avoid Layout Anti-Patterns ● Reuse of phone or tablet layout Developing for the Big Screen | Hasan Hosgel
  • 63. Avoid Layout Anti-Patterns ● Reuse of phone or tablet layout ● Usage of ActionBar Developing for the Big Screen | Hasan Hosgel
  • 64. Avoid Layout Anti-Patterns ● Reuse of phone or tablet layout ● Usage of ActionBar ● Usage of ViewPager Developing for the Big Screen | Hasan Hosgel
  • 65. Let’s take a deeper look at the used Design Pattern Developing for the Big Image Source Screen | Hasan Hosgel https://www.flickr.com/photos/dsittig/12311006886
  • 66. Model View Constroller vs. Model View Presenter Developing for the Big Screen | Hasan Hosgel Source: http://i.imgur.com/xbeB5.png
  • 67. Model View Constroller vs. Model View Presenter Developing for the Big Screen | Hasan Hosgel Source: http://i.imgur.com/xbeB5.png
  • 68. Some Base Classes ● BrowseFragment Developing for the Big Screen | Hasan Hosgel
  • 69. Browse Fragment Developing for the Big Screen | Hasan Hosgel Source: https://github.com/googlesamples/androidtv-Leanback/
  • 70. Browse Fragment Developing for the Big Screen | Hasan Hosgel Source: https://github.com/googlesamples/androidtv-Leanback/
  • 71. Some Base Classes ● BrowseFragment ● DetailFragment Developing for the Big Screen | Hasan Hosgel
  • 72. Detail Fragment Developing for the Big Screen | Hasan Hosgel Source: https://github.com/googlesamples/androidtv-Leanback/
  • 73. Detail Fragment Developing for the Big Screen | Hasan Hosgel Source: https://github.com/googlesamples/androidtv-Leanback/
  • 74. Some Base Classes ● BrowseFragment ● DetailFragment ● SearchFragment Developing for the Big Screen | Hasan Hosgel
  • 75. Search Fragment Developing for the Big Screen | Hasan Hosgel Source: https://github.com/googlesamples/androidtv-Leanback/
  • 76. Some Base Classes ● BrowseFragment ● DetailFragment ● SearchFragment ● Recommendations (no base class) Developing for the Big Screen | Hasan Hosgel
  • 77. Recommendation Developing for the Big Screen | Hasan Hosgel Source: https://github.com/googlesamples/androidtv-Leanback/
  • 78. Testing ● Emulator ● ADT-1 ● Nexus Player Developing for the Big Screen | Hasan Hosgel
  • 79. Finished waiting for $$$ Developing for the Big Screen | Hasan Hosgel Source: http://www.flickr.com/photos/16210667@N02/9172895225
  • 80. Some days later a friend sends a message Developing for the Big Image Source Screen | Hasan Hosgel https://www.flickr.com/photos/jparise/214330120
  • 81. Chromecast Developing for the Big Image Source Screen | Hasan Hosgel http://www.google.de/intl/de/chrome/devices/chromecast/
  • 82. Chromecast Developing for the Big Image Source Screen | Hasan Hosgel http://www.google.de/intl/de/chrome/devices/chromecast/
  • 83. Starting the conversation Developing for the Big Image Source Screen | Hasan Hosgel http://pixabay.com/de/katze-hauskate-tier-augen-blick-278187/
  • 84. You can conquer a new world Developing for the Big Image Source Screen | Hasan Hosgel http://pixabay.com/de/katze-wand-loch-überraschung-alt-491730/
  • 85. Developing for Chomecast ● Registration (cost 5$) Developing for the Big Screen | Hasan Hosgel
  • 86. Developing for Chomecast ● Registration (cost 5$) " Register application and developer devices Developing for the Big Screen | Hasan Hosgel
  • 87. You can conquer a new world Developing for the Big Screen | Hasan Hosgel
  • 88. Developing for Chomecast ● Registration (cost 5$) " Register application and developer devices ● Create sender app " Android, IOs, Chrome Developing for the Big Screen | Hasan Hosgel
  • 89. Developing for Chomecast ● Registration (cost 5$) " Register application and developer devices ● Create sender app " Android, IOs, Chrome Developing for the Big Screen | Hasan Hosgel
  • 90. Needed libraries Developing for the Big Screen | Hasan Hosgel
  • 91. Needed libraries ● v7 appcompat support library Developing for the Big Screen | Hasan Hosgel
  • 92. Needed libraries ● v7 appcompat support library ● v7 mediarouter support library Developing for the Big Screen | Hasan Hosgel
  • 93. Needed libraries ● v7 appcompat support library ● v7 mediarouter support library ● google play services library Developing for the Big Screen | Hasan Hosgel
  • 94. Needed libraries ● v7 appcompat support library ● v7 mediarouter support library ● google play services library è Forces you to use also Developing for the Big Screen | Hasan Hosgel
  • 95. Needed libraries ● v7 appcompat support library ● v7 mediarouter support library ● google play services library è Forces you to use also ● v4 support library Developing for the Big Screen | Hasan Hosgel
  • 96. Developing for Chomecast ● Registration (cost 5$) " Register application and developer devices ● Create sender application " Android, IOs, Chrome ● Create receiver application " HTML Developing for the Big Screen | Hasan Hosgel
  • 97. Wait again for $$$ Developing for the Big Screen | Hasan Hosgel Source: http://www.flickr.com/photos/16210667@N02/9172895225
  • 98. Users complaining: they can’t use it on Chromecast! Developing for the Big Image Source Screen | Hasan Hosgel http://pixabay.com/de/baby-tränen-kleinkind-traurig-443393/
  • 99. After you understand the problem Developing for the Big Image Source Screen | Hasan Hosgel http://pixabay.com/de/darstellung-porträt-schreien-schrei-89189/
  • 100. Presenation API Developing for the Big Screen | Hasan Hosgel
  • 101. Presenation API ● In Android API Level 17 support for secondary screen was added Developing for the Big Screen | Hasan Hosgel
  • 102. Presenation API ● In Android API Level 17 support for secondary screen was added è Android Mirroring can display different Uis for device and what is displayed ChromeCast Developing for the Big Screen | Hasan Hosgel
  • 103. Presenation API ● In Android API Level 17 support for secondary screen was added è Android Mirroring can display different Uis for device and what is displayed ChromeCast Similar to MiraCast Developing for the Big Screen | Hasan Hosgel
  • 104. Now we can rule the world! Developing for the Big Image Source Screen | Hasan Hosgel http://www.bhmpics.com/success_kid-wallpapers.html
  • 105. Q & A Source: http://www.flickr.com/photos/21496790@N06/5065834411/ Developing for the Big Screen | Hasan Hosgel
  • 106. www.immobilienscout24.de Thanks for your Attention! İlginiz için teşekkürler! Contact: +HasanHosgel Twitter: @alosdev Github: alosdev Developing for the Big Screen - from Android TV to Chromecast https://de.slideshare.net/hosgel/dev-fest-istanbul2014developingforthebig-screenfromandroidtvtochromecast
  • 107. material ● AndroidTV " http://developer.android.com/training/tv/ " https://github.com/googlesamples/androidtv-Leanback ● ChromeCast " https://developers.google.com/cast/ " https://github.com/googlecast ● Presentation API " http://developer.android.com/reference/android/app/ Presentation.html " https://github.com/googlecast/CastPresentation-android Developing for the Big Screen | Hasan Hosgel

Editor's Notes

  1. 10% overscan 27dp left/ right 48 top/ down
  2. http://i.imgur.com/xbeB5.png
  3. http://i.imgur.com/xbeB5.png
  4. Implement SearchResultProvider
  5. Recommondations are notification with the category „Notification.CATEGORY_RECOMMENDATION “