sexta-feira, 8 de março de 2013

Ginga Hackathon - 1o Aplicativo Java para TV Digital com Ginga-J em 8 passos



Pessoal,

Sou um tipo de desenvolver ansioso que gosto de colher meus primeiros resultados rapidamente antes de estudar o "manual" da coisa. Se você também é assim e está participando do 1o Hackathon de Ginga-J promovido pela Oracle na Oracle, siga os passos a seguir para ter seu primeiro app rodando rapidamente:

1. Download do Astrobox: é uma máquina Virtual Box com um Ubuntu e emulador de TV digital. Você vai precisar se cadastrar no site http://www.astrodevnet.com.br/ para poder fazer o download, depois do cadastro, este é o link para download. Guarde seu usuário (email) e senha do Astrobox pois vai precisar posteriormente.

2. Descompacte o arquivo e configure seu Virtual Box conforme ensinamos na aula aqui (3 minutos em diante). Caso já conheça sobre Virtual Box, crie uma máquina que aponte para o arquivo que contém o disco virtual.

3. Inicialize o Ubuntu com o Astrobox e faça o login no Ubuntu com usuário totvs e senha astrobox. Em seguida ela vai pedir seu login (email) e senha que foi fornecida no ato do seu cadastro.

4. Instale um NetBeans ou Eclipse neste ubuntu: "sudo apt-get install netbeans"

5. Instale o git: "sudo apt-get install git-core"

6. Obtenha os exemplos das aulas da Globalcode com o comando "git clone git://java.net/gingahackathon~labs"

7. Crie um projeto no NetBEans ou Eclipse que use Ant e configure o classpath para incluir os jars do diretório /usr/bin/astrobox/lib e também o /usr/bin/astrobox/bin/java/astrobox.jar

8. Siga nossos exemplos do site http://gingahackathon.java.net/ e vídeos do curso gratuito  http://www.globalcode.com.br/treinamentos/cursos/videoaulas/java-e-tv-digital para aprender ainda mais sobre Ginga-J!

Nos vemos neste final de semana na Globalcode!

-Vinicius Senger

quarta-feira, 20 de fevereiro de 2013

Um Pouco sobre os Novos Sistemas Operacionais para Mobile



O mercado de plataformas móveis está claramente centralizado em dois nomes: iOS e Android. A dupla revolucionou o mercado e acabou com o império do Symbian, que durava mais de uma década. Uma pesquisa da Strategy Analytics mostrou que ambas foram responsáveis por 92% de todos os smartphones embarcados no quarto trimestre de 2012.

Mas engana-se quem pensa que outras empresas jogaram a toalha. Temos as duas mais conhecidas de todas. O Windows Phone e o recém-lançado BlackBerry 10.

O Windows Phone é uma plataforma que já tenho um pouco de experiência, tendo escrito alguns artigos para revistas e, começamos a trabalhar com ela na StillRocker. Empresa da qual sou sócio.É um bom sistema operacional, com um visualmente e conceito totalmente inovador. Mas ainda não vingou no mercado.

Já o BlackBerry 10 é totalmente novo em relação aos seus antecessores, nos quais trabalhei durante três como desenvolvedor. Tive a oportunidade de participar de um evento de pré-lançamento da plataforma realizada em São Paulo no ano de 2012. Confesso que achei o sistema operacional bonito e estável. Basta esperar e ver se a empresa canadense vai recuperar seu mercado perdido.

Mas não paramos por aí. O final de 2012 e início de 2013 estão sendo marcados pelo anúncio de novos sistemas operacional para o mundo mobile. Neste texto, vamos falar dos principais: Firefox OS, Ubuntu Phone, Tizen e SailFish OS.

Vamos começar falando do SailFish OS, desenvolvido pela Jolla, empresa formada por ex-funcionários da Nokia insatisfeitos com a morte do MeeGo. Este OS ainda é prematuro, não contendo muita informação na internet. Seu SDK vai ser lançado no início deste ano (2013).

Segundo minha pesquisa o SailFish terá suporte a aplicativos Android. Na página oficial do projeto pode ser visto uma citação ao Qt e a ferramenta QtCreator. Que, concidentemente é uma das apostas no novo BlackBerry 10. Abaixo, segue um vídeo lançado pelo Jolla que mostra um pouquinho do que será este OS.


Já o Tizen é uma iniciativa liderada pela Samsung, Intel e Linux Foundation. É baseado no Linux e terá forte apelo a tecnologia HTML 5 (outra constante nestas novas plataformas). Segundo consta, também terá suporte a aplicativos Android. Porém, tem foco em dispositivos mais simples.

O Tizen parece ser uma plataforma mais madura que o SailFish. Por exemplo, tem um guia para desenvolvedores bem completo (https://developer.tizen.org/documentation/dev-guide). Terá suporte para aplicativos com padrões Web (HTML5, CSS  e JavaScript), aplicativos nativos (C/C++) e híbridos. Infelizmente, parece que o download do SDK do Tizen está com problemas, então, não vou conseguir falar sobre isso.

Abaixo, um vídeo com o Tizen 2.0 Magnolia:


 
O Tizen terá suporte a features avançadas, como o NFC por exemplo. Além do GPS, 4G e versões para tablets, notebooks e televisores.

O Ubuntu Phone, criado pela Canonical também tem um nível de maturidade bom. Basicamente será uma versão semelhante ao Ubuntu para Desktop, porém, para smartphones, tablets e televisores.

Assim como o Tizen, Web Apps são o foco principal. Possui API´s específicas para uma melhor integração com o hardware. Logicamente, a tríade HTML 5, CSS e Java Script está presente. Porém, para rich applications a plataforma fornece um ambiente de desenvolvimento nativo, misturando QML com uma engine C ou C++. Além de suporte a OpenGL.

Infelizmente também não consegui instalar este SDK, pois, encontrei somente a linha de comando apt-get no site oficial. Como não utilizo Linux no notebook ficou impossível testar.

Veja mais sobre o SO no vídeo abaixo:



E, por último, mas não menos importante, temos o Firefox OS. Que tem um slogan grande na sua página oficial dizendo “trazendo a open web para dispositivos mobile”. É desenvolvido pela Mozilla Foundation.

Talvez o que vou falar já não é mais surpresa, mas, foca no uso do HTML5 juntamente com API fornecidas pela Mozilla para criação de aplicativos com uma experiência de usuário melhor. CSS e Java Script fornecem o apoio restante no ambiente de desenvolvimento.

A plataforma também já conta com um site com uma vasta documentação e um esboço de marketplace. Não encontrei nenhuma referência a SDK no site oficial.

Abaixo, um vídeo que mostra um pouco do que é o Firefox OS:


E o que estes novos sistemas operacional para dispositivos mobile nos dizem? Que devemos esquecer Android, a plataforma líder de mercado atualmente? Que java está com os dias contados e devemos correr desesperadamente para HTML5?

Minha opinião é bem simples. Essa resposta quem nos dará é o mercado. Não conseguimos estudar todas as plataformas, sistemas operacionais e outras novidades que surgirem. Indico conhecermos basicamente cada uma delas e aumentar o tempo de estudo conforme aumenta sua adoção no mercado. Um bom exemplo é o Windows Phone. É uma ótima plataforma, o Metro Style acertou em cheio no design mas, ainda não ganhou mercado.

E o HTML5, CSS e Java Script? Se você leitor, for um desenvolvedor de aplicativos nativos para Android ou iOS, eu sugiro que começe a estudar um pouco mais estas tecnologias. Afinal, não temos bola de cristal para saber o comportamento do mercado.

E o Android? Mesmo que ele comece a perder espaço (o que eu duvido), isso ainda vai levar um bom tempo. Talvez o sistema operacional do Google imite a Nokia e o Symbina, reinando por uma década e meia.

Att.
Ricardo

quinta-feira, 14 de fevereiro de 2013

Ginga, Java e Interatividade na TV Digital

Já iniciamos 2013 com muitas atividades e discussões em relação a TV Digital! E se você não está acompanhando muito este cenário, vai aqui um resumo da realidade atual:
  • O Java foi finalmente aprovado no Padrão Brasileiro de TV Digital
  • Rede Globo, SBT, Record, Rede TV, TV Brasil e Rede Vida estão transmitindo aplicações interativas em sua programação!
  • Existe ambiente para desenvolvimento gratuito disponibilizado pela TOVTS (veja post completo do Carlos Fernando Gonçalves)
  • Milhões de aparelhos de televisão já estão no mercado com Ginga!

Dias 09 e 10 de março teremos o primeiro Ginga Hackathon, um final de semana inteiro de muita programação e criatividade para criar aplicações interativas para televisão digital com Ginga! Realização Oracle e Globalcode.

Vai ser chique (risos), o evento é gratuito, todos os participantes vão ganhar uma camiseta e mais um brinde especial, além do almoço (SUBWAY) e pizza no jantar! Networking vai ser muito legal, tem pessoas vindo de vários estados do Brasil. Participe e ajude a divulgar esta iniciativa. 

PS: As vagas estão esgotadas, mas estamos trabalhando para aumentar a capacidade, por isto peço que se você tem interesse no assunto faça sua matrícula na lista de espera. Isto nos motivará a realizar outros!

Novo curso online Java e TV Digital com Ginga
Lançamos também o primeiro Curso Online Java e TV Digital com Ginga gratuito apresentado pelos especialistas Thiago Vespa e Carlos Fernando Gonçalves fundadores do JavaNoroeste.
Agenda:
  • Introdução ao Ginga
  • Ciclo de Vida XLet
  • Xlet e Lightweight UI Toolkit Widgets
  • Estilos, ações e componentes personalizados
  • Xlet comunicando com internet
  • Um exemplo completo re-utilizável

Você que curte Facebook não deixe de curtir também a página do evento:

Nossos agradecimentos especiais ao Dimas Oliveira, Paulo Riskalla, Thiago Vespa e Carlos Fernando Gonçalves pelo super apoio e realização deste evento.

Procurando mais informações ?  Aproveite os diversos posts aqui no Globalcoders

Palestra do Thiago Vespa na Campus Party:
Veja também algumas entrevistas realizadas no ultimo TDC2012 com profissionais e palestrantes da trilha TV Digital:




É isso ai pessoal! 2013 vai ser um ano de muito ação e mão na massa!
[]s

Yara Senger
twitter.com/yarasenger
blog.globalcode/search/label/Yara

quarta-feira, 13 de fevereiro de 2013

jHome at jFokus

Apesar de ser uma palestra "antiga"ela continua atual, risos. Vale a pena conferir a palestra apresentada por Vinicius Senger no Devoxx 2011, publicada no Parleys.

É isso ai, esperamos ter a oportunidade de voltar para o Devoxx agora em 2013!
[]s
Yara Senger

Android SDK Tools (r21) e suas novas ferramentas

Há pouca mais de uma semana, foi lançada a nova versão do Android SDK para o Jelly Bean, o Android 4.2. Com ele, também foi atualizada a versão do ADT (Android Developer Tools). As novas features são muito interessantes, agilizam o desenvolvimento e fornecem novos meios de combater a fragmentação de hardware da plataforma. Sendo assim, vou demonstrar algumas das principais novidades aqui neste breve artigo.

Novos Templates

Nas primeiras versões do ADT existia um número muito limitado de templates de interfaces gráficas que poderíamos utilizar. No Revision 20 já foram adicionados dois itens: uma interface máster-detail com uso de fragments e, uma tela em branco, somente com a barra superior e uma área central onde inserimos nossas widgets.

E, mais recentemente, na Revision 21, foram adicionados mais três templates muito úteis.

Um deles é uma tela de preferências. Segundo o comentário na classe PreferenceActivity gerada pelo ADT: uma preferenceactivity que apresenta um conjunto de configurações da aplicação. Em dispositivos handset, configurações são apresentadas em uma lista. Em tablets, configurações são divididas em categorias, com o cabeçalho das categorias mostrada a esquerda da lista de configurações. Veja uma representação na Figura 1:

Figura 1: template de configurações.

Outro template cria uma tela para visualização de imagem ou vídeo. Ela fica full-screen até que o usuário clique na tela, neste momento, a barra de status é exibida por alguns segundos. Veja na Figura 2 uma representação. Na Figura 3 o aplicativo criado com o template sendo testado em um Galaxy Ace e, na Figura 4, o instante em que o usuário tocar a tela do Ace.

Figura 2: representação

Figura 3: aplicativo

Figura 4: aplicativo após toque na tela.

E isso não é tudo. O próprio ADT já cria três classes auxiliares: SystemUiHider, SystemUiBase e SystemUiHiderHoneycomb. Com estas classes é possível mostrar e esconder certos componentes de UI que só estão presentes em versões mais recentes do sistema operacional Android.

Veja o que a documentação da classe SystemUiHider nos diz: Uma classe utilitária que ajuda a mostrar e esconder UI do sistema, como a barra de status e a barra de sistema/navageação. Esta classe utiliza técnicas de compatibilidade com versões anteriores, para garantir que dispositivos rodando qualquer versão do Android OS sejam suportados.

O último template refere-se a uma típica de tela de login, com um campo de usuário e senha e um botão para verificar a autenticidade do mesmo. Veja na Figura 5 sua representação:

Figura 5: template de tela de login.

O template é tão bem feito que a classe Acitivyt apresenta um esqueleto completo, com uma classe AsyncTask para uma possível verificação de senha mais demorada e utilização da ViewPropertyAnimator API, disponível a partir do Honeycomb MR2. Veja este código de animação abaixo:


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
 int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);

 mLoginStatusView.setVisibility(View.VISIBLE);
 mLoginStatusView.animate().setDuration(shortAnimTime)
  .alpha(show ? 1 : 0)
  .setListener(new AnimatorListenerAdapter() {
   @Override
   public void onAnimationEnd(Animator animation) {
    mLoginStatusView.setVisibility(show ? View.VISIBLE
        : View.GONE);
   }
 });

 mLoginFormView.setVisibility(View.VISIBLE);
 mLoginFormView.animate().setDuration(shortAnimTime)
  .alpha(show ? 0 : 1)
  .setListener(new AnimatorListenerAdapter() {
   @Override
   public void onAnimationEnd(Animator animation) {
    mLoginFormView.setVisibility(show ? View.GONE
        : View.VISIBLE);
   }
  });
} else {
// The ViewPropertyAnimator APIs are not available, so simply show
 // and hide the relevant UI components.
 mLoginStatusView.setVisibility(show ? View.VISIBLE : View.GONE);
 mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
}


Editor de UI poderoso

Quando vamos editar um arquivo XML que representa uma Activity de nossa aplicação, podemos fazer isso via código ou, através de uma representação gráfica e com ajuda do drag-and-drop. Na nova versão do ADT esta ferramenta recebeu aporte de novas e interessantes features.

Quando optamos pelo Graphical Layout, agora temos uma opção que fica no canto superior esquerdo, chamado de “Configuration to render this layout with in Eclipse”. Dentro das opções listadas por esta ferramenta, podemos escolher “Preview Representative Sample”. Sendo assim, veremos o layout que estamos construindo em diferentes tipos representativos de telas. Veja a Figura 6:

Figura 6: Graphical layout.

Desta forma, fica muito mais fácil gerenciarmos nossa interface gráfica do usuário nas diferentes versões de tela que o Android possui. Além disso, esta feature apresenta outra opção valiosa. Na opção Preview Layout Versions veremos para quais versões de tela nós estamos criando um layout. Ou seja, suponhamos que no meu aplicativo eu tenha criado um layout específico com a pasta layout-v11. Vou ver no Graphical Layout a Figura 7:

Figura 7: Graphical layout com minhas versões de tela.

E não para por aí não. O Graphical Layout apresenta um ícone de um globo, onde podemos especificar para uma versão de tela específica qual a localidade que estamos simulando.



Criação de AVD´s

O processo de criação de um Android Virtual Device também sofreu mudanças. Agora, é possível indicar em qual aparelho ele se baseará. Veja a Figura 8 e a caixa de seleção Device:

Figura 8: Criação de AVD.

Além disso, o novo ADT ainda nos fornece ferramentas como o UI Automator Test Framework, uma ferramenta gráfica para scanear e analisar os componentes de uma aplicação Android, mais uma biblioteca com APIs para criar funcionalidades automatizadas de testes e uma engine para automatizar e rodar testes em vários dispositivos físicos.

E, finalmente, conta com um instalador de SDK com somente 1 clique, baixando todos os componentes do SDK, como Tools, Platform Tools, Eclipse ADT e imagens de sistema. Tudo isso de forma muito mais conveniente.

O próximo passo é só começar a desenvolver.

segunda-feira, 4 de fevereiro de 2013

Reunião do Java Community Process Executive Committee

Participação das mulheres na tecnologia

Representantes SouJava no JCP EC
Diferente da reunião presencial do Comitê Executive do Java Community Process que ocorreu aqui no Brasil em 2012 onde eu era a única mulher da sala , houve participação de mais 03 mulheres nesta reunião!
  • Heather Vancura: PMO do JCP que trabalha na Oracle
  • Susanne Cech Previtali, Arquiteta de Infra-estrutura que representa o banco Credit Swiss no JCP e 
  • Linda Michiel, spec lead das JSRs EJB 2.0, 2.1 e 3.0, e também das specs JPA 2.0 e 2.1, que junto com o co speac lead da JSR Java EE 7, Bill Shanon,  foram apresentar para o JCP EC o status da JSR Java EE 7.

Participação do SouJava

Bruno Souza apresentando no JCP EC
Falando sobre a participação da comunidade Brasileira não da pra esquecer do Bruno Souza, um dos fundadores do SouJava, também conhecido como Brazilian JavaMan, que é o representante do SouJava no JCP Executive Committee (para o qual eu sou suplente mas tenho o privilegio de poder participar junto com ele em todas as reuniões que posso).
Ele vem realizando um trabalho sensacional. Na reunião de grupo de usuários ele apresentou o JCP e o programa Adopt a JSR, e no JCP Executive Committee ele apresentou uma visão geral do funcionamento de diversas outras organizações de padronização

E claro, o assunto que sempre vem a tona quando encontramos outras mulheres em tecnologia foi: Como aumentar a participação feminina no futuro da linguagem Java, nas JSRs e através do programa Adopt a JSR dos JUGs?.
Com apoio do Bruno Souza gravamos um vídeo curto e descontraido com as quatro mulheres da reunião: 

Mulheres na TI com Linda Demichiel, Susanne Previtali, Heather Vancura e Yara Senger from Globalcode on Vimeo.

Se você quer ver aumentar ainda mais o número de mulheres em TI :
É isso ai pessoal! Inspiração é tudo! E eu adorei conversar com estas mulheres que estão fazendo o futuro do Java!

[]s
Yara Senger
twitter.com/yarasenger
twitter.com/globalcode

domingo, 27 de janeiro de 2013

Brasileiros escrevendo o futuro do Android

Em Outubro de 2012 fomos para o JavaOne na Califórnia e aproveitamos para fazer uma visita ao grande amigo Felipe Leme, que foi não apenas instrutor da Globalcode mas fundador da Unidade Campinas trazendo para Globalcode Campinas diversos insturtores e amigos como Alberto Lemos (Dr. Spock) e Danival Calegari.

Atualmente ele está trabalhando na Google no time de Android desenvolvendo "Google Cloud Messaging" que é um sistema de push, você envia a mensagem para Google e ele redireciona para o celular aproveitando toda a infra-estrutura da Google.

Assista a entrevista curta e saiba mais!

Visitando o Google 2012 from Globalcode on Vimeo.

É isso ai pessoal. Muito legal ver muitos brasileiros fazendo o futuro das principais tecnologias do mundo. 

[]s
Yara Senger
http://twitter.com/yarasenger
http://facebook.com/AcademiaAndroid
http://www.globalcode.com.br/treinamentos/carreiras/academia-android