Categorias

Análise do Firefox OS, o sistema operacional móvel da Mozilla [review]

Recebemos em nossa redação diretamente da Mozilla o tão aguardado Smartphone da Geeksphone com Firefox OS.

Temos em nossas mãos a versão Developer Preview, portanto ajustes serão feitos até o lançamento comercial.

Este promete ser o grande lançamento de 2013 e vem sendo aguardado por milhares de desenvolvedores no mundo inteiro.

Ao final desta página é possível assistir ao review completo em vídeo.

Neste review iremos analisar a plataforma Firefox OS: como funcionará a Loja de Aplicativos para nós, desenvolvedores; que tipos de apps a plataforma aceitará e como será o processo para submeter aplicações, além de algumas informações importantes para quem quer começar a desenvolver para o novo sistema operacional, uma entrevista exclusiva com o técnico responsável da Mozilla e, finalmente, nossa conclusão.

Primeiros smartphones serão lançados em mercados limitados
Primeiros smartphones serão lançados em mercados limitados

INTRODUÇÃO

O Firefox OS é um sistema operacional móvel aberto, baseado em Linux. Ele foi criado para libertar os desenvolvedores das amarras dos ambientes de tecnologias fechadas. Com o Firefox OS, a Web é a plataforma. É isso mesmo: a ideia da Mozilla foi criar uma plataforma nativa de desenvolvimento de apps móveis utilizando somente HTML 5, CSS e Javascript, ou seja, tecnologia web.

Duas palavras representam bem a ideia toda por trás desta nova plataforma móvel: Simplicidade e liberdade. Me arrisco a dizer que, utilizando somente tecnologia web para desenvolvimento de aplicativos móveis, de forma nativa, esta plataforma antes mesmo do lançamento já possui mais desenvolvedores aptos do que outras plataformas móveis juntas.

Sem dúvida este é o grande diferencial e a forma como este trunfo será utilizado pela empresa será a chave do sucesso.

GEEKSPHONE

Geeksphone foi a primeira na Europa a usar Android em celular
Geeksphone foi a primeira na Europa a usar Android em celular

O modelo que recebemos para review foi desenvolvido pela Geeksphone, companhia espanhola que, desde sua fundação, em 2009, desenvolve e comercializa soluções open source de telefonia móvel. A Geeksphone foi a primeira a distribuir smartphones com Android na Europa, portanto, é uma empresa importante e com vasta experiência no mercado mobile, apesar de ser relativamente nova. Assim, a Mozilla não poderia encontrar melhor parceiro para desenvolver sua plataforma.

Já temos conhecimento também que outras fabricantes estão de olho no sistema operacional, como a Foxconn, principal fornecedora de equipamentos da Apple (como iPhone e iPad) e que tem fábrica no Brasil, que irá desenvolver tablets com o Firefox OS.

FIREFOX OS

Iremos agora falar um pouco mais sobre a plataforma dando ênfase ao desenvolvimento de apps, pois este é o objetivo deste review. Já mencionamos que o Firefox OS é um sistema operacional móvel aberto, baseado em Linux e que também utiliza a tecnologia Gecko.

Gecko, para que não conhece, é uma engine open source escrita em C++ utilizada em softwares pela Mozilla, como seu navegador, o Firefox. Ela é a fornecedora das Web APIs utilizadas para a implementação de tecnologia web nos aplicativos móveis do Firefox OS.

Resumindo, se você já é desenvolvedor web com conhecimento de HTML 5, CSS e Javascript, você já está apto a se tornar um desenvolvedor de aplicativos para a nova plataforma móvel da Mozilla. Simples assim.

Para desenvolver aplicativos no Firefox OS, existe um Modo de Depuração (Debug Mode) que pode ser ativado nas próprias configurações do telefone. Isto, com certeza, é um recurso muito útil para nós.

Confira no vídeo abaixo uma explicação detalhada das opões de depuração que foram adicionadas no modo desenvolvedor:

A Mozilla promete que o sistema terá atualizações a cada 15 dias, que poderão ser baixadas automaticamente via OTA (over the air), assim desenvolvedores poderão testar e renovar suas aplicações quando quiserem. Como recebemos a versão Developer Preview, até o lançamento comercial, novos recursos e soluções de performance / estabilidade são esperados.

Firefox Marketplace
Firefox Marketplace

FIREFOX MARKETPLACE (LOJA DE APLICATIVOS)

O processo de envio de aplicativos para a App Store da Mozilla é relativamente bem simples: cada app é enviado para uma fila de submição e avaliado posteriormente por um membro da equipe Mozilla. Este processo é necessário para garantir que as aplicações não violem as políticas de privacidade da empresa. Afinal, ninguém quer um aplicativo que faça algo no celular sem pedir permissão ao usuário, não é mesmo?

Para aplicativos que utilizarem APIs mais sensíveis, será preciso passar por um processo de validação e assinatura. O tempo de liberação e aprovação dependerá, principalmente, de quantas Web APIs, que controlam o telefone, serão utilizadas no aplicativo.

Já quem quem pretende faturar criando aplicativos, o Firefox Marketplace oferece diversas opções, como: venda de aplicativos por downloads, pagamentos através do próprio app, conhecido como In-app Payments (ideal para assinaturas) e ainda permite que o desenvolvedor adicione propagandas dentro do aplicativo utilizando redes de anúncios disponíveis na web.

Apps em HTML5, CSS e JSAPPS NO FIREFOX OS

Finalmente chegamos no tópico que trata de forma mais direta quais tipos de aplicativos são suportados no Firefox Marketplace e como é possível transformar código web em um aplicativo móvel. É importante reforçar que todo aplicativo criado para o sistema é baseado em tecnologia web, como HTML 5, CSS e Javascript.

Para desenvolver o seu próprio, o primeiro passo é a criação do arquivo manifest (no formato JSON). Este arquivo será o responsável por “transformar” o aplicativo web em um móvel para o Firefox OS. O manifest é essencial também para submeter seu aplicativo ao Marketplace. Nele conterá todas as informações necessárias para que o aplicativo funcione corretamente como:

  • Quais dispositivos o aplicativo está habilitado a rodar;
  • Para qual versão do Firefox OS o aplicativo foi desenhado para rodar;
  • Quais Web APIs são utilizadas no aplicativo;
  • Permissões;

E muitas outras informações como Nome do App, Versão, Nome do Desenvolvedor, etc.

Confira um exemplo de um arquivo manifest:

{
  "name": "Meu Firefox OS App",
  "description": "Esta é uma descrição do que este App faz",
  "launch_path": "/",
  "icons": {
    "128": "/img/icon-128.png"
  },
  "developer": {
    "name": "Nome da Desenvolvedora",
    "url": "https://sitedadesenvolvedora.com"
  },
  "default_locale": "pt"
}

Para mais informações de como criar um arquivo manifest para o Firefox OS, basta seguir este link: https://developer.mozilla.org/en-US/docs/Web/Apps/Manifest. Já para validá-lo, é só acessar a página de Desenvolvedores do Marketplace: https://marketplace.firefox.com/developers/validator.

Existem 3 tipos de Apps no Firefox OS: Host App, Packaged App e Hybrid App.

Os Host Apps ou “Aplicativos Hospedados” são os tipos mais simples de aplicativo que pode ser encontrado. Se você já possui um aplicativo na web, em poucos segundos poderá transformá-lo em um móvel. Para isso, basta criar um arquivo manifest e enviá-lo ao Marketplace. Muito simples não?

Esta, sem dúvida, é a forma mais rápida de se criar um aplicativo móvel, no entanto existem alguns pontos negativos.

Confira os prós e contras dos HOST APPs:

Prós:

  • Fácil e rápido de converter, basta unir o Web App já existente ao arquivo Manifest;
  • Funciona muito bem com frameworks já existentes como Django, Rails, entre outros;
  • Ótimo para desenvolvedores que não tem muita experiência com Front-Ends.

Contras:

  • Não existe o botão de voltar como nos navegadores, portanto pode ser necessário ajustes de navegação no aplicativo;
  • A cada ação do usuário é necessário o carregamento da página de forma síncrona, assim como nos navegadores;
  • Utiliza muita banda para carregamento, portanto a rede Wi-fi precisará funcionar muito bem;
  • Não há suporte para funcionamento offline. O cache do navegador ajuda mas não é uma solução confiável;
  • Este tipo de app pode ser considerado simplesmente um link Favorito (como nos navegadores), pois não trará praticamente nenhuma integração com o smartphone, será simplesmente um site em formato de aplicativo;
  • O carregamento é lento em relação aos aplicativos empacotados, o que atrapalha a experiência do usuário.

Outro tipo de aplicativo suportado é o PACKAGED APPs, ou “Aplicativos Empacotados”: este tipo apresenta inúmeras vantagens em relação aos HOST APPs. O empacotamento consiste em criar um arquivo ZIP contento todos os arquivos estáticos do aplicativo (HTML, CSS, imagens, js, etc) e também o arquivo manifest. Confira as vantagens e desvantagens desse tipo de app:

Prós:

  • Não precisa estar hospedado em nenhum servidor do desenvolvedor, o arquivo ZIP ficará hospedado no próprio Marketplace;
  • A experiência do usuário é fantástica em relação ao HOST APPs por conta do rápido carregamento;
  • Todos os arquivos do aplicativo serão baixados e instalados no smarthphone através do arquivo ZIP;
  • Não é necessária nenhuma rede para que o aplicativo funcione;
  • É possível utilizar as Web APIs internas para acessar a câmera, contatos, sockets, gps, bateria, vibração, etc;
  • Como o aplicativo é instalado, dá a sensação de que é nativo do próprio sistema operacional.

Contras:

  • A atualização do aplicativo é monolítica, isto quer dizer que a cada nova atualização, seja ela grande ou não, será necessário baixar novamente o arquivo ZIP por completo, com todos os arquivos;
  • A comunicação com servidores remotos não é tão mais fácil quanto aos HOST APPs;
  • O processo de submissão dos aplicativos são mais restritos por poderem utilizar APIs de controle do dispositivo.
  • Rodam somente onde são suportados, atualmente Firefox OS e no Firefox para Android.

Já o HYBRID APPs ou “Aplicativos Híbridos”, tecnicamente seria um HOST APP mas que também consegue funcionar como um PACKAGED APP. Esse tipo pode ser considerado uma junção dos pontos positivos dos 2 tipos anteriores. Confira os prós e contras abaixo:

Prós:

  • Experiência do usuário fantástica;
  • Continua sendo um Web App podendo servir conteúdos dinâmicos, utilizando AJAX, por exemplo;
  • Ganha em performance pois os arquivos estáticos não precisarão ser carregados pela rede;
  • Pode ser utilizado de certa forma offline, a rede Wi-fi só será utilizada realmente quando for necessária;
  • Fornece a mesma sensação dos PACKAGED APPs de que é nativo ao sistema operacional.

Contras:

  • Nem todas as APIs estarão disponíveis para utilização.

Agora que você já conhece todos os tipos de aplicativos suportados, escolha qual é a melhor opção para você.

OUTRAS INFORMAÇÕES PARA DESENVOLVEDORES

  • Gráficos:
    Para quem quer desenvolver jogos e necessita de suporte gráfico, o Firefox OS suporta 2d Canvas e WebGL.
  • Áudio e Vídeo:
    Em relação a reprodução de áudio e vídeo, a plataforma suporta formatos como: MP3, MP4 e 3GPP.
  • Proteção de Código:
    Como toda a plataforma de aplicativos é baseada em HTML, CSS e Javascript, o código fonte não será compilado, mas sim aberto. A Mozilla recomenda que o código javascript utilize técnica de embaralhamento de código, conhecido em inglês como obfuscation, o tornando mais difícil de ser roubado.
    Onde for possível, a empresa também recomenda a utilização de um sistema de identificação como o Mozilla Persona, que requisita autenticação antes de fornecer conteúdo importante do backend.
  • IDEs e SDKs:
    Você pode utilizar a sua ferramenta favorita para desenvolvimento, sem problemas. A Mozilla fornece também algumas para facilitar o processo, como o Remote Debuging, o Profiling e o Firefox Simulator.

CONCLUSÕES

Em relação ao Firefox OS propriamente dito, a experiência é bem intuitiva, mesmo sabendo que existem alguns problemas, os quais já são conhecidos pela Mozilla, portanto para a versão comercial acredito que não haverá muitos problemas.

Sobre o desenvolvimento de apps, podemos dizer que é simplesmente incrível. A quantidade de desenvolvedores web que poderão migrar rapidamente para a plataforma é realmente gigante.

Além disso, toda essa arquitetura poderá influenciar, em muito pouco tempo, uma geração de desenvolvedores móveis. Mas será importante para a Mozilla a criação de uma estrutura de suporte a esses desenvolvedores, assim como a constante atualização das APIs e também da plataforma. Acredito que o primeiro passo para o sucesso é o suporte pleno das bibliotecas para o desenvolvimento de jogos.

O ponto negativo desta arquitetura, sem dúvida, é a facilidade com que o código fonte dos aplicativos, escritos em Javascript, podem ser expostos e copiados, mesmo com tecnologia de embaralhamento de código.

Um dos diferenciais prometidos pela Mozilla e parceiros, entretanto, diz respeito ao custo dos aparelhos para o consumidor final: a promessa da empresa é focar em mercados emergentes, com preços realmente acessíveis (a partir de US$100). Só nos resta torcer e esperar.

 
Assista ao review no Youtube


Confira algumas fotos do Firefox OS