É 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!