SlideShare a Scribd company logo
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 Technology
Dave Morton
 
Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013
Hasan 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 Fraud
Lawrence Friedman
 
MPPL Chapter 7
MPPL Chapter 7MPPL Chapter 7
MPPL Chapter 7
beiharira
 
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
 
Inheritance in java
Inheritance in javaInheritance 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
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 developer
Ivan 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 Drupal
Four Kitchens
 
Android training day 3
Android training day 3Android training day 3
Android training day 3
Vivek Bhusal
 
Presentation - Android App Development - Mr. Samrakchan
Presentation - Android App Development - Mr. SamrakchanPresentation - Android App Development - Mr. Samrakchan
Presentation - Android App Development - Mr. Samrakchan
MobileNepal
 
Android Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareAndroid Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice Nightmare
Hasan Hosgel
 
Whitepaper - Native App or HTML5
Whitepaper - Native App or HTML5Whitepaper - Native App or HTML5
Whitepaper - Native App or HTML5
Dan 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 Coding
Jack 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 '17
Abdelrahman 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 Design
Valtech UK
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
psophy
 
Designing A Great User Experience
Designing A Great User ExperienceDesigning A Great User Experience
Designing A Great User Experience
Steve 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 Website
Jj Jurgens
 
Gup web mobilegis
Gup web mobilegisGup web mobilegis
Gup web mobilegis
GeCo in the Rockies
 
Droidcon 2013 multidevice nightmare
Droidcon 2013 multidevice nightmareDroidcon 2013 multidevice nightmare
Droidcon 2013 multidevice nightmare
Droidcon Berlin
 
Native Android Development Practices
Native Android Development PracticesNative Android Development Practices
Native Android Development Practices
Roy Clarkson
 
Droidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareDroidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice Nightmare
Hasan Hosgel
 
Making money with android applications
Making money with android applicationsMaking money with android applications
Making money with android applications
sonia1sh
 
Invading the home screen
Invading the home screenInvading the home screen
Invading the home screen
Matteo Bonifazi
 
Delivering Responsive Design at Scale
Delivering Responsive Design at ScaleDelivering Responsive Design at Scale
Delivering Responsive Design at Scale
Cantina
 

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 Devices
Hasan Hosgel
 
Android bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & AdapterAndroid bootcamp 2013 Lists & Adapter
Android bootcamp 2013 Lists & Adapter
Hasan 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 meetup
Hasan Hosgel
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
Hasan Hosgel
 
Coexisting of Android & Robots
Coexisting of Android & RobotsCoexisting of Android & Robots
Coexisting of Android & Robots
Hasan Hosgel
 
Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24
Hasan 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

Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 

Recently uploaded (20)

Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 

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 “