Robert Nyman, evangelista técnico da Mozilla, publicou recentemente um post abordando um pouco da história e lançamento do Firefox OS, desde o anúncio do Boot to Gecko até o momento que surge o Firefox OS; e o estado atual para desenvolvimento e simulação de aplicações.
Em 2011, a Mozilla anunciou o projeto Boot to Gecko (B2G) com o objetivo de criar um sistema operacional completo utilizando as tecnologias abertas da web. A arquitetura do B2G eliminaria a necessidade de utilizar APIs especificas do sistema operacional e permite o desenvolvimento de aplicações usando HTML5.
Durante o desenvolvimento do projeto B2G muitas coisas foram removidas e seu foco foi redefinido. Um dos objetivos do B2G era criar um projeto realmente aberto, portanto desde o primeiro dia o repositório do projeto já estava disponível no GitHub. Nyman comentou:
Na Mozilla acreditamos que podemos fazer um dispositivo completamente aberto, permitindo que qualquer um possa contribuir, pagar, e também inspirar e influenciar outras pessoas na área móvel a fazerem mais dispositivos abertos e poderosos com a Open Web e com preços a um nível realista.
O B2G tornou-se o codinome do Firefox OS porque segundo Nyman:
A ideia do Firefox OS é desenvolver uma plataforma móvel que é completamente aberta, e que disponibiliza muitas possibilidades para os desenvolvedores, parceiros e finalmente os consumidores.
O Firefox OS permitirá que os desenvolvedores utilizem seus conhecimentos sobre desenvolvimento web para criar aplicações, não necessitando aprender uma linguagem especifica para o sistema operacional.
Com o Firefox OS, o objetivo não é fazer os desenvolvedores aprenderem algo do zero, mas sim utilizar e reutilizar as tecnologias existentes da Open Web.
A figura a seguir apresenta a arquitetura do Firefox OS. Esta arquitetura é composta por uma camada da infraestrutura feita pelo Gonk contendo um kernel linux e as bibliotecas de baixo nível; o Gecko é o ambiente de execução que faz a interação entre o Gonk, as Web APIs. A camada de interface da aplicação é controlada pelo Gaia.
A WebAPIs é um conjunto de bibliotecas criada pela Mozilla para fornecer uma alternativa para os desenvolvedores web acessarem os recursos dos dispositivos móveis. Por meio da WebAPI é possível acessar o discador, contatos, câmera, galeria de fotos, geolocalização, entre outros. Na publicação "Usando WebAPIs para fazer a camada web mais eficiente" de Nyman são apresentados vários exemplos de como utilizar o WebAPI.
O Boilerplate App, aplicação de demonstração das funcionalidades do Firefox OS, disponibilizado pela Mozilla facilitará o inicio dos desenvolvedores que pretendem criar aplicações para o Firefox OS. Para emular as aplicações basta instalar o add-ons do simulador no navegador Firefox.
A Mozilla também criou o Firefox Marketplace, que é uma loja virtual para os desenvolvedores publicarem as aplicações para Firefox OS. E segundo Nyman a ideia é que as pessoas possam criar suas próprias lojas virtuais:
É importante entender que não é obrigatório criar uma aplicação e usar o Marketplace - as aplicações podem ser instaláveis de qualquer lugar. Com o passar do tempo, esperamos que outras pessoas possam criar suas próprias lojas virtuais para certos tópicos ou interesses locais.
A Marketplace aceita dois formatos de aplicações: Hospedadas (hosted) na qual a aplicação está publicada na internet, como qualquer outro site; Empacotada (packaged) com todos os recursos (html, css, js, manifest, etc) no formato zip. Há três tipos de aplicações empacotadas: normal, certificada e privilegiada. A diferença básica entre as versões são as APIs que cada uma delas pode utilizar para utilizar as funcionalidades do dispositivo (celular ou tablet).
No wiki da Mozilla é possível encontrar mais informações sobre a arquitetura do B2G. No blog do Nyman, no Mozilla Hacks e no site do Firefox OS também há muita informação sobre o novo SO. Para conhecer mais sobre como desenvolver para o Firefox OS assista a apresentação "Desenvolvendo para o novo Firefox OS" gravada pela InfoQ Brasil durante o Mobile Conf.