SlideShare a Scribd company logo
1 of 25
Download to read offline
DC Droids



                       Google TV:
                        For Fun!      (and profit?)




Copyright © 2012 CommonsWare, LLC
Why TV?
    ●   Lots of Tube Time
         ●   Sets
         ●   Hours in front of a set
    ●   Lots of Smart Tubes
         ●   2010: 20% had integrated Internet functionality
               –   (no report on number with VCRs blinking “12:00”)
         ●   2014: estimated 123 million “smart TVs”

Copyright © 2012 CommonsWare, LLC
What is Google TV?
    ●   Android on the Tube
         ●   Integrated into some televisions
         ●   Integrated into some Blu-Ray players
         ●   Dedicated set-top boxes
         ●   Future: cable boxes?
    ●   Taking a Tour


Copyright © 2012 CommonsWare, LLC
What Is Different for Developers?
    ●   Usage Model
         ●   Phones: used by an individual, mostly
         ●   Tablets: might be used by a group, but mostly
             one at a time
         ●   TVs: used by individuals or collectively as a group
         ●   Net: may need “profiles” or other ways for
             different settings/content


Copyright © 2012 CommonsWare, LLC
What Is Different for Developers?
   ●   Information Density
         ●   Phones = low
              –   Small screen, but held close
         ●   Tablets = medium
              –   Larger screen, held close
         ●   TVs = low
              –   Large screen, but distant
         ●   Net: think font size, contrast, etc. to make it
             easy to read and view from the sofa
Copyright © 2012 CommonsWare, LLC
What Is Different for Developers?
    ●   Input
         ●   Televisions are not touchscreens... usually
         ●   Interact with your app via a controller
               –   Arrow keys/D-pad and dedicated buttons
               –   Mouse-style pointer emulation mode
               –   Full QWERTY common (with Tab!)
               –   Media keys common (play, pause, etc.)
               –   Option: control via your phone

Copyright © 2012 CommonsWare, LLC
What Is Different for Developers?
    ●   Input Tips
         ●   Cut out the cruft = essentials only
         ●   Group stuff by priority and provide easy arrow-
             key/tab navigation
         ●   Use hardware keys where practical




Copyright © 2012 CommonsWare, LLC
What Is Different for Developers?
    ●   An Inch Is No Longer an Inch
         ●   720p is -large, -tvdpi (~213dpi)
         ●   1080p is -xlarge, -xhdpi
         ●   Note: regardless of physical screen size!
               –   Set-top boxes do not know physical size
         ●   Net: use fluid layouts, stretchable graphics



Copyright © 2012 CommonsWare, LLC
What Is Different for Developers
    ●   Overscan: Your TV Is Smaller Than You Think
         ●   Holdover from days with CRT-style “tubes”
         ●   Visible screen area can be up to ~20% fewer
             pixels than actual rating
         ●   Net: do NOT try to truly fill the screen!
               –   Flexible widget sizing
               –   Flexible whitespace between zones
               –   Flexible whitespace on edges

Copyright © 2012 CommonsWare, LLC
What Is Different for Developers
    ●   Miscellany
         ●   1080p backgrounds = ~8MB heap space
         ●   Sound over haptics (no vibration motor)
         ●   No GPS, use “static” location provider
         ●   Internet, but not necessarily WiFi
         ●   Content provider and Uri values for channels
         ●   No NDK

Copyright © 2012 CommonsWare, LLC
Design Tips
    ●   Think Zones




Copyright © 2012 CommonsWare, LLC
Design Tips
    ●   Think Zones




Copyright © 2012 CommonsWare, LLC
Design Tips
    ●   Think Zones




Copyright © 2012 CommonsWare, LLC
Design Tips
    ●   Think Navigation with Zones




Copyright © 2012 CommonsWare, LLC
Design Tips
    ●   Think Navigation with Zones




Copyright © 2012 CommonsWare, LLC
Deployment Tips
    ●   Avoiding Google TV
         ●   <uses-feature
             android:name=“android.hardware.touchscreen”
             android:required=“true” />
    ●   Google TV-Specific
         ●   <uses-feature
             android:name=“com.google.android.tv”
             android:required=“true” />



Copyright © 2012 CommonsWare, LLC
Deployment Tips
    ●   Multiple Targets
         ●   <uses-feature
             android:name=“android.hardware.touchscreen”
             android:required=“false” />
         ●   getPackageManager()
               .hasSystemFeature(“com.google.android.tv”)




Copyright © 2012 CommonsWare, LLC
Google TV Rollout
   ●   Rolling Out Your App
        ●   Initially: Nothing
              –   Do not enable Google TV support until you have at
                  least tested it in the emulator
              –   One chance to make a first impression
        ●   Next Tier: Not Completely Stupid
              –   App is usable if not ideally suited for the form factor
        ●   Ultimate: Optimized

Copyright © 2012 CommonsWare, LLC
Google TV Rollout
    ●   Example: Video Player
         ●   Nothing: Relies on swiping
         ●   Not Completely Stupid
               –   Focus works, can navigate with D-pad
         ●   Optimized
               –   Eliminate on-screen controls for play, pause, etc.; use
                   remote instead
               –   Tip: get rid of extraneous focusable widgets

Copyright © 2012 CommonsWare, LLC
Google TV Business Models
    ●   App-Centric
         ●   TV app as premium offering
         ●   Cable provider partnerships
               –   Licensing
               –   Sponsorships
               –   Provider-supplied ads/sponsors
         ●   Show-related apps
               –   Video for those not able to get niche channel
               –   Socializing around the show, real-time
Copyright © 2012 CommonsWare, LLC
Google TV Business Models
    ●   Other Services
         ●   TV UX Expert
               –   Lots of phone UX experts, fewer tablet UX experts,
                   negligible experts for TV
         ●   TV Firmware Expert
               –   Many smaller manufacturers may want to use the
                   Google TV concepts in their set-top boxes and TVs
               –   Learn the ropes via firmware mods and kin


Copyright © 2012 CommonsWare, LLC
Emulator
    ●   Step #1: Get a Nice CPU
         ●   Intel with VT extensions (e.g., Core i7)
         ●   AMD with SVM extensions
    ●   Step #2: Get Linux
         ●   No current support for Windows, OS X
    ●   Step #3: Get KVM
         ●   Virtualization engine, akin to VirtualBox, Xen

Copyright © 2012 CommonsWare, LLC
Emulator
    ●   Step #4: Get Android SDK and Tools
         ●   Google TV add-on available from SDK Manager
         ●   Use R15 Android Developer Tools!
    ●   Step #5: Create an AVD
         ●   720p or 1080p
         ●   With or without simulated overscan



Copyright © 2012 CommonsWare, LLC
Debugging on Real Hardware
    ●   Configure Google TV Box
         ●   Only accepts debugger connections from 1 IP
    ●   adb connect <ipaddr>
         ●   Adds IP-based connection
         ●   Google TV box will show up in DDMS
         ●   Can use as if locally attached
         ●   Helpful if the TV is somewhere nearby...

Copyright © 2012 CommonsWare, LLC
Help!
    ●   https://developers.google.com/tv/
         ●   Design guidance
         ●   Sample code
    ●   StackOverflow #google-tv
         ●   Official support point!




Copyright © 2012 CommonsWare, LLC

More Related Content

What's hot

Picking software to run a business livestream
Picking software to run a business livestream Picking software to run a business livestream
Picking software to run a business livestream Guido X Jansen
 
Digital Ingredients
Digital IngredientsDigital Ingredients
Digital Ingredientsomeletla
 
A2 Media - Evaluation
A2 Media - EvaluationA2 Media - Evaluation
A2 Media - EvaluationLiam175
 
AIR Mobile Development Overview
AIR Mobile Development OverviewAIR Mobile Development Overview
AIR Mobile Development Overviewmario_vieira
 
Droidcon2013 helleberg kruemmling_androidgoesreading_inovex_telekom
Droidcon2013 helleberg kruemmling_androidgoesreading_inovex_telekomDroidcon2013 helleberg kruemmling_androidgoesreading_inovex_telekom
Droidcon2013 helleberg kruemmling_androidgoesreading_inovex_telekomDroidcon Berlin
 
Android Development...The 20,000-Foot View
Android Development...The 20,000-Foot ViewAndroid Development...The 20,000-Foot View
Android Development...The 20,000-Foot ViewCommonsWare
 

What's hot (9)

Picking software to run a business livestream
Picking software to run a business livestream Picking software to run a business livestream
Picking software to run a business livestream
 
Digital Ingredients
Digital IngredientsDigital Ingredients
Digital Ingredients
 
A2 Media - Evaluation
A2 Media - EvaluationA2 Media - Evaluation
A2 Media - Evaluation
 
AIR Mobile Development Overview
AIR Mobile Development OverviewAIR Mobile Development Overview
AIR Mobile Development Overview
 
Droidcon2013 helleberg kruemmling_androidgoesreading_inovex_telekom
Droidcon2013 helleberg kruemmling_androidgoesreading_inovex_telekomDroidcon2013 helleberg kruemmling_androidgoesreading_inovex_telekom
Droidcon2013 helleberg kruemmling_androidgoesreading_inovex_telekom
 
Android Development...The 20,000-Foot View
Android Development...The 20,000-Foot ViewAndroid Development...The 20,000-Foot View
Android Development...The 20,000-Foot View
 
Flex User Group breton
Flex User Group bretonFlex User Group breton
Flex User Group breton
 
Evaluation
EvaluationEvaluation
Evaluation
 
Creative technologies
Creative technologiesCreative technologies
Creative technologies
 

Similar to Google TV For Fun

Google TV: Thoughts From Left Field
Google TV: Thoughts From Left FieldGoogle TV: Thoughts From Left Field
Google TV: Thoughts From Left FieldCommonsWare
 
Second-Screen Support in Android 4.2
Second-Screen Support in Android 4.2Second-Screen Support in Android 4.2
Second-Screen Support in Android 4.2CommonsWare
 
The Wonderful World of Wearables
The Wonderful World of WearablesThe Wonderful World of Wearables
The Wonderful World of WearablesCommonsWare
 
Christian Kurzke; Getting Your Content on the Big Screen
Christian Kurzke; Getting Your Content on the Big ScreenChristian Kurzke; Getting Your Content on the Big Screen
Christian Kurzke; Getting Your Content on the Big ScreenDroidcon Berlin
 
Getting Android Developers for Your Wearables
Getting Android Developers for Your WearablesGetting Android Developers for Your Wearables
Getting Android Developers for Your WearablesCommonsWare
 
Android Hardware That's A Little Bit... Odd
Android Hardware That's A Little Bit... OddAndroid Hardware That's A Little Bit... Odd
Android Hardware That's A Little Bit... OddCommonsWare
 
What's New in Jelly Bean
What's New in Jelly BeanWhat's New in Jelly Bean
What's New in Jelly BeanCommonsWare
 
Scope of Android and Future Work
Scope of Android and Future WorkScope of Android and Future Work
Scope of Android and Future WorkRabiRehman1
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IOpersys inc.
 
Gradle and Your Android Wearable Projects
Gradle and Your Android Wearable ProjectsGradle and Your Android Wearable Projects
Gradle and Your Android Wearable ProjectsCommonsWare
 
Android App Development 01 : Getting Start
Android App Development 01 : Getting StartAndroid App Development 01 : Getting Start
Android App Development 01 : Getting StartAnuchit Chalothorn
 
Using the Presentation API and external screens on Android
Using the Presentation API and external screens on AndroidUsing the Presentation API and external screens on Android
Using the Presentation API and external screens on AndroidXavier Hallade
 
Migrating to Android TV
Migrating to Android TVMigrating to Android TV
Migrating to Android TVDavid Carver
 
Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Opersys inc.
 
Backwards Compatibility: Strategies and Tactics
Backwards Compatibility: Strategies and TacticsBackwards Compatibility: Strategies and Tactics
Backwards Compatibility: Strategies and TacticsCommonsWare
 
HTC Developer - 2012
HTC Developer - 2012HTC Developer - 2012
HTC Developer - 2012Bruce Jones
 
Android operating system
Android operating systemAndroid operating system
Android operating systemAyush Agarwal
 

Similar to Google TV For Fun (20)

Google TV: Thoughts From Left Field
Google TV: Thoughts From Left FieldGoogle TV: Thoughts From Left Field
Google TV: Thoughts From Left Field
 
Second-Screen Support in Android 4.2
Second-Screen Support in Android 4.2Second-Screen Support in Android 4.2
Second-Screen Support in Android 4.2
 
The Wonderful World of Wearables
The Wonderful World of WearablesThe Wonderful World of Wearables
The Wonderful World of Wearables
 
Christian Kurzke; Getting Your Content on the Big Screen
Christian Kurzke; Getting Your Content on the Big ScreenChristian Kurzke; Getting Your Content on the Big Screen
Christian Kurzke; Getting Your Content on the Big Screen
 
Getting Android Developers for Your Wearables
Getting Android Developers for Your WearablesGetting Android Developers for Your Wearables
Getting Android Developers for Your Wearables
 
Android Hardware That's A Little Bit... Odd
Android Hardware That's A Little Bit... OddAndroid Hardware That's A Little Bit... Odd
Android Hardware That's A Little Bit... Odd
 
What's New in Jelly Bean
What's New in Jelly BeanWhat's New in Jelly Bean
What's New in Jelly Bean
 
SmartTV Security
SmartTV SecuritySmartTV Security
SmartTV Security
 
Android N Features You Need to Know
Android N Features You Need to KnowAndroid N Features You Need to Know
Android N Features You Need to Know
 
Android Development Tutorial V3
Android Development Tutorial   V3Android Development Tutorial   V3
Android Development Tutorial V3
 
Scope of Android and Future Work
Scope of Android and Future WorkScope of Android and Future Work
Scope of Android and Future Work
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part I
 
Gradle and Your Android Wearable Projects
Gradle and Your Android Wearable ProjectsGradle and Your Android Wearable Projects
Gradle and Your Android Wearable Projects
 
Android App Development 01 : Getting Start
Android App Development 01 : Getting StartAndroid App Development 01 : Getting Start
Android App Development 01 : Getting Start
 
Using the Presentation API and external screens on Android
Using the Presentation API and external screens on AndroidUsing the Presentation API and external screens on Android
Using the Presentation API and external screens on Android
 
Migrating to Android TV
Migrating to Android TVMigrating to Android TV
Migrating to Android TV
 
Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013
 
Backwards Compatibility: Strategies and Tactics
Backwards Compatibility: Strategies and TacticsBackwards Compatibility: Strategies and Tactics
Backwards Compatibility: Strategies and Tactics
 
HTC Developer - 2012
HTC Developer - 2012HTC Developer - 2012
HTC Developer - 2012
 
Android operating system
Android operating systemAndroid operating system
Android operating system
 

More from CommonsWare

When Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable AppsWhen Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable AppsCommonsWare
 
The Action Bar: Front to Back
The Action Bar: Front to BackThe Action Bar: Front to Back
The Action Bar: Front to BackCommonsWare
 
Android Security: Defending Your Users
Android Security: Defending Your UsersAndroid Security: Defending Your Users
Android Security: Defending Your UsersCommonsWare
 
Mastering the Master Detail Pattern
Mastering the Master Detail PatternMastering the Master Detail Pattern
Mastering the Master Detail PatternCommonsWare
 
Not Quite As Painful Threading
Not Quite As Painful ThreadingNot Quite As Painful Threading
Not Quite As Painful ThreadingCommonsWare
 
Maps V2... And You!
Maps V2... And You!Maps V2... And You!
Maps V2... And You!CommonsWare
 
A Deep Dive Into ViewPager
A Deep Dive Into ViewPagerA Deep Dive Into ViewPager
A Deep Dive Into ViewPagerCommonsWare
 
Integrate Android Apps and Web Apps
Integrate Android Apps and Web AppsIntegrate Android Apps and Web Apps
Integrate Android Apps and Web AppsCommonsWare
 
From Android to the Mobile Web
From Android to the Mobile WebFrom Android to the Mobile Web
From Android to the Mobile WebCommonsWare
 
Securing User Data with SQLCipher
Securing User Data with SQLCipherSecuring User Data with SQLCipher
Securing User Data with SQLCipherCommonsWare
 
Beaming Data to Devices with NFC
Beaming Data to Devices with NFCBeaming Data to Devices with NFC
Beaming Data to Devices with NFCCommonsWare
 
Making Money at Mobile: 60 Business Models
Making Money at Mobile: 60 Business ModelsMaking Money at Mobile: 60 Business Models
Making Money at Mobile: 60 Business ModelsCommonsWare
 
AppsWorld Keynote
AppsWorld KeynoteAppsWorld Keynote
AppsWorld KeynoteCommonsWare
 
App Integration (Revised and Updated)
App Integration (Revised and Updated)App Integration (Revised and Updated)
App Integration (Revised and Updated)CommonsWare
 
Rich Text Editing and Beyond
Rich Text Editing and BeyondRich Text Editing and Beyond
Rich Text Editing and BeyondCommonsWare
 
App integration: Strategies and Tactics
App integration: Strategies and TacticsApp integration: Strategies and Tactics
App integration: Strategies and TacticsCommonsWare
 
If I Were Starting Now
If I Were Starting NowIf I Were Starting Now
If I Were Starting NowCommonsWare
 
Tuning Android Applications (Part Deux)
Tuning Android Applications (Part Deux)Tuning Android Applications (Part Deux)
Tuning Android Applications (Part Deux)CommonsWare
 
Tuning Android Applications (Part One)
Tuning Android Applications (Part One)Tuning Android Applications (Part One)
Tuning Android Applications (Part One)CommonsWare
 

More from CommonsWare (20)

When Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable AppsWhen Microwatts Are Precious: Battery Tips for Wearable Apps
When Microwatts Are Precious: Battery Tips for Wearable Apps
 
The Action Bar: Front to Back
The Action Bar: Front to BackThe Action Bar: Front to Back
The Action Bar: Front to Back
 
Android Security: Defending Your Users
Android Security: Defending Your UsersAndroid Security: Defending Your Users
Android Security: Defending Your Users
 
Mastering the Master Detail Pattern
Mastering the Master Detail PatternMastering the Master Detail Pattern
Mastering the Master Detail Pattern
 
Not Quite As Painful Threading
Not Quite As Painful ThreadingNot Quite As Painful Threading
Not Quite As Painful Threading
 
Maps V2... And You!
Maps V2... And You!Maps V2... And You!
Maps V2... And You!
 
A Deep Dive Into ViewPager
A Deep Dive Into ViewPagerA Deep Dive Into ViewPager
A Deep Dive Into ViewPager
 
Integrate Android Apps and Web Apps
Integrate Android Apps and Web AppsIntegrate Android Apps and Web Apps
Integrate Android Apps and Web Apps
 
From Android to the Mobile Web
From Android to the Mobile WebFrom Android to the Mobile Web
From Android to the Mobile Web
 
X Means Y
X Means YX Means Y
X Means Y
 
Securing User Data with SQLCipher
Securing User Data with SQLCipherSecuring User Data with SQLCipher
Securing User Data with SQLCipher
 
Beaming Data to Devices with NFC
Beaming Data to Devices with NFCBeaming Data to Devices with NFC
Beaming Data to Devices with NFC
 
Making Money at Mobile: 60 Business Models
Making Money at Mobile: 60 Business ModelsMaking Money at Mobile: 60 Business Models
Making Money at Mobile: 60 Business Models
 
AppsWorld Keynote
AppsWorld KeynoteAppsWorld Keynote
AppsWorld Keynote
 
App Integration (Revised and Updated)
App Integration (Revised and Updated)App Integration (Revised and Updated)
App Integration (Revised and Updated)
 
Rich Text Editing and Beyond
Rich Text Editing and BeyondRich Text Editing and Beyond
Rich Text Editing and Beyond
 
App integration: Strategies and Tactics
App integration: Strategies and TacticsApp integration: Strategies and Tactics
App integration: Strategies and Tactics
 
If I Were Starting Now
If I Were Starting NowIf I Were Starting Now
If I Were Starting Now
 
Tuning Android Applications (Part Deux)
Tuning Android Applications (Part Deux)Tuning Android Applications (Part Deux)
Tuning Android Applications (Part Deux)
 
Tuning Android Applications (Part One)
Tuning Android Applications (Part One)Tuning Android Applications (Part One)
Tuning Android Applications (Part One)
 

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

Google TV For Fun

  • 1. DC Droids Google TV: For Fun! (and profit?) Copyright © 2012 CommonsWare, LLC
  • 2. Why TV? ● Lots of Tube Time ● Sets ● Hours in front of a set ● Lots of Smart Tubes ● 2010: 20% had integrated Internet functionality – (no report on number with VCRs blinking “12:00”) ● 2014: estimated 123 million “smart TVs” Copyright © 2012 CommonsWare, LLC
  • 3. What is Google TV? ● Android on the Tube ● Integrated into some televisions ● Integrated into some Blu-Ray players ● Dedicated set-top boxes ● Future: cable boxes? ● Taking a Tour Copyright © 2012 CommonsWare, LLC
  • 4. What Is Different for Developers? ● Usage Model ● Phones: used by an individual, mostly ● Tablets: might be used by a group, but mostly one at a time ● TVs: used by individuals or collectively as a group ● Net: may need “profiles” or other ways for different settings/content Copyright © 2012 CommonsWare, LLC
  • 5. What Is Different for Developers? ● Information Density ● Phones = low – Small screen, but held close ● Tablets = medium – Larger screen, held close ● TVs = low – Large screen, but distant ● Net: think font size, contrast, etc. to make it easy to read and view from the sofa Copyright © 2012 CommonsWare, LLC
  • 6. What Is Different for Developers? ● Input ● Televisions are not touchscreens... usually ● Interact with your app via a controller – Arrow keys/D-pad and dedicated buttons – Mouse-style pointer emulation mode – Full QWERTY common (with Tab!) – Media keys common (play, pause, etc.) – Option: control via your phone Copyright © 2012 CommonsWare, LLC
  • 7. What Is Different for Developers? ● Input Tips ● Cut out the cruft = essentials only ● Group stuff by priority and provide easy arrow- key/tab navigation ● Use hardware keys where practical Copyright © 2012 CommonsWare, LLC
  • 8. What Is Different for Developers? ● An Inch Is No Longer an Inch ● 720p is -large, -tvdpi (~213dpi) ● 1080p is -xlarge, -xhdpi ● Note: regardless of physical screen size! – Set-top boxes do not know physical size ● Net: use fluid layouts, stretchable graphics Copyright © 2012 CommonsWare, LLC
  • 9. What Is Different for Developers ● Overscan: Your TV Is Smaller Than You Think ● Holdover from days with CRT-style “tubes” ● Visible screen area can be up to ~20% fewer pixels than actual rating ● Net: do NOT try to truly fill the screen! – Flexible widget sizing – Flexible whitespace between zones – Flexible whitespace on edges Copyright © 2012 CommonsWare, LLC
  • 10. What Is Different for Developers ● Miscellany ● 1080p backgrounds = ~8MB heap space ● Sound over haptics (no vibration motor) ● No GPS, use “static” location provider ● Internet, but not necessarily WiFi ● Content provider and Uri values for channels ● No NDK Copyright © 2012 CommonsWare, LLC
  • 11. Design Tips ● Think Zones Copyright © 2012 CommonsWare, LLC
  • 12. Design Tips ● Think Zones Copyright © 2012 CommonsWare, LLC
  • 13. Design Tips ● Think Zones Copyright © 2012 CommonsWare, LLC
  • 14. Design Tips ● Think Navigation with Zones Copyright © 2012 CommonsWare, LLC
  • 15. Design Tips ● Think Navigation with Zones Copyright © 2012 CommonsWare, LLC
  • 16. Deployment Tips ● Avoiding Google TV ● <uses-feature android:name=“android.hardware.touchscreen” android:required=“true” /> ● Google TV-Specific ● <uses-feature android:name=“com.google.android.tv” android:required=“true” /> Copyright © 2012 CommonsWare, LLC
  • 17. Deployment Tips ● Multiple Targets ● <uses-feature android:name=“android.hardware.touchscreen” android:required=“false” /> ● getPackageManager() .hasSystemFeature(“com.google.android.tv”) Copyright © 2012 CommonsWare, LLC
  • 18. Google TV Rollout ● Rolling Out Your App ● Initially: Nothing – Do not enable Google TV support until you have at least tested it in the emulator – One chance to make a first impression ● Next Tier: Not Completely Stupid – App is usable if not ideally suited for the form factor ● Ultimate: Optimized Copyright © 2012 CommonsWare, LLC
  • 19. Google TV Rollout ● Example: Video Player ● Nothing: Relies on swiping ● Not Completely Stupid – Focus works, can navigate with D-pad ● Optimized – Eliminate on-screen controls for play, pause, etc.; use remote instead – Tip: get rid of extraneous focusable widgets Copyright © 2012 CommonsWare, LLC
  • 20. Google TV Business Models ● App-Centric ● TV app as premium offering ● Cable provider partnerships – Licensing – Sponsorships – Provider-supplied ads/sponsors ● Show-related apps – Video for those not able to get niche channel – Socializing around the show, real-time Copyright © 2012 CommonsWare, LLC
  • 21. Google TV Business Models ● Other Services ● TV UX Expert – Lots of phone UX experts, fewer tablet UX experts, negligible experts for TV ● TV Firmware Expert – Many smaller manufacturers may want to use the Google TV concepts in their set-top boxes and TVs – Learn the ropes via firmware mods and kin Copyright © 2012 CommonsWare, LLC
  • 22. Emulator ● Step #1: Get a Nice CPU ● Intel with VT extensions (e.g., Core i7) ● AMD with SVM extensions ● Step #2: Get Linux ● No current support for Windows, OS X ● Step #3: Get KVM ● Virtualization engine, akin to VirtualBox, Xen Copyright © 2012 CommonsWare, LLC
  • 23. Emulator ● Step #4: Get Android SDK and Tools ● Google TV add-on available from SDK Manager ● Use R15 Android Developer Tools! ● Step #5: Create an AVD ● 720p or 1080p ● With or without simulated overscan Copyright © 2012 CommonsWare, LLC
  • 24. Debugging on Real Hardware ● Configure Google TV Box ● Only accepts debugger connections from 1 IP ● adb connect <ipaddr> ● Adds IP-based connection ● Google TV box will show up in DDMS ● Can use as if locally attached ● Helpful if the TV is somewhere nearby... Copyright © 2012 CommonsWare, LLC
  • 25. Help! ● https://developers.google.com/tv/ ● Design guidance ● Sample code ● StackOverflow #google-tv ● Official support point! Copyright © 2012 CommonsWare, LLC