Entrando em forma com Android

Depois de muito tempo sem escrever aqui no blog, tento voltar à ativa com um artigo um tanto quanto diferente: um artigo falando sobre exercício físico! Mas, como todo nerd, até para isto eu preciso da tecnologia junto a mim, neste caso um smartphone Android.

Utilizando o ZTD, uma das minhas metas é voltar ao meu peso ideal. Há muito tempo que estava com sobrepeso e a situação estava piorando lentamente. Após uma passagem pela academia, comecei a correr na rua utilizando um aplicativo móvel para monitorar minhas atividades.

O corredor (ou quase isto)

A dica veio do meu amigo Saulo Andrade, futuro maratonista, que já utilizava há algum tempo o aplicativo RunKeeper. Ao começar a correr, você abre o RunKeeper e ele busca sua localização pelo GPS. Assim que ela for localizada, você marca o início da atividade e ele começa a te monitorar. De tempos em tempos (configurável), ele dá um resumo em áudio de como anda sua atividade. Por isso, eu sempre corro com um fone de ouvido bluetooth, ouvindo boa música (normalmente AC/DC para empolgar mais \o/).

O legal deste aplicativo é que seu site é uma espécie de rede social, onde você pode compartilhar com seus amigos suas atividades e ver as deles. Isto é algo muito bom e recomendado pelo ZTD, pois você torna público entre seu círculo de amigos a evolução de sua meta, aumentando sua dedicação para alcançá-la.

Um pouco de supervisão

No entanto, todo o mundo sabe, fazer exercício físico sem acompanhamento profissional é perigoso. Apesar de estar repetindo o que aprendi no tempo em que fiquei na academia, com o tempo eu passei a ficar um pouco incomodado com a situação de correr por minha conta.

O RunKeeper tem alguns planos de treino criados por especialistas que você pode comprar e ter acompanhamento deles. Estava quase comprando, pois o valor é bastante aceitável e, como eu queria continuar correndo ao ar livre e não voltar para academia, seria mais barato do que contratar um personal trainer.

No entanto, neste meio tempo ouvi o episódio 24 do AndroidCast, onde apresentaram outras opções de aplicativos. Foi então que conheci o Adidas micoach, que, além de monitorar os treinos, também tem planos de treino desenvolvidos por especialistas. O melhor é que é tudo gratuito!

RunKeeper + micoach

Como juntar o melhor dos mundos? O micoach é o aplicativo ideal para utilizar durante as atividades, pois te guia de acordo com o planejamento, mas o RunKeeper é onde estão meus amigos.

Outro grande problema é que o aplicativo da Adidas não te deixa importar os dados de treinos feitos em outros aplicativos, significando que eu perderia todo o meu histórico de corridas. Por sorte, é possível exportar os dados do micoach através do site Running Free e importá-los para o RunKeeper.

Sendo assim, consegui juntar o melhor das duas aplicações: utilizar o aplicativo da Adidas para um treino correto e supervisionado, mas com todos os dados no RunKeeper, onde estão meus amigos e posso continuar publicando a evolução da minha meta de voltar ao meu peso ideal!

Previsão: HTML5 como plataforma ubíqua no mundo móvel

Este artigo foi publicado originalmente na Revista Espírito Livre ed. 33 com tema “Previsões para 2012″. Não deixe de ler os demais artigos, pois está muito legal!

O HTML5 é uma das tecnologias mais comentadas do momento. Composto de um conjunto de padrões abertos, promete possibilidades ilimitadas para o desenvolvimento de sites e aplicativos web, inclusive para rodarem em dispositivos móveis.

Dentre suas capacidades, incluem execução de áudio e vídeo, execução de animações e até mesmo execução offline. Isto tornariam obsoletas algumas tecnologias proprietárias que dependemos hoje, como o Adobe Flash. Isto tanto é verdade, que a Apple há tempos abandonou o Flash no iOS [1], abraçando o HTML5, e motivou a Adobe a abandonar esta tecnologia no mundo móvel em prol também do padrão aberto [2].

No entanto, a maior parte do desenvolvimento móvel feito atualmente é baseado em kits de desenvolvimento nativos de cada plataforma, abordagem muito comum nos aplicativos desktop antes da explosão da “computação em nuvem”. A grande desvantagem disto é que os desenvolvedores devem portar suas aplicações para cada sistema que deseja executá-las, um trabalho que não é fácil.

O mundo desktop evoluiu para a web e o mundo móvel também irá evoluir para a mesma direção, mas desta vez será muito mais rápido. Com capacidades exclusivas para celulares e tablet modernos, o HTML5 será a plataforma que possibilitará esta evolução.

O futuro já começou

Atualmente já existem alguns frameworks de desenvolvimento, como o Rhodes Mobile [3] e o PhoneGap [4], que geram aplicações para múltiplas plataformas, utilizando HTML5 e rodando a aplicação no navegador web do dispositivo. Detalhe importante é que, em outubro, a Adobe comprou a empresa por trás do PhoneGap, mostrando que não está brincando quando diz que irá mudar seu direcionamento no mundo mobile.

Outra boa notícia para quem acredita nesta tendência, foi a da abertura do código do webOS [5], sistema móvel da HP que foi desenvolvido originalmente pela Palm. Este é um sistema operacional totalmente baseado em tecnologias web, dentre elas o HTML5.

Seu framework de desenvolvimento de aplicativos, o Enyo [6], também terá seu código aberto e a expectativa é que a comunidade porte-o para outros sistemas móveis, como Android e iOS.  Caso isto aconteça, será mais uma boa opção para quem desejar desenvolver aplicações para diversos dispositivos.

Conclusão

Apesar da especificação do HTML5 ainda não estar finalizada, com muitos detalhes ainda indefinidos, suas evoluções estão sendo acompanhadas de perto pela comunidade e por todas as empresas do ramo. Certamente muita evolução acontecerá no decorrer de 2012 e a tendência é que a tecnologia ganhe ainda mais espaço, tanto no mundo desktop quanto no móvel.

Com esta expansão, 2012 poderá ser um ano em que o HTML5 começará a ser considerado como uma das principais plataformas para desenvolvimento móvel. Com isso, ganhará o desenvolvedor, que poderá disponibilizar suas criações para usuários de múltiplos sistemas de maneira simples, e também ganhará o usuário, que terá uma gama ainda maior de aplicativos disponíveis.

Referências:

Visual moderno em aplicativos Android

Quando foi lançada, a versão 3.0 do sistema Android trouxe um visual totalmente remodelado e com diversos conceitos de interface diferentes. Desde então, a Google vem modificando a API adicionando novos padrões de UI (interface de usuário), com o objetivo de tornar os aplicativos desenvolvidos na plataforma mais intuitivos.

No início, apenas os aparelhos com versões do sistema a partir da 3.0 tinha acesso a estas novas APIs, trazendo um grande problema de fragmentação. Afinal, como tirar proveito destas melhorias se a grande maioria dos aparelhos no mercado ainda estão trabalhando com Android 2.x? Foi então lançada a Compatibility Library, para possibilitar embarcar estas APIs mais recentes junto com as aplicações, possibilitando seu acesso mesmo nas versões mais antigas do sistema.

Esta semana a Google deu mais um passo na direção certa e lançou o Android UI Design Guidelines. Leitura obrigatória para quem está desenvolvendo para a plataforma, explica todos os conceitos de interface utilizados e tudo o que você deve e não fazer ao desenvolver aplicativos.

O problema do ActionBar

Sabemos que devemos seguir o guia e utilizar as APIs de compatibilidade para poder seguí-lo, no entanto uma peça chave da interface de um aplicativo Android ficou estranhamente de fora do Compatibility Library: o ActionBar.

Uma opção seria implementar por conta própria, o que não é muito produtivo. Outra seria copiar o código de um aplicativo como o do Google I/O (o que parece ser a recomendação), mas fazer “copy-and-paste” não é uma das técnicas de programação mais inteligentes.

A melhor opção então é procurar bibliotecas de terceiros para incorporar no aplicativo. Inicialmente conheci o GreenDroid, que é utilizado no aplicativo do Ubuntu One e, além da ActionBar, tem vários outros recursos. Mas a opção que escolhi foi o ActionBarSherlock.

O ActionBarSherlock tem a vantagem de tentar ser um superconjunto da Compatibility Library, ou seja, ele já contém tudo desta API e mais a ActionBar. Melhor de tudo, se a versão do Android no aparelho é recente, ele utiliza a ActionBar nativa. Seu uso é muito simples e irei utilizar no meu novo projeto: o aplicativo para Android da Revista Espírito Livre.

Mais fontes de estudo

Com o problema do ActionBar resolvido, você pode começar a desenvolver seus aplicativos Android utilizando todo o potencial da plataforma e, ainda assim, mantendo a compatibilidade com até a versão 1.6 do sistema.

Um site bem legal que conheci nas minhas buscas (onde conheci do ActionBarSherlock) é o Android UI Design Patterns. Ele contém diversos artigos explicativos dos padrões de interface para Android, dicas de implementação e muito mais.

Outra dica boa é o site Android Assets Studio, que é uma mão na roda para criação de ícones para seu aplicativo. Eu que não sou nenhum artista gráfico, consegui criar ícones simples porém bonitos com apenas alguns cliques.

Espero que as dicas acima os ajudem a desenvolver aplicativos com excelente visual e consistente com a plataforma Android. Caso tenham alguma outra dica, compartilhem nos comentários!

Esperanças com a abertura do webOS

No último dia 09 de dezembro, a HP anunciou que abrirá o código do seu sistema operacional, o webOS, numa tentativa de se manter relevante no mercado de dispositivos móveis. Apesar dos seus conceitos de interface de usuário inovadores e ter cativado todos os seus poucos usuário, ele foi a grande promessa de volta por cima da Palm que nunca se concretizou.

web + OS

Apesar de não conhecer o sistema, o que mais me chama atenção para o webOS é o desenvolvimento de aplicativos feito utilizando padrões web (HTML5/CSS/JS). Tenho visto os vídeos da W3Conf e tenho me tornado um entusiasta cada vez maior do HTML5, a ponto de achar que a tecnologia é o futuro do desenvolvimento móvel. Sendo assim, acredito que os sistemas móveis baseados em padrões web são os mais preparados para o futuro e que os dias dos SDKs nativos estão contados.

Mas o webOS não é o único a apostar nesta ideia. Existem outros dois sistemas, atualmente em fase de desenvolvimento, com princípios similares: o Boot2Gecko (ou B2G), bancado pela Mozilla, e o Tizen, bancado pela Intel e Samsung com a benção da Linux Foundation. Além de apostarem na plataforma web, os três são sistemas que rodam sobre o kernel Linux e serão livres.

Mas ainda existe espaço?

A pergunta que realmente fica é: “será que não é tarde demais?” Num mercado dividido ente iOS e Android, com o Windows Phone querendo entrar na briga, será que o webOS tem futuro ou será que acabará como o Symbian?

Assim como tem acontecido no mundo desktop, acredito que o no mundo móvel o sistema operacional perderá cada vez mais a importância como plataforma de execução de aplicativos, deixando esta tarefa para o navegador e a “nuvem“. Sendo assim, acho que um sistema que aposta nisso tem grandes chances de ser relevante.

No entanto, o webOS livre lutando sozinho provavelmente será tão “bem” sucedido quanto o webOS fechado. Mas se a HP juntar seus esforços junto com o B2G e o Tizen, o futuro poderia ser realmente promissor.

webOS + B2G + Tizen

Dos três sistemas, o webOS é o único que está pronto hoje. Ele só precisa substituir as partes que não poderão ser abertas, um esforço que os outros dois projetos poderiam ajudar. Com todos os esforços direcionados para a mesma base de código, poderíamos ter algo espetacular!

Do ponto de vista comercial, existirão outras grandes empresas apoiando a HP, dentre elas uma das maiores fabricantes de celulares do mundo: a Samsung. Sem contar que a presença da Mozilla e da Linux Foundation poderá trazer um ar de projeto verdadeiramente open source, o que pode trazer confiança e investimentos de outras empresas que não se sintam bem atendidas pela Android ou pelo Windows Phone.

Na torcida por um futuro mais aberto

Tudo o que escrevi são apenas devaneios, mas realmente torço muito para que isto aconteça. Teríamos um sistema com código e governança livres e baseado em padrões abertos e interoperáveis. Isto seria bom tanto para os usuários, que terão mais liberdade de escolha, quanto para os desenvolvedores de software, que não precisarão portar seus aplicativos para diversas plataformas.

Minha pequena trajetória no software livre

Este mês completam 10 anos desde que comecei meu curso de “Bacharelado em Informática e Tecnologia da Informação” na UERJ. Para comemorar esta primeira década, vou falar um pouco de uma parte importante da minha carreira: o meu envolvimento com software livre.

O início

Utilizo e advogo a favor do software livre desde aproximadamente 2003, no início da minha carreira profissional. No entanto, só a partir de 2008 que passei a fazer parte de uma comunidade e trabalhar em conjunto com outras pessoas em favor deste ideal. Esta comunidade foi a SL-RJ e a conheci durante o Flisol 2008, evento organizado por alguns amigos logo após a criação do grupo.

Na comunidade

Desde então, eu procuro fazer o que posso para ajudar, sempre buscando mais. Em 2009, eu organizei meu primeiro evento (Flisol 2009) e fiz minha primeira palestra (Gnugraf 2009).

Neste ano estava muito envolvido com a comunidade, mas vi todos aqueles eventos importantes, como FISL e Latinoware, passando e eu não fui em nenhum. Terminei o ano pensando: “Ano que vem eu vou em algum evento grande de software livre!”

Primeiro evento grande

Em 2010, só dei uma palestra (Gnugraf 2010) e não pude ir no FISL. Então, para cumprir minha meta, eu fui ao Latinoware! Gostei muito de estar naquele ambiente cheio de pessoas inteligentes e cheio de amigos (sim, o pessoal do SL-RJ estava em peso lá – como palestrantes!).

Muito destes amigos falaram que eu devia ter mandado uma palestra, mas eu andava com a cabeça muito cheia para pensar nisso e acabou passando. Então submeti uma palestra ao evento FSLDC 2010 que foi aprovada! Infelizmente, fiquei muito gripado no dia anterior e não tive a menor condição de ir ao evento.

Mostrando a cara

Então o ano de 2011 começou com uma nova meta: “fazer mais palestras”. Comecei palestrando em abril no Flisol 2011 e, em seguida, no FSLDC 2011, ambas com a palestra “Integração contínua com software livre” que ia apresentar no FSLDC 2010. Fiquei empolgado e submeti 2 palestras ao FISL. Para a minha total surpresa, uma delas foi aprovada!!!

Assim, acabei indo para o meu segundo evento grande de software livre, mas desta vez como palestrante (que tem regalias, como jantar às custas do Google :P ). No FISL, apresentei a palestra “Android: uma catedral de sucesso” e foi bem legal (até apareceu no site do evento \o/).

Obs.: As apresentações de todas as minhas palestras estão na página Palestras aqui do blog.

Meta cumprida

Estamos pouco além da metade de 2011 e considero minha meta para este ano cumprida. Já mostrei bastante a minha cara e, mesmo assim, ainda tenho 2 palestras marcadas. A primeira será na próxima segunda-feira, no Ciclo de Palestras do Sindpd-RJ, e a outra no sábado seguinte, no II Universidade Livre. Gostaria de poder apresentar em outros eventos, mas o Hack’n Rio está sugando todas as minhas forças e estou preferindo deixar para depois que o evento passar.

Falando em Hack’n Rio, este é um marco importante na minha trajetória no software livre, pois é o maior evento que já organizei. Com dois dias de duração e uma quantidade razoável de patrocinadores, está dando bastante trabalho, mas vai valer a pena.

Futuro

E minha meta para 2012? Com certeza será contribuir como desenvolvedor para alguns projetos. Sinto que preciso dar um passo a mais na carreira e deixar de apenas fazer divulgação. Este ano comecei a dar meus primeiros passos no desenvolvimento de software livre: primeiro com o ORC, iniciado pelo Gabriel Duarte, e depois começando o Barcode-Check-in, que talvez seja usado no Hack’n Rio para fazer o credenciamento dos participantes de forma mais ágil. No entanto, além de criar projetos, quero contribuir com os que já existem e que utilizo.

Se o mundo não acabar em 2012 (:P), espero que daqui a 10 anos eu já seja um desenvolvedor conhecido e respeitado, e tenha como minha principal fonte de renda o software livre. Como sou um cara ansioso, agora estou doido para saber como estarei em 2021!