Sumรกrio
ร muito recompensador desenvolver uma aplicaรงรฃo para TV digital e observar sua criaรงรฃo sendo executada num set-top box e exibida na TV, porรฉm quem deseja comeรงar a desenvolver seus primeiros aplicativos pode encontrar algumas dificuldades. No primeiro contato com o desenvolvimento para TV digital geralmente o iniciante acaba deparando-se com muitas informaรงรตes sobre normas, plataformas, ambiente de testes, APIs, usabilidade etc. Tantas informaรงรตes podem causar confusรฃo deixando o desenvolvedor perdido, e pior, podem atรฉ causar a desistรชncia e consequente decepรงรฃo com o desenvolvimento de aplicaรงรตes para TV digital.
Neste tutorial abordaremos passo-a-passo a estruturaรงรฃo de um ambiente de desenvolvimento e testes para as aplicaรงรตes interativas desenvolvidas para o middleware Ginga-NCL.
Ambiente de desenvolvimento
Quando falamos em ambiente de desenvolvimento estamos nos referindo ao conjunto de ferramentas que tem por finalidade auxiliar tanto na codificaรงรฃo como na execuรงรฃo e visualizaรงรฃo de nossas aplicaรงรตes interativas.
Para codificarmos nossas aplicaรงรตes iremos utilizar uma IDE muito popular conhecida como Eclipse. O uso de uma IDE รฉ bastante recomendado, pois, como veremos no decorrer deste tutorial, ela oferece uma sรฉrie de funcionalidades, como um sistema avanรงado de plugins, para facilitar a codificaรงรฃo de nossas aplicaรงรตes.
Para simularmos uma TV com interatividade iremos utilizar uma imagem VMware de uma mรกquina virtual com o middleware Ginga-NCL instalado. Esta imagem รฉ chamada de Ginga-NCL Virtual STB e รฉ disponibilizada pelo laboratรณrio Telemรญdia da PUC-Rio.
Download e instalaรงรฃo do Ginga-NCL Virtual STB
Para executarmos o Ginga-NCL Virtual STB รฉ necessรกrio ter instalado um player para a mรกquina virtual VMware. Existem duas opรงรตes gratuitas: VMware Server e VMware Player.
Pela facilidade de instalaรงรฃo e entendimento, prosseguiremos com a instalaรงรฃo do VMware Player. Acesse a pรกgina de download e escolha a melhor opรงรฃo de acordo com o seu sistema operacional. Serรก necessรกrio efetuar um pequeno cadastro para prosseguir.
Apรณs a conclusรฃo do download (tanto no Windows como no GNU/Linux) basta executar o arquivo baixado para iniciar uma instalaรงรฃo em modo guiado. As opรงรตes apresentadas sรฃo fรกceis de escolher e a para a maioria delas รฉ necessรกrio apenas clicar em/ou escolher Next. Ao tรฉrmino da instalaรงรฃo pode ser solicitado a reinicializaรงรฃo do sistema. A figura abaixo mostra a tela inicial do VMware Player onde รฉ possรญvel ver o botรฃo Open an existing Virtual Machine.
Apรณs a instalaรงรฃo do VMware Player seguiremos com o download da imagem do Ginga-NCL Vistual STB. Para isso acesse a pรกgina de ferramentas do site oficial ou clique diretamente aqui. A imagem รฉ disponibilizada num arquivo compactado (.zip) e para extraรญ-lo serรก necessรกrio ter um descompactador como unzip ou winzip instalado em seu computador. Quando o download terminar, descompacte o arquivo onde desejar.
Para executar o Ginga-NCL Virtual STB basta abrir o VMware Player, clicar no botรฃo Open an existing Virtual Machine, navegar atรฉ a pasta onde descompactou a imagem e clicar no arquivo .vmx. A figura abaixo ilustra essa operaรงรฃo.
Como รฉ exibido na figura abaixo, apรณs o carregamento da imagem teremos nosso Ginga-NCL Virtual STB pronto para os testes.
Agora jรก รฉ possรญvel acessar o Ginga-NCL Virtual STB atravรฉs de uma conexรฃo SSH. No Windows para abrirmos tal conexรฃo com a mรกquina virtual podemos fazer uso dos programas Putty ou SSH Secure Shell Client; a maioria das distribuiรงรตes GNU/Linux jรก oferece o cliente SSH instalado. Contudo nรฃo iremos trabalhar com o Ginga-NCL Virtual STB desta forma, apresentaremos uma maneira mais fรกcil para trabalharmos com a mรกquina virtual.
Instalaรงรฃo do Eclipse
Neste tutorial utilizaremos o Eclipse 3.5.2 (Galileo) Classic que pode ser obtido, gratuitamente, em sua pรกgina de download. O Eclipse รฉ desenvolvido em Java e nรฃo รฉ necessรกrio efetuar instalaรงรฃo, basta descompactar e executar o arquivo binรกrio para iniciar sua utilizaรงรฃo. Contudo รฉ necessรกrio ter a mรกquina virtual Java instalada. Na figura abaixo pode ser visto uma tela do Eclipse informando a versรฃo que utilizamos.
Instalaรงรฃo do plugin NCL Eclipse
O NCL Eclipse รฉ um plugin que auxilia e agiliza bastante o desenvolvimento de aplicaรงรตes em NCL. A partir da versรฃo 1.4 (a versรฃo atual รฉ a 1.5) foi disponibilizada a instalaรงรฃo atravรฉs do sistema de instalaรงรฃo automรกtica do Eclipse.
Para efetuar a instalaรงรฃo do NCL Eclipse inicie o Eclipse e acesse Help -> Install New Software como pode ser visualizado na figura abaixo.
Na tela de instalaรงรฃo (figura abaixo) clique em Add.
Apรณs clicar em Add serรก exibida uma caixa de diรกlogo para a informaรงรฃo do nome e localizaรงรฃo do site onde o Eclipse irรก buscar a atualizaรงรฃo. Entre com as informaรงรตes:
- Name: NCL Eclipse
- Location: http://www.laws.deinf.ufma.br/ncleclipse/update
Clique em OK e o Eclipse irรก procurar por atualizaรงรตes no endereรงo informado. Para visualizar o NCL Eclipse desmarque a opรงรฃo “Group items by category”. Escoha o NCL Eclipse, clique em Next e depois em Finish.
Apรณs a instalaรงรฃo serรก solicitado a reinicializaรงรฃo do Eclipse, basta aceitar e aguardar a inicializaรงรฃo automรกtica. Quando iniciar novamente o Eclipse jรก estarรก com o plugin NCL Eclipse instalado.
Para criar um novo documento NCL clique em File -> New -> Other ou utilize o atalho Ctrl+N. Na janela New escolha NCL -> NCL Document e clique em Next.
Como รบltimo passo iremos configurar o nome de nosso documento e clicar em Finish para criarmos o documento.
Instalaรงรฃo do plugin LuaEclipse
Com LuaEclipse รฉ possรญvel editar scripts Lua com syntax highlight, code completion, verificaรงรฃo de erros de compilaรงรฃo, agrupamento de cรณdigo e comentรกrios, execuรงรฃo de scripts utilizando um interpretador prรฉ-configurado, etc (confira mais informaรงรตes no site oficial).
A instalaรงรฃo segue o padrรฃo do Eclipse e por isso รฉ bem semelhante com o que vimos para o NCL Eclipe. Apenas substitua as informaรงรตes do site por:
- Name: Lua Eclipse
- Location: http://luaeclipse.luaforge.net/preview/update-site/linux.gtk.x86
Se seu sistema operacional for Windows, troque o Location por http://luaeclipse.luaforge.net/preview/update-site/win32.win32.x86.
Apรณs a instalaรงรฃo, iremos configurar o interpretador Lua padrรฃo para nossos aplicativos. Para isso, selecione Window -> Preferences e em seguida selecione a categoria Lua -> Installed Interpreters, como na figura abaixo.
Para criar um novo projeto Lua clique em File -> New -> New Lua Project ou utilize o atalho Ctrl+N. Na janela New escolha Lua -> New Lua Project e clique em Next.
Para incluir um novo arquivo em seu projeto selecione o projeto desejado, clique com o botรฃo direito e selecione New -> New Lua File.
Neste momento jรก podemos comeรงar a codificar.
Para executar seu script clique com o botรฃo direito nele e escolha Run As -> Lua Application.
Para evitarmos estes cliques entediantes podemos configurar um atalho, em Window -> Preferences -> General -> Keys, para essa tarefa. No meu caso configurei para a combinaรงรฃo Ctrl+R executar o script Lua.
Instalaรงรฃo do Remote System Explorer (RSE)
O RSE รฉ um plugin para o Eclipse que oferece um conjunto de ferramentas para a conexรฃo e trabalho com diferentes sistemas remotos, incluindo SSH e FTP. Para maiores detalhes sobre o plugin visite o site oficial.
Mas o que um plugin para trabalho com sistemas remotos estรก fazendo aqui? Bem, podemos considerar o nosso Ginga-NCL Virtual STB um sistema remoto, apesar de muitas vezes ele residir no mesmo computador, e usufruir todas as facilidades oferecidas pelo RSE evitando o enfadonho processo de ediรงรฃo, cรณpia para a mรกquina virtual e acesso ร mรกquina virtual para executar a aplicaรงรฃo. Quem passou por isso sabe o quanto isso pode ser desestimulante.
A instalaรงรฃo do RSE segue o mesmo procedimento dos outros plugins, Apenas substitua as informaรงรตes do site por:
- Name: RSE
- Location: http://download.eclipse.org/dsdp/tm/updates/3.0
Neste site encontraremos muitas versรตes deste plugin, escolha a opรงรฃo Remote System Explorer SDK 3.1.1 como na figura abaixo.
Apรณs a instalaรงรฃo, podemos modificar o nosso workspace para a perspectiva oferecida pelo RSE, para isso acesse Window -> Open Perspective -> Other e escolha Remote System Explorer como na figura.
Com a nova perspectiva o workspace ficarรก parecido com este:
Agora iremos criar uma conexรฃo com o Ginga-NCL Virtual STB (assegure-se que ele estรก rodando). Clique com o botรฃo direito na aba Remote Systems e escolha New -> Connection. A figura abaixo ilustra essa operaรงรฃo.
Em seguida serรก necessรกrio escolher o tipo de conexรฃo com o sistema remoto, escolha SSH Only.
Apรณs escolher o tipo de conexรฃo รฉ necessรกrio configurar o Host name e atribuir um nome para a conexรฃo, como pode ser visto na figura abaixo.
Na configuraรงรฃo do Host name coloque o endereรงo IP do seu Ginga-NCL Virtual STB.
Logo em seguida clique em Finish para criar sua conexรฃo.
Para nos conectarmos ao Ginga-NCL Virtual STB clique com o botรฃo direito sobre a conexรฃo que acabou de criar e escolha a opรงรฃo Connect.
Em seguida serรก exibida a tela para o preenchimento do login e senha para a conexรฃo. Seguindo as instruรงรตes presentes na tela de abertura do Ginga-NCL Virtual STB preencha com o loginroot e senha telemidia.
Para otimizar novas conexรตes marque a caixa Save password
Com a conexรฃo estabelecida รฉ possรญvel ter acesso aos arquivos do Ginga-NCL Virtual STB como exibido na figura abaixo.
ร possรญvel executar aรงรตes, inclusive ediรงรฃo, sobre os arquivos remotos como se fossem arquivos locais; o RSE abstrai isso para o desenvolvedor. Experimente dar um duplo clique em um dos arquivos e vocรช verรก que ele abrirรก para ediรงรฃo como qualquer outro arquivo e todas as modificaรงรตes que vocรช realizar sรฃo efetuadas diretamente no arquivo remoto. Tambรฉm รฉ possรญvel criar diretรณrios e transferir arquivos, tudo da forma que vocรช jรก faz no Eclipse.
Agora abriremos um terminal para execuรงรฃo de comandos diretamente no Ginga-NCL Virtual STB. Clique com o botรฃo direito sobre Ssh Terminals e escolha Launch Terminal.
Com a utilizaรงรฃo do terminal รฉ possรญvel executarmos nossa aplicaรงรฃo sem sair do Eclipse.
Na figura abaixo รฉ possรญvel observar uma tela do Eclipse com o ambiente integrado. O arquivo aberto, no centro da tela, รฉ de uma aplicaรงรฃo de demonstraรงรฃo e estรก sendo editada remotamente. Do lado direito temos um terminal com o comando para a execuรงรฃo da aplicaรงรฃo que serรก exibida na tela do Ginga-NCL Virtual STB.
O RSE รฉ um plugin muito abrangente e apresenta mais funcionalidades do que as apresentadas aqui. Se vocรช utiliza alguma funcionalidade que nรฃo foi apresentada, contribua com comentรกrios.
Conclusรฃo
Vi por vรกrias vezes as mesmas dรบvidas sobre ferramentas e ambiente de desenvolvimento surgirem em quem estava iniciando o desenvolvimento de aplicaรงรตes para TV Digital com o middleware Ginga-NCL, por isso decidi escrever este tutorial. Procurei reunir em um รบnico documento todos os passos para um iniciante conseguir, de forma fรกcil e acessรญvel, estruturar seu ambiente de desenvolvimento.
Agora รฉ sรณ baixar a apostila NCL e Lua – Desenvolvendo aplicaรงรตes interativas para TV digital e comeรงar a desenvolver suas aplicaรงรตes.
Espero que as informaรงรตes aqui apresentadas tenham utilidade e contribuam para a comunidade. Os comentรกrios estรฃo abertos para opiniรตes e acrรฉscimo de conhecimento.
Rafael, eu tou com um problema para configurar o interpretador Lua. Quando eu vou em Window -> Preferences -> Lua -> Installed Interpreters, nรยฃo aparece nenhum interpretador instalado, eu preciso baixar algum executรยกvel do instalador? ou localizar ele ??
Olรยก Victor,
Vocรยช precisa ter o interpretador Lua, que pode ser obtido aqui http://code.google.com/p/luaforwindows , รย instalado no seu Windows. Depois que instalar o interpretador precisarรยก acessar Window -> Preferences -> Lua -> Installed Interpreters para adicionar o interpretador que acabou de instalar.
Nรยฃo esqueรยงa de dar notรยญcias sobre seu progresso para ajudar outros visitantes tambรยฉm.
Abraรยงos.
Hihi.
Esse esquema funciona com o Eclipse Helios?
Olรยก,
Provavelmente sim.
Faรยงa a tentativa e comunique aqui para ajudar os prรยณximos visitantes ๐
Abs.
Rafael, eu instalei tudo corretamente e consegui realizar a conexรยฃo com VM perfeitamente, porรยฉm, quando aperto run NCL aplication no eclipse, simplesmente aparece no console:
Validating values…Done!Connecting to server…
E nรยฃo acontece nada na VM, estou da forma correta para rodar a aplicaรยงรยฃo?
Percebi que estou com warnings de que os arquivos de vรยญdeo e imagens nรยฃo existem, porรยฉm ja coloquei dentro da pasta media, e ja tentei de vรยกrias formas atรยฉ o endereรยงo do caminho completo e ainda assim nรยฃo funciona =/
Victor, depois de conectar vocรยช precisa digitar os comandos para iniciar a aplicaรยงรยฃo. Esses comandos aparecem bem explicados na tela da VM assim ela inicia (onde tem o logo do telemรยญdia).
Sobre os warnings, vocรยช precisa ver se no seu arquivo NCL o caminho para as mรยญdias estรยก correto.
Abs.
Obrigado! Me Ajudou muito!!! xD
Onde eu consigo um set-top box para teste de aplicativos ginga?
Muito bom! Valei pelas dicas!