Pular para o conteúdo principal

Google TV: Unboxing e Hello World

Recentemente recebemos um "presente" do Google Brasil, um dispositivo Google TV, modelo Sony NSZ-GT1, e coube a mim a honra de receber esse gadget e fazer o unboxing e um hello world para começar a explorar mais essa aposta do Google !

Conhecendo o Google TV

Em maio de 2010, durante o Google I/O, a empresa anunciou a criação em conjunto com a Intel, Sony e Logitech a criação de uma plataforma de "Smart TV". Coube ao Google integrar a TV com o Android e também uma versão baseada em Linux do navegador Chrome. Porém, devido a uma série de fatores, como por exemplo a escassez de conteúdo e a ausência de aplicativos, o Google TV teve seu início competitivo um pouco abalado, inclusive alguns analistas na época diziam que o dispositivo era muito "beta".

Pois bem, o Google percebeu que a plataforma não ia muito bem, mas não deixou de apostar na idéia, e durante o Google I/O desse ano eles apresentaram o Google TV 2.0 ! O dispositivo agora recebia um update de firmware para o Android 3.1 (irá receber também o update do ICS) e também passaria a ter acesso ao Android Market, ou seja, agora você pode instalar aplicativos na "sua TV".

A integração com o YouTube foi melhorada, e algumas aplicações específicas foram lançadas, como o Twitter, Pandora e Netflix. Além disso, o Google expandiu a parceria com alguns canais e cada vez mais opções vão aparecendo. Você também pode comprar conteúdo online, diretamente na Amazon de forma bem simples.

Lá fora, esse aparelho da Sony custa US$ 399.

E no Brasil ?

O Google TV ainda não é oficialmente vendido no Brasil, mas você consegue encontrar alguns para vender no Mercado Livre e similares, além é claro, de poder trazer o aparelho quando fizer uma viagem ao exterior. Mas oficialmente, você não vai conseguir acessar algumas coisas que possuem restrição de localização. O Google diz que vai expandir para outros países, inclusive o Brasil, mas não há data oficial ainda.

O pessoal da Revista Info fez uns testes e estão disponíveis online: "Na mão: Google TV põe a web na sala"

Unboxing

Não preciso nem dizer que, como um bom nerd, fiz questão de tirar fotos passo a passo da abertura da caixa do Google TV né? ;-)
O que posso dizer é que se preocuparam em fazer uma embalagem simples, prática e bonita. O device em si, lembra um console de video game, com uma entrada frontal para Blu-ray. Na parte traseira estão todos os conectores, e o detalhe é que para saída de video as opções são apenas HDMI e óptica.








Programando para o Google TV

Como qualquer programador Android que se preze, o meu primeiro passo foi acessar o site Android Developers e cliar no link referente ao Google TV, que me direcionou para o site específico da tecnologia. Nesse site você pode escolher de que forma quer produzir conteúdo, e nosso caso, vamos de "Android Applications" ! =)

Obs.: Nesse ponto, se você não conhece a plataforma Android e nunca fez nem um Hello World, o ideal é que busque algo mais básico em Android primeiro para depois partir para alguma experiência com a TV.

O que temos a seguir é um "Developer Guide" com diversas seções que tem como objetivo guiar o desenvolvedor na criação de uma aplicação. Você pode navegar a vontade e ir descobrindo vários detalhes e dicas para o desenvolvimento das aplicações, mas algumas valem mais atenção.

Funcionalidades específicas para o Google TV
  • Aplicação Live TV: Sinal da sua TV sendo transmitido em uma aplicação.
  • Content provider para a lista de canais: Você consegue ter acesso a lista de canais que estão com o sinal disponível.
  • Google TV add-on: Um pacote para você adicionar ao seu SDK para lhe ajudar no desenvolvimento e teste de aplicações, contém o emulador da plataforma.
E o que não funciona no Google TV

Bom, lembrando que se trata de um dispositivo que vai em uma TV, logo, não espere encontrar algo como o giroscópio por exemplo. Para uma lista completa do que é e do que não é suportado, veja a seção Feature Support in Google TV.

Emulando o Google TV

Aqui vai uma má notícia para muitos programadores, o emulador está disponível apenas para máquinas com Linux e processador Intel, com KVM. Para mais detalhes sobre como emular e limitações, veja na seção Emulator do developer guide.

Obs.: É claro que isso não chega ser algo impeditivo, você pode criar um AVD que tenha as mesmas configurações de resolução da TV e como target o Android 3.1. Não é a mesma coisa, mas já adianta bastante! ;-)

Aplicações específicas e port de aplicativos já existentes

Como disse antes, algumas coisas não são suportadas pelo Google TV e outras são específicas. Mas, como o Android é uma plataforma que se propõe a rodar em qualquer dispositivo que a implemente, você deve tomar alguns cuidados no AndroidManifest.xml se quiser garantir que sua aplicação funcione no Google TV também, ou que ela seja específica para essa plataforma.

Para que sua aplicação esteja disponível APENAS para TV, você deve colocar no AndroidManifest.xml:

<uses-feature android:name="com.google.tv" android:required="true" />

Se você fez uma aplicativo, mas quer que ele rode nos celulares, tablets e também na TV você deve informar que sua aplicação não requer touchscreen (óvbio, né?):

<uses-feature android:name="android.hardware.touchscreen" android:required="false" />

Para saber melhor o que colocar e o que não colocar no AndroidManifest.xml, dê uma lida na seção AndroidManifest.

Criando uma aplicação

Mesmo não tendo o add-on específico da plataforma, isso não é um problema. Basta criar um projeto como target o Android 3.1 e você poderá subir esse projeto para o seu Google TV. Depois do projeto criado, coloque uma imagem, escreva um texto, coloque menu, enfim, faça uma pequena aplicação para que não seja só um puro hello world.

Agora é necessário se conectar ao dispositivo para que possamos testar nossa aplicação. Mas, nem pense em conectar seu computador por USB no Google TV, afinal, seria estranho você programar do lado do rack da sala né ? Você irá acessar o dispositivo pela rede wi-fi, então, basta que você e o Google TV estejam na mesma rede.

O primeiro passo então é habilitar o "Remote debugging":
  • Na home screen, clique em "All Apps" para visualizar todas aplicações, e então clique no ícone da aplicação Settings.
  • Nos settings, escolha Applications e depois Development.
  • E então habilite o Remote debugging.
  • Depois clique em Debugger IP address e preencha com o IP da sua máquina
Depois você já pode se conectar ao seu dispositivo, para isso:
  • Primeiro descubra o IP do seu Google TV. Para isso vá em All Apps --> Settings e então escolha Networking e em seguida Status. Na parte IP address você encontra o IP do seu dispositivo.
  • Agora, vá para a linha de comando e acesse o diretório platform-tools do seu SDK, e lá execute o comando: adb connect
  • Para estar se tudo está ok, basta digitar o comando: adb devices (isso deve listar algum device com o IP que você informou).
Agora que o ADB já está conectado no seu dispositivo, basta executar o seu projeto e ele irá aparecer na sua TV! Nesse momento, todas as ferramentas que você já está acostumado a usar na perspectiva DDMS estarão disponíveis para você também! Enjoy !! =)

Abaixo segue a foto que tirei do hello world rodando. E quem quiser baixar o código do exemplo, que é extremamente simples, basta seguir o link: download do GTV Hello World !


Desculpem a foto escura, mas estava sem camêra digital e tirei a foto com meu celular, sem flash.

Mais informações

Por enquanto é isso! Gostou? Quer programar para o Google TV também? Aproveite e se inscreva na Academia do Android, onde temos um módulo só sobre esse incrível dispositivo. E mesmo que você já domine Android, mas quer expandir seus conhecimentos, também pode se matricular apenas no módulo "Desenvolvimento de aplicações para Google TV".

Além disso, vou postando mais coisas por aqui conforme a gente for criando!

Abraços
Neto

Comentários

Daniel disse…
Legal o post Neto. Parece muito interessante mesmo esse dispositivo. Vamos aguardar como será a evolução do Android agora para tv também. Abraço!
Pardal disse…
Tem alguma previsão da chegada ao Brasil?
Yara Senger disse…
Excelente post Neto!
Eu adoro está empolgação com as coisas, com a tecnologia, com a vida vivida dia a dia.

Postagens mais visitadas deste blog

10 reasons why we love JSF

1. One-slide technology: it's so simple that I can explain basic JSF with one slide. 2. Easy to extend: components, listeners, render kit, Events, Controller, etc. 3. Real-world adoption: JBoss, Exadel, Oracle, IBM, ... 4. Architecture model: you can choose between more than 100 different architecture. 5. Open-mind community: using JSF you are going to meet very interesting people. 6. We are using JSF the last 5 years and we found very good market for JSF in Brazil 7. Progress: look to JSf 1.1 to JSF 1.2, JSF 1.2 to JSF 2.0. People are working really hard! 8. Many professionals now available 9. It's a standard. It's JCP. Before complain, report and help! 10. Ed Burns, spec leader, is an old Globalcode community friend! EXTRA: My wife is specialist in JSF. She's my F1 for JSF :) Nice job JSF community! -Vinicius Senger

Hackeando o Prezi com Robot, Socket e Android

O Prezi é uma ferramenta online para construção de apresentação multimídia semelhante ao famoso Power Point, porém, através de templates prontos e animações bem trabalhadas, o Prezi consegue dar uma dinâmica e uma qualidade visual muito maior. Mas mesmo com toda esta propaganda inicial me sentia desconfortável com uma situação do Prezi: necessitaria estar perto do computador ou do notebook para ficar trocando os slides, quer dizer, dando mais um passo na animação construída na ferramenta. Isso pesa muito quando temos um descendente de italiano (meu caso) que fala muito com as mãos e não consegue ficar parado durante a palestra. Desta forma decidi “hackear” o Prezi. Vale dizer que este termo é confundido com o termo “Crakear”, que, neste caso, quer dizer pessoas que invadem ou roubam dados digitais com objetivo de destruir sistemas ou de obter lucro de forma ilícita. O Hacker é o “nerd do bem”!. Inicialmente tentei mudar o aplicativo que podemos baixar do Prezi e passar...

Spring Brasil User Group nasceu saudável em 2010

O Spring Brasil User Group nasceu forte e saudável junto com o ano novo e, com menos de um mês de vida, já conta com mais de 100 membros. Venha participar também desta comunidade! Se ainda não é um membro, clique aqui !. Este grupo é uma rede social dedicada a fortalecer e fomentar a comunidade de usuários e desenvolvedores das tecnologias relacionadas ao Spring Framework . Fórum, Blog, Notícias e Chat <=> Comunidade O Spring Brasil User Group , carinhosamente apelidado de SBUG, está baseado na infraestrutura do site de redes sociais chamado Ning e, por isso, disponibiliza os mecanismos de fórum, blog, publicação de fotos e vídeos, divulgação de eventos e troca de mensagens entre os integrantes do grupo. Portanto, esta rede social permitirá a todos os participantes enviar dúvidas ou abrir discussões através do fórum, escrever notícias ou mini-tutoriais sobre Spring no blog e acompanhar as novidades e possíveis reuniões virtuais ou presenciais do grupo. De maneira tímida...

Academia do Programador no Ensino Médio

Logo após o lançamento da Academia do Programador , esta carreira foi apresentada para a Flávia Teresa de Lima, que é a Coordenadora Pedagógica do Ensino Médio da Escola Fernão Gaivota , que após verificar o pré-requisito, o conteúdo e os objetivos, ressaltou: “Trabalhar este conteúdo ajudaria o desenvolvimento do pensamento lógico, visto que o exercício realizado na resolução de um problema computacional consiste na análise dos objetivos determinados, das ferramentas disponíveis, bem como a definição dos passos necessários para alcançar estes objetivos possibilita a reversibilidade do pensamento e o pensamento antecipatório. Habilidades que são fundamentais para a construção do conhecimento.” Então a ideia de incluir a Academia do Programador como conteúdo integrante do Ensino Médio foi amadurecendo e foi definido que em 2010 os alunos do 2º ano do Ensino Médio teriam 2 aulas semanais dedicadas a Academia do Programador, totalizando as 80h desta carreira. A experiência que tive...

Desenvolvimento Softwares Vs. Construção Civil

Eu sei que a metáfora da construção civil tem sido utilizada para referenciar modelos mais rígidos, porém, analisando de um novo ponto de vista, o de um pedreiro, eu vejo uma analogia interessante.  Já são conhecidas as inúmeras comparações entre "engenharia" de software e engenharia civil: pilares da arquitetura Java EE, diagramas como planta e código como a casa construida, a função de arquiteto, engenheiro e a famosa frase que o programador é o pedreiro do software... Tudo isso nos perseguiu muito nos últimos 20 anos e muitos dos profissionais de T.I. não gostam dessas comparações. O fato é que influenciado por tais comparações, há exatamente 9 anos atraz quando tinhamos uma equipe enxuta e dinâmica de desenvolvimento, eu costumava dizer: "Vamos fazer uma imersão em uma obra e entender quais são as razões de uma casa ser levantada aparentemente com menor esforço organizacional e corportativo que um software". Nunca fizemos. Porém refletindo recentemente ach...

Facelets uma forma mais ágil para construção de telas – Parte I

A construção de telas ou camada de apresentação em um sistema MVC seja web ou desktop é uma tarefa complexa e de extrema importância. Nesse post vou comentar e mostrar algum exemplo do Facelets como solução para os desafios existentes nessa etapa especificamente para web. Com a web cada vez mais presente em nosso dia-a-dia, um fato é que com isso nossos usuários tornam-se mais exigentes em relação a usabilidade, agilidade, performance ou de uma forma bem resumida “o usuário espera uma navegação simples e agradável aonde uma determinado tarefa possa ser concluída em poucos passos e em um curto espaço de tempo”. Atender as expectativas em relação ao que o usuário espera com o que realmente ele precisa, definir uma estrutura flexível a mudanças sem engessar o desenvolvimento, acessibilidade, portabilidade em múltiplos navegadores, tudo isso e muito mais, num prazo que quase sempre é apertado. Um outro ponto fundamental é manter o time motivado e produtivo em um ambiente que favoreça a...