firefoxos

Firefox OS, um ano depois

A raposa largando da Terra...

Há quase um ano eu adquiria o LG Fireweb, smatphone da LG que trazia o Firefox OS como Sistema Operacional. Recentemente deixei o dispositivo de lado, cansado dos obstáculos que seu uso trazem. Aqui vou falar um pouco do porque.

Primeiro, continuo achando o Firefox OS uma ideia excelente. O HTML 5 é realmente uma boa saída para a pluralidade de dispositivos. O lado negativo é que, para aplicativos Marketplace, você precisa ter o Firefox rodando no dispositivo alvo (seja sistema Android ou o que for). O lado bom é que, para boa parte dos casos, não é preciso que o aplicativo seja um apk do Firefox OS: ele pode ser simplesmente um aplicativo web, focando um browser genérico. E o HTML 5 vem crescendo mais e mais.

O conjunto de aplicativos disponíveis, apesar da clara carência de apps de algumas categorias, traz alguns muito bons. Ele já vem com um programa de agenda com suporte a CalDav; tem funcionalidade de compartilhar a internet, tanto via USB (que é totalmente plug'n'play em GNU/Linux) quanto via Wifi. São dois dos pontos mais interessantes, a meu ver, mas vamos aos problemas.

O primeiro problema é um simples de entender: falta uma área de transferência. Ter que digitar textos longos em duplicidade ao invés de simplesmente copiá-los de um aplicativo para outro, por exemplo, é algo que irritaria qualquer usuário de desktop. O que dizer então quando falamos de um dispositivo cujo teclado é virtual?

Outro ponto negativo é o cliente de email. O programa, que deve ser bastante competente, tem um bloqueio para servidores de email com certificado SSL autoassinado. Entendo que isso foi feito pensando no usuário leigo, de modo a evitar que se arrisque, mas o que faço eu que utilizo um domínio próprio em hospedagem paga, cujo certificado pode ser comprado, mas a um valor um tanto salgado (para quem quer apenas acessar a própria conta de email)?

A integração de aplicativos com o ambiente ainda está falha. Não sei o quanto deste problema é dos aplicativos e o quanto é do ambiente, mas eles não estão tão entrosados assim. Isso só é realmente necessário em programas de mensagem instantânea, leitores de notícias e programas desse tipo. Para programas assim, é altamente desejável (e esperado) que eles possam ser iniciados automaticamente junto com o Sistema Operacional e nos notifiquem sobre qualquer mensagem chegada (ou ação equivalente).

Outro ponto chato é a falta de poderes que o usuário tem de personalização. Nem mesmo o toque do celular pode ser trocado por um personalizado. Não falo de uma troca meramente, pois ele oferece um leque de toques para escolha, porém não permite que o usuário defina um MP3 ou OGG como o toque.

E, claro, tem os aplicativos. Não há ainda um cliente SIP/Voip. Vários aplicativos são lançados mundo afora (inclusive pelos órgãos do Governo Federal) como se só existissem Android e iPhone no mundo. A percepção da necessidade do uso de HTML 5, creio, só virá quando outros sistemas chegarem ao mercado (ou se, por alguma eventualidade, o Firefox OS crescer assustadoramente em adoção). Claro, isso considerando que eles não trarão truques que permitam rodar aplicativos Android...

Ah, mas há ainda um ponto terrível! A experiência de uso do browser do Firefox OS é muito inferior à experiência de uso do Firefox for Android. O segundo oferece sincronização de dados, suporte a extensões, navegação privativa, enquanto o primeiro não permite sequer escolher qual a ferramenta de busca padrão. Essa falta de recursos é lamentável e, para um usuário antigo do Firefox e que escolheu a plataforma não pela economia mas por ela em si, isso pesa bastante!

Por essas coisas que deixei o Firefox OS de lado, mas o pior é que não só por isso. Alguns desses problemas, sei, já foram até corrigidos em versões posteriores do sistema; com outros dá pra conviver. O principal problema foi fruto da forma como o sistema chegou, ao menos no Brasil (ao menos com a LG). Apesar de o Firefox OS estar na versão 2.1; de ter como última versão estável lançada a 1.4; o Fireweb trouxe a versão 1.1 e a mantém até hoje. A versão 1.2 foi lançada há quase exato 1 ano (9 de dezembro)! Mas a LG não parece ter interesse em atualizar o sistema. Uma simples mensagem que mandei perguntando sobre a atualização levou meses para ser respondida.

Acho que a Mozilla se precipitou no lançamento do Firefox OS, confiando na boa vontade dos parceiros, que não poriam dificuldades para manter o sistema dos clientes atualizado. O compromisso de "repassar as atualizações para os consumidores no máximo 6 meses após a nova versão ser lançada" não está sendo cumprido (e lá se vai um ano). Espero que o plano de a própria Mozilla coordenar as atualizações vingue, pelo bem do sistema, para que não morra na praia.

-- Cárlisson Galdino

P. S.: Mantendo um pouco de "underground", meu novo celular é um Positivo e, até o momento, não tenho do que reclamar. Talvez futuramente veja se há jeito de mudá-lo pra Replicant ou CyanogenMod, mas por enquanto deixa quieto...

P. S. 2: Imagens originais: Earth e Fox.

Lancelot 1.1

Desde a época em que eu estudei Pascal, comecei a fazer do simulador de lances de dados o meu próprio Hello World. Fiz um em Pascal, depois em Delphi. Quando comecei a fazer aplicativos para GNU/Linux, fiz um lançador de dados em Perl+Gtk2, que terminou depois sendo portado para Python+Tkinter. Em JavaScript, claro, fiz um também, que usava como bloco lateral do Bardo WS em uma versão mais antiga do Drupal. Então, para começar a criar aplicativos móveis para Firefox OS, nada melhor do que um lançador de dados. Foi assim que nasceu (de novo) Lancelot!

Lancelot, início

Pois é, já nem lembro quando exatamente comecei com isso de Lancelot, mas deve ter sido bem no início, ainda no mundo Windows, já que a versão em Perl já se chamava xlance. A piada do nome é com o ato de "lançar" dados, ou seja, sem muito valor para quem não conhece Português (ou mesmo para quem conhece, mas enfim...).

As primeiras versões do Lancelot para Firefox OS foram feitas apenas com HTML+CSS+JavaScript, sem nenhuma biblioteca especial. Simples, mas com recursos limitados, até que resolvi testar o jQuery Mobile. Lancelot foi reescrito, tornando-se mais configurável e completo.

Lancelot - segunda geração

Enfim, terminei adotando MooTools como minha biblioteca de estimação. De uma forma mais minimalista, comecei a criar aplicativos apenas com ela mesmo. Assim, Lancelot (for Firefox OS), chegou na sua terceira geração.

Lancelot 1.1

A nova versão do Lancelot (1.1) traz as seguintes características:

  • Conjuntos de dados personalizáveis (1d10, 3d6, 7d253 ou o que você quiser);
  • Rolagem de dados manual (sem salvar, você simplesmente rola);
  • Um gerador simples de nomes aleatórios;
  • Sorteio de carta, naipe, mês e dia da semana.
  • Suporte a dois idiomas (Português e Inglês)
  • Funciona totalmente offline.

Você tem Firefox OS? Testa lá o Lancelot!

RarEfeitos 2.0

Um dos primeiros aplicativos para celular que eu fiz foi o RarEfeitos, um conjunto de "botões" que disparam sons variados. É um gênero bem comum por aí, pelo menos para Android já vi alguns. Não sei se o gênero em si já tem nome, mas se não tiver já tá em tempo de receber um. :-P

Primeira versão do RarEfeitos

No início o RarEfeitos foi desenvolvido usando DHTMLx Touch. A versão mais nova, entretanto, foi refeita usando apenas MooTools. A interface foi recriada do zero. Apesar de ter sido simplificado em termos de bibliotecas e visual, essa nova versão mostra informações rápidas sobre alguns dos sons, além de os botões serem um pouco diferentes, de acordo com a categoria do som: música, efeito sonoro, fala...

RarEfeitos 2.0

É engraçado falar em "desenvolvimento", já que o aplicativo usa menos de 50 linhas de código JavaScript. :-P

No RarEfeitos você encontra no momento 35 sons, com coisas como Topo Gigio, Mumm Rá e Sexo Frágil.

Se você já tem o Firefox OS, dá uma olhada por lá! (e se gostar, avalie!)

Firefox OS e o Marketplace

Market Place

Não dava pro Firefox OS querer competir com Android e iOS sem ter também uma loja de aplicativos, não é mesmo?

Para quem tá por fora do mundo mobile, uma loja de aplicativos é um site de onde a gente pode baixar/instalar aplicativos para o celular. Similar ao "apt-get e companhia" do Debian. Geralmente essas lojas são mantidas pelos fabricantes do Sistema Operacional móvel. A Google Play Store (ou sei lá qual o nome exato hoje em dia), que é a que eu conheço (talvez nem tanto...) começou oferecendo apenas aplicativos, hoje também vende livros e filmes.

A Mozilla Corporation também tem a sua própria loja de aplicativos, o Marketplace, uma loja de aplicativos HTML5 para Firefox OS (e mais além). Eles oferecem aos desenvolvedores a estrutura para publicação dos aplicativos. Há até mesmo uma API para pagamento (embora eu não me lembre de ter visto algum programa pago por lá).

Para publicar um aplicativo lá, você deve decidir como será: empacotado ou hospedado. Um aplicativo hospedado, como o nome sugere, fica em algum site (de sua própria responsabilidade) e rodará no Firefox OS como se fosse uma página do browser, mas com atalho e ícone na lista de aplicativos do celular.

A propósito, cabe um parêntese bacana (não sei se cabe exatamente aqui, mas vamos lá): qualquer página aberta pelo navegador do Firefox OS pode ser transformada em um aplicativo desse tipo. Ao pedir para adicionar como favorito, você escolhe se será um favorito mesmo ou se vai pra página inicial como atalho.

Bom, continuando... Um aplicativo empacotado será um conjunto de arquivos guardados dentro de um zip, que o Sistema Operacional extrairá criando uma pasta nova durante o processo de instalação.

Isso já é batido, mas não custa lembrar: HTML5 muda tudo. Não há com o que se preocupar quanto à necessidade de acesso à Internet o tempo todo ou a certos recursos do dispositivo. Isso está acessível para o programador. Mesmo aplicativos hospedados podem definir cache e armazenamento local, de modo a se tornarem independente de conexão (claro que isso será inútil para certas categorias de aplicativo, como um buscador de twitter, por exemplo).

Agora uma coisa que ainda não falei: esse lance de aplicativos Firefox não é exclusividade do Firefox OS. Funciona em qualquer dispositivo que tenha um Firefox rodando! Bem, nem todos os aplicativos. Os empacotados, pra começo de conversa, não são instaláveis em outros cantos. Mas dá pra instalar aplicativos hospedados no seu Android (usando o navegador Firefox pra Android) ou no Desktop (Windows, Linux...). Mais um ponto pra MoCo (Mozilla Corporation)!

Se não quiser utilizar a loja para distribuir aplicativos para o Firefox OS, tudo bem! Você pode incetivar os internautas a utilizarem o truque dos Favoritos/Aplicativos! Ou pode criar um botão de instalação no próprio aplicativo ou em algum lugar do seu site! Um botão bem simples e o usuário instala o aplicativo sem precisar recorrer à Marketplace.

Agora o que achei mais incrível dessa loja: ela tem seu código liberado! zamboni é o nome da ferramenta, que é escrita usando Django e oferece toda a infraestrutura para os aplicativos serem disponibilizados (além do Marketplace, é o que a MoCo usa para o Addons.Firefox).

Firefox OS é o que temos de mais livre no mercado mobile! E para completar, falta só a MoCo implementar definição de licença por aplicativo (ou a FSF criar sua própria Marketplace para Firefox OS, controlando o licenciamento).

Aproveitando: veja os aplicativos que eu já tenho lá: Lancelot (rolador de dados), Chair37 (gerenciamento de tesouraria de mensalidades) e rarEfeitos (coletânea de sons). Ainda falarei mais deles por aqui futuramente. Por enquanto, quem usar e quiser registrar sua opinião no Marketplace, agradeço. ;-) Também estou com uma pá de ideias para aplicativos (e pouco tempo).

Bem-vinda, Raposa de Fogo

Firefox OS

Quando começou a onda de smartphones, a coisa estava muito obscura (entenda: "fechada"). Eu me lembro de a Microsoft vir tentando há muito tempo emplacar um Windows nos celulares. Quem realmente revolucionou tudo foi a Apple, a mais fechada das gigantes. Uma luz no fim do túnel veio com a Google em seu Android.

Android, o Sistema Operacional livre! Fabricantes começando a adotá-lo e ele crescendo pouco a pouco. Mas espere: alguma coisa estava errado. Código dos fabricantes de hardware e operadoras não era aberto. Nem mesmo todo o código do Google era aberto. O clímax desse mal estar veio com o Android 3, que os criadores se negaram a liberar o código-fonte (e pode?). Pois é, havia algo errado.

Mas há uma saída. Na verdade, várias propostas de saída. As principais até pouco tempo atrás eram o CyangenMod e o Replicant (este último fazendo com o Android mais ou menos o que o Trisquel faz com o Ubuntu). Outras opções estão chegando.

Em 1º de abril de 2011, plantei uma notícia falsa (na onda do Dia da Mentira) sobre a Canonical lançar um Sistema Operacional para competir com o Android. Seria Humanoid. O engraçado é que, apesar de o nome não ser esse, a iniciativa terminou acontecendo. Hoje estamos prestes a receber no mercado (talvez leve algumas semanas ou meses) o Ubuntu Phone.

De outro lado, Sailfish e Tizen estão sendo desenvolvidos. Mas não é disso que venho falar hoje: é do Firefox OS.

Desde que anunciou o projeto, Boot2Gecko (que eu só quero chamar de Gecko2Go), a proposta já era interessante: usar padrões web como linguagem para criação dos aplicativos móveis. Não que isso não viesse sendo feito. A grande diferença é que no Boot2Gecko (hoje Firefox OS), esse é o caminho.

Sabe? Isso me lembra o início de tudo, do Mozilla Suite. Quando a Netscape abriu o código do seu pacote de Internet (que vinha com o Navigator, Composer, Mail...), a turma olhou o código, pensou um pouco e disse: que merda! Resolveram fazer de novo. E como? Eles investiram em padrões web! Criaram uma lingaugem de definição de interface baseada em XML (o XUL), um novo motor (o Gecko) e outras coisinhas mais. Assim nascia o Mozilla Suite, de onde vieram depois o Firefox, Thunderbird e outros birds por aí.

O curioso disso tudo é que ainda no milênio passado, eles investiram em padrões web desse jeito tão intenso. O Mozilla (e o Firefox, por consequência) é apenas um conjunto de bibliotecas em torno do motor Gecko, com a interface toda feita em XML+CSS+JavaScript. Sim, a janela é toda composta desse jeito, as funções básicas também. Para você entender o poder disso tudo, o Chatzilla mesmo é feito inteiramente em XML+CSS+JavaScript, tem precisar de bibliotecas próprias compiladas.

Dito isto, não é tão novidade assim o conceito do Firefox OS. Mas não deixa de ser uma grande ideia. O uso de HTML5 como a linguagem do Firefox OS tem como objetivo incentivar ainda mais o uso de HTML 5 para aplicações mobile. Aplicativos escritos assim são mais facilmente utilizáveis em outros celulares, não ficando necessariamente presos à plataforma da Mozilla. Ah, e para quem está por fora do HTML5, ele suporta cache, armazenamento local e outros truques, ou seja, não é necessário estar conectado para utilizar um aplicativo (depende do aplicativo, claro).

Bem, vamos em frente. Lembra dessa turma toda que eu falei? Segundo tabela comparativa da Wikipedia, o Firefox OS é o único que não tem componentes proprietários. Mais um ponto para ele.

Por que estou falando disso? Bom, com a chegada do Firefox OS no Brasil, graças à Vivo, voltei a me interessar por programar (por diversão mesmo). É divertido escrever programas móveis em HTML5. Agora que tenho finalmente minha própria raposa de fogo, tentarei arrumar tempo para falar dela. Tanto de desenvolvimento, quanto dicas em geral.

Até mais!

Special: