SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Developers
Intro to Google TV
Targeting the Big Screen

Matt Gaunt
Developer Advocate
What is Google TV?
The Open Platform




                    4
It’s Android   5
Big




      7


      6
Development Options
Build Apps: Google TV Users




                              12 7
Sony’s Internet streaming set-top
box is already available in the US,
UK, Germany, Netherlands,
France and Brazil with plans to
launch in Canada and Mexico
later this year.




                                      8
New Google TV Devices
- ARM processors
- More on the way...




Sony                    Vizio   LG   9
10
Opportunity
Why should I care?
“ In the US, homes have an average of
2.5 people and 2.93 TV sets
(and rising!) ”



 Television Audience Report, 2009: The Nielsen Company
“ In the US, people “watch” and average
of ~5 hours of TV per day ”



 Three Screen Report, Q1’10: The Nielsen Company
Why Develop for TV?

- 22% of US broadband households already own an HDTV with
  integrated TV apps
 Source: In-Stat, “Q2’11 US Digital Entertainment Database,” July 26, 2011




- 60% of connected-TV households will use a TV app at least once
  per week
 Source: In-Stat, “Q2’11 US Digital Entertainment Database,” July 26, 2011




- By 2015, 500 million web enabled TV’s
 Source: Crave Asia, July 8, 2011




                                                                             14
UI for the Big Screen
Big, but small
                     Big, but small
                 •    Traditionally designed consumption not interaction
                 •    Far away = lower information density

                 •    Ironically, not so good for reading a lot of text

                 •    Big Sound: Great for video, and listening to music

                 •    Different than phones: personal, location, size, touch

                 •    Not just a big Tablet => more like a PHONE




                                                    Big, but small

                                                      Traditionally designed consumption not

                                                      Far away = lower information density

                                                      Ironically, not so good for reading a lot of

                                                      Big Sound: Great for video, and listening

                                                      Different than phones: personal, locatiot




                                                                                                     16
Information Density

   Information on screen


                           Big




                                 7




                                     17
Social




Shared Experience
 - Entertainment > Work
 - Games, learning, exploring, music, shared experiences
 - Privacy considerations
 - How can you take advantage of this social setting?

                                                           18
D-Pad


        D-Pad Tips

        - “Lean back”
        - No-look navigation
        - Highlight and Select




                          19
Cursor


         Cursor Tips

         - Cursor != Touch
         - Accelerate nav
         - Low-twitch
         - BIG hit targets




                             20
Selection & Focus




                    21
Action Bar . . . ?




                     22
Beware: D-Pad Interaction Traps




                                  23
Horizontal Zone Pattern




                          24
Android Tips
Left Nav Bar




     http://code.google.com/p/googletv-android-samples/
                                                          26
Left Nav Bar




     http://code.google.com/p/googletv-android-samples/
                                                          27
Selection and Focus
- Show selection & focus (state list)

                                        XML
<selector>
  <item
    android:drawable=”…”
    android:state_focused=“false”
    android:state_selected=“true” />
  <item
    android:drawable=”…”
    android:state_focused=“true”
    android:state_selected=“false” />
  <item
    android:drawable=”…”
    android:state_focused=“true”
    android:state_selected=“true” />
</selector>




                                              28
Focus (cont.)
- Finer control of focus

                           XML
android:nextFocusDown
android:nextFocusLeft
android:nextFocusRight
android:nextFocusUp
android:nextFocusForward




                                 29
Size, Resolutions & Densities




                                30
Am I on TV?
Don’t forget the -television specifier

                                                       XML: values/bools.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="is_television">false</bool>
</resources>



                                              XML: values-television/bools.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="is_television">true</bool>
</resources>




                                                                                 31
Brief note on the SDK
The Add-On...




                33
ADB + GTV




   Dev Box IP   GTV IP   adb connect




                                       34
ADB + GTV - Debugger IP Addr. = Your IP Addr.

   Debugger IP            GTV IP            adb connect




  Settings > Application > Development > Debugger IP Address


                                                               35
ADB + GTV - Find GTV’s IP Address

    Dev Box IP            GTV IP             adb connect




           Settings > Network > Status > IP Address
                                                           36
ADB + GTV - Connect the dots

    Dev Box IP            GTV IP            adb connect




                 adb connect <GTV IP Address>




                                                          37
Chrome UI Tips
Embrace Focus




Keyboard navigation plugin
Mike Hostetler


http://mike-hostetler.com/jquery-keyboard-navigation-plugin

                                                              39
Make the Focus
                                       JS
window.onload = function() {
  document.onkeydown = function(e) {
    if (!e) e=window.event;
    switch(e.keyCode) {
      case 37:
        alert("Left arrow");
        break;
      case 38:
        alert("Up arrow");
        break;
      case 39:
        alert("Right arrow");
        break;
      case 40:
        alert("Down arrow");
        break;
      case 13:
        alert("Enter/select");
        break;
    }
  }
}


                                            40
Auto-Zoom
- Google TV has an auto-zoom algorithm to scale web pages so they display properly on TV
  (i.e. account for overscan)


- If you experience problems, you have two options:
    - Switch it off

                                                                                     HTML
<meta name=”gtv-autozoom” content=”off” />




                                                                                            41
Auto-Zoom Cont.
- Adjust the zoom
                                       JS
$(document).ready(function() {
  var w = screen.width;
  var h = screen.height;
  var bw = $(window).width();
  var bh = $(window).height();

  var wRatio = bw/w;
  var hRatio = bh/h;
  var ratio = (wRatio + hRatio) / 2;

  $('body').css('zoom', ratio);
})




- Dare I say responsive design...


                                            42
43
Google Analytics
- Use it & learn what your users are doing
- Track usage of every section in your app
- Track settings

                                             Java
// Start tracking
tracker.start("UA-MY_CODE-XX", this);

// Register a page view
tracker.trackPageView("/map_view");

// Send views to server
tracker.dispatch();




                                                    44
<Thank You!>
http://developers.google.com/tv/




mattgaunt@google.com
+matt gaunt
@gauntface
Developers

Mais conteúdo relacionado

Semelhante a OWF12/PAUG Conf Days Google tv part 1 (introduction) matt gaunt, advocate at google

Intro to Google TV
Intro to Google TVIntro to Google TV
Intro to Google TVGauntFace
 
Android design lecture #1
Android design   lecture #1Android design   lecture #1
Android design lecture #1Vitali Pekelis
 
Designing Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented WorldDesigning Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented WorldWorklight
 
Going mobile natebeck
Going mobile natebeckGoing mobile natebeck
Going mobile natebeckNate Beck
 
Mobile apps on the big screen
Mobile apps on the big screenMobile apps on the big screen
Mobile apps on the big screenHeinrich Seeger
 
Going Mobile by Nate Beck
Going Mobile by Nate BeckGoing Mobile by Nate Beck
Going Mobile by Nate Beckmochimedia
 
Google IO 2014 overview
Google IO 2014 overviewGoogle IO 2014 overview
Google IO 2014 overviewBin Yang
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Sura Gonzalez
 
Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009Tom Deryckere
 
AIR Mobile Development Overview
AIR Mobile Development OverviewAIR Mobile Development Overview
AIR Mobile Development Overviewmario_vieira
 
Getting your app on Android TV
Getting your app on Android TVGetting your app on Android TV
Getting your app on Android TVXavier Hallade
 
Porting Android apps to the Series 40 platform
Porting Android apps to the Series 40 platformPorting Android apps to the Series 40 platform
Porting Android apps to the Series 40 platformMicrosoft Mobile Developer
 
Microsoft mobile business intelligence SQLPass
Microsoft mobile business intelligence SQLPassMicrosoft mobile business intelligence SQLPass
Microsoft mobile business intelligence SQLPassJen Stirrup
 
HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureMotorola Mobility - MOTODEV
 
Going Mobile - Flash Gaming Summit 2012
Going Mobile - Flash Gaming Summit 2012Going Mobile - Flash Gaming Summit 2012
Going Mobile - Flash Gaming Summit 2012Nate Beck
 
Digital Fun for the Digital Home
Digital Fun for the Digital HomeDigital Fun for the Digital Home
Digital Fun for the Digital HomeRenaun Erickson
 
Consumer electronic show (ces) 2015 report - Wearables, robots, smart home, a...
Consumer electronic show (ces) 2015 report - Wearables, robots, smart home, a...Consumer electronic show (ces) 2015 report - Wearables, robots, smart home, a...
Consumer electronic show (ces) 2015 report - Wearables, robots, smart home, a...Innovation is Everywhere
 
Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Maksim Golivkin
 
Devday 2017 Hands On Presentation
Devday 2017 Hands On PresentationDevday 2017 Hands On Presentation
Devday 2017 Hands On PresentationTom Luczak
 

Semelhante a OWF12/PAUG Conf Days Google tv part 1 (introduction) matt gaunt, advocate at google (20)

Intro to Google TV
Intro to Google TVIntro to Google TV
Intro to Google TV
 
Android design lecture #1
Android design   lecture #1Android design   lecture #1
Android design lecture #1
 
Designing Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented WorldDesigning Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented World
 
Going mobile natebeck
Going mobile natebeckGoing mobile natebeck
Going mobile natebeck
 
Mobile apps on the big screen
Mobile apps on the big screenMobile apps on the big screen
Mobile apps on the big screen
 
Going Mobile by Nate Beck
Going Mobile by Nate BeckGoing Mobile by Nate Beck
Going Mobile by Nate Beck
 
Google IO 2014 overview
Google IO 2014 overviewGoogle IO 2014 overview
Google IO 2014 overview
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
 
React Native on Android TV
React Native on Android TVReact Native on Android TV
React Native on Android TV
 
Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009
 
AIR Mobile Development Overview
AIR Mobile Development OverviewAIR Mobile Development Overview
AIR Mobile Development Overview
 
Getting your app on Android TV
Getting your app on Android TVGetting your app on Android TV
Getting your app on Android TV
 
Porting Android apps to the Series 40 platform
Porting Android apps to the Series 40 platformPorting Android apps to the Series 40 platform
Porting Android apps to the Series 40 platform
 
Microsoft mobile business intelligence SQLPass
Microsoft mobile business intelligence SQLPassMicrosoft mobile business intelligence SQLPass
Microsoft mobile business intelligence SQLPass
 
HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the Future
 
Going Mobile - Flash Gaming Summit 2012
Going Mobile - Flash Gaming Summit 2012Going Mobile - Flash Gaming Summit 2012
Going Mobile - Flash Gaming Summit 2012
 
Digital Fun for the Digital Home
Digital Fun for the Digital HomeDigital Fun for the Digital Home
Digital Fun for the Digital Home
 
Consumer electronic show (ces) 2015 report - Wearables, robots, smart home, a...
Consumer electronic show (ces) 2015 report - Wearables, robots, smart home, a...Consumer electronic show (ces) 2015 report - Wearables, robots, smart home, a...
Consumer electronic show (ces) 2015 report - Wearables, robots, smart home, a...
 
Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids.
 
Devday 2017 Hands On Presentation
Devday 2017 Hands On PresentationDevday 2017 Hands On Presentation
Devday 2017 Hands On Presentation
 

Mais de Paris Open Source Summit

#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...
#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...
#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...Paris Open Source Summit
 
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...Paris Open Source Summit
 
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...Paris Open Source Summit
 
#OSSPARIS19 : The evolving (IoT) security landscape - Gianluca Varisco, Arduino
#OSSPARIS19 : The evolving (IoT) security landscape - Gianluca Varisco, Arduino#OSSPARIS19 : The evolving (IoT) security landscape - Gianluca Varisco, Arduino
#OSSPARIS19 : The evolving (IoT) security landscape - Gianluca Varisco, ArduinoParis Open Source Summit
 
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...Paris Open Source Summit
 
#OSSPARIS19 : Detecter des anomalies de séries temporelles à la volée avec Wa...
#OSSPARIS19 : Detecter des anomalies de séries temporelles à la volée avec Wa...#OSSPARIS19 : Detecter des anomalies de séries temporelles à la volée avec Wa...
#OSSPARIS19 : Detecter des anomalies de séries temporelles à la volée avec Wa...Paris Open Source Summit
 
#OSSPARIS19 : Supervision d'objets connectés industriels - Eric DOANE, Zabbix
#OSSPARIS19 : Supervision d'objets connectés industriels - Eric DOANE, Zabbix#OSSPARIS19 : Supervision d'objets connectés industriels - Eric DOANE, Zabbix
#OSSPARIS19 : Supervision d'objets connectés industriels - Eric DOANE, ZabbixParis Open Source Summit
 
#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria
#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria
#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, InriaParis Open Source Summit
 
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...Paris Open Source Summit
 
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches ...
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches  ...#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches  ...
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches ...Paris Open Source Summit
 
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...Paris Open Source Summit
 
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...Paris Open Source Summit
 
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...Paris Open Source Summit
 
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...Paris Open Source Summit
 
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...Paris Open Source Summit
 
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...Paris Open Source Summit
 
#OSSPARIS19 - Table ronde : souveraineté des données
#OSSPARIS19 - Table ronde : souveraineté des données #OSSPARIS19 - Table ronde : souveraineté des données
#OSSPARIS19 - Table ronde : souveraineté des données Paris Open Source Summit
 
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...Paris Open Source Summit
 
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...Paris Open Source Summit
 
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...Paris Open Source Summit
 

Mais de Paris Open Source Summit (20)

#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...
#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...
#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...
 
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
 
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
 
#OSSPARIS19 : The evolving (IoT) security landscape - Gianluca Varisco, Arduino
#OSSPARIS19 : The evolving (IoT) security landscape - Gianluca Varisco, Arduino#OSSPARIS19 : The evolving (IoT) security landscape - Gianluca Varisco, Arduino
#OSSPARIS19 : The evolving (IoT) security landscape - Gianluca Varisco, Arduino
 
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
 
#OSSPARIS19 : Detecter des anomalies de séries temporelles à la volée avec Wa...
#OSSPARIS19 : Detecter des anomalies de séries temporelles à la volée avec Wa...#OSSPARIS19 : Detecter des anomalies de séries temporelles à la volée avec Wa...
#OSSPARIS19 : Detecter des anomalies de séries temporelles à la volée avec Wa...
 
#OSSPARIS19 : Supervision d'objets connectés industriels - Eric DOANE, Zabbix
#OSSPARIS19 : Supervision d'objets connectés industriels - Eric DOANE, Zabbix#OSSPARIS19 : Supervision d'objets connectés industriels - Eric DOANE, Zabbix
#OSSPARIS19 : Supervision d'objets connectés industriels - Eric DOANE, Zabbix
 
#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria
#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria
#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria
 
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...
 
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches ...
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches  ...#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches  ...
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches ...
 
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...
 
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...
 
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
 
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...
 
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...
 
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...
 
#OSSPARIS19 - Table ronde : souveraineté des données
#OSSPARIS19 - Table ronde : souveraineté des données #OSSPARIS19 - Table ronde : souveraineté des données
#OSSPARIS19 - Table ronde : souveraineté des données
 
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...
 
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...
 
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...
 

OWF12/PAUG Conf Days Google tv part 1 (introduction) matt gaunt, advocate at google

  • 2. Intro to Google TV Targeting the Big Screen Matt Gaunt Developer Advocate
  • 6. Big 7 6
  • 7. Development Options Build Apps: Google TV Users 12 7
  • 8. Sony’s Internet streaming set-top box is already available in the US, UK, Germany, Netherlands, France and Brazil with plans to launch in Canada and Mexico later this year. 8
  • 9. New Google TV Devices - ARM processors - More on the way... Sony Vizio LG 9
  • 10. 10
  • 12. “ In the US, homes have an average of 2.5 people and 2.93 TV sets (and rising!) ” Television Audience Report, 2009: The Nielsen Company
  • 13. “ In the US, people “watch” and average of ~5 hours of TV per day ” Three Screen Report, Q1’10: The Nielsen Company
  • 14. Why Develop for TV? - 22% of US broadband households already own an HDTV with integrated TV apps Source: In-Stat, “Q2’11 US Digital Entertainment Database,” July 26, 2011 - 60% of connected-TV households will use a TV app at least once per week Source: In-Stat, “Q2’11 US Digital Entertainment Database,” July 26, 2011 - By 2015, 500 million web enabled TV’s Source: Crave Asia, July 8, 2011 14
  • 15. UI for the Big Screen
  • 16. Big, but small Big, but small • Traditionally designed consumption not interaction • Far away = lower information density • Ironically, not so good for reading a lot of text • Big Sound: Great for video, and listening to music • Different than phones: personal, location, size, touch • Not just a big Tablet => more like a PHONE Big, but small Traditionally designed consumption not Far away = lower information density Ironically, not so good for reading a lot of Big Sound: Great for video, and listening Different than phones: personal, locatiot 16
  • 17. Information Density Information on screen Big 7 17
  • 18. Social Shared Experience - Entertainment > Work - Games, learning, exploring, music, shared experiences - Privacy considerations - How can you take advantage of this social setting? 18
  • 19. D-Pad D-Pad Tips - “Lean back” - No-look navigation - Highlight and Select 19
  • 20. Cursor Cursor Tips - Cursor != Touch - Accelerate nav - Low-twitch - BIG hit targets 20
  • 22. Action Bar . . . ? 22
  • 26. Left Nav Bar http://code.google.com/p/googletv-android-samples/ 26
  • 27. Left Nav Bar http://code.google.com/p/googletv-android-samples/ 27
  • 28. Selection and Focus - Show selection & focus (state list) XML <selector> <item android:drawable=”…” android:state_focused=“false” android:state_selected=“true” /> <item android:drawable=”…” android:state_focused=“true” android:state_selected=“false” /> <item android:drawable=”…” android:state_focused=“true” android:state_selected=“true” /> </selector> 28
  • 29. Focus (cont.) - Finer control of focus XML android:nextFocusDown android:nextFocusLeft android:nextFocusRight android:nextFocusUp android:nextFocusForward 29
  • 30. Size, Resolutions & Densities 30
  • 31. Am I on TV? Don’t forget the -television specifier XML: values/bools.xml <?xml version="1.0" encoding="utf-8"?> <resources> <bool name="is_television">false</bool> </resources> XML: values-television/bools.xml <?xml version="1.0" encoding="utf-8"?> <resources> <bool name="is_television">true</bool> </resources> 31
  • 32. Brief note on the SDK
  • 34. ADB + GTV Dev Box IP GTV IP adb connect 34
  • 35. ADB + GTV - Debugger IP Addr. = Your IP Addr. Debugger IP GTV IP adb connect Settings > Application > Development > Debugger IP Address 35
  • 36. ADB + GTV - Find GTV’s IP Address Dev Box IP GTV IP adb connect Settings > Network > Status > IP Address 36
  • 37. ADB + GTV - Connect the dots Dev Box IP GTV IP adb connect adb connect <GTV IP Address> 37
  • 39. Embrace Focus Keyboard navigation plugin Mike Hostetler http://mike-hostetler.com/jquery-keyboard-navigation-plugin 39
  • 40. Make the Focus JS window.onload = function() { document.onkeydown = function(e) { if (!e) e=window.event; switch(e.keyCode) { case 37: alert("Left arrow"); break; case 38: alert("Up arrow"); break; case 39: alert("Right arrow"); break; case 40: alert("Down arrow"); break; case 13: alert("Enter/select"); break; } } } 40
  • 41. Auto-Zoom - Google TV has an auto-zoom algorithm to scale web pages so they display properly on TV (i.e. account for overscan) - If you experience problems, you have two options: - Switch it off HTML <meta name=”gtv-autozoom” content=”off” /> 41
  • 42. Auto-Zoom Cont. - Adjust the zoom JS $(document).ready(function() { var w = screen.width; var h = screen.height; var bw = $(window).width(); var bh = $(window).height(); var wRatio = bw/w; var hRatio = bh/h; var ratio = (wRatio + hRatio) / 2; $('body').css('zoom', ratio); }) - Dare I say responsive design... 42
  • 43. 43
  • 44. Google Analytics - Use it & learn what your users are doing - Track usage of every section in your app - Track settings Java // Start tracking tracker.start("UA-MY_CODE-XX", this); // Register a page view tracker.trackPageView("/map_view"); // Send views to server tracker.dispatch(); 44