Firefox OS para desenvolvedores

Firefox OS para desenvolvedores

keon
Foto via Ars Technica
Andre Alves Garzia, Comunidade Mozilla Brasil, MobileConf 2013, 5 de Abril 2013

A Mozilla é…

uma comunidade global de pessoas que acreditam que abertura, inovação, e oportunidade são fatores fundamentais para o bem estar da Internet.

Somos conhecidos pelo navegador web Firefox

Firefox

O Manifesto Mozilla

  • A Internet é parte integral da vida moderna – sendo um componente chave para a educação, comunicação, colaboração, negócios, entretenimento e para a sociedade como um todo.
  • A Internet deve enriquecer a vida dos seres humanos como indivíduos.
  • A segurança dos indivíduos na Internet é fundamental e não pode ser tratada como opcional.
  • Os indivíduos devem ter a habilidade de moldar suas próprias experiências na Internet.

O Que é o Firefox OS?

O Firefox OS é um novo sistema operacional móvel desenvolvido pelo projeto Boot to Gecko (B2G) da Mozilla. Ele usa o Kernel do Linux e inicializa em um sistema baseado no Gecko que permite que os usuários utilizem apps inteiramente desenvolvidos utilizando HTML, Javascript e outras APIs da Web Aberta.

Arquitetura do Firefox OS

Gaia

Coleção de aplicativos web que fazem a UI

Gecko

Motor de JS e Renderização de HTML, APIs amigáveis para acesso ao hardware

Gonk

Kernel Linux, Device drivers e camada de abstração do hardware

Ferramentas do Desenvolvedor

Firefox OS Simulator

Firefox OS Simulator 3.0

Exemplo de manifesto

        {
          "name": "Meu App",
          "description": "Minha descrição",
          "launch_path": "/",
          "icons": { "128": "/img/icon-128.png" },
          "developer": {
            "name": "Meu nome ou organização",
            "url": "http://sua-pagina-aqui.org"
          }
        }
      

App manifest

Instalando apps a partir da web

        var installapp = navigator.mozApps.install(manifestURL);
        installapp.onsuccess = function(data) {
          // App foi instalada
        };
        installapp.onerror = function() {
         // App não foi instalada, informações em 
         // installapp.error.name
        };
        

Tres níveis de acesso…

  • Apps hospedados - armazenada no seu servidor, fácil de atualizar, acesso ao hardware limitado.
  • Apps privilegiados - verificada pelo Marketplace, utiliza uma Politica de Segurança de Conteúdo, armazenada em um servidor confiável.
  • Apps certificados - parte do sistema operacional, apenas para a Mozilla e parceiros.

Permissões para apps

Web APIs (apps hospedados)

  • Vibration API
  • Screen Orientation
  • Geolocation API
  • Mouse Lock API
  • Open WebApps
  • Network Information API
  • Battery Status API
  • Alarm API
  • Push Notifications API
  • WebFM API / FMRadio
  • WebPayment
  • IndexedDB
  • Ambient light sensor
  • Proximity sensor
  • Notification

Utilizando WebAPIs para tornar a web mais capaz

Web APIs (apps privilegiadas)

  • Device Storage API
  • Browser API
  • TCP Socket API
  • Contacts API
  • systemXHR

Utilizando WebAPIs para tornar a web mais capaz

Web APIs (certified apps)

  • WebTelephony
  • WebSMS
  • Idle API
  • Settings API
  • Power Management API
  • Mobile Connection API
  • WiFi Information API
  • WebBluetooth
  • Permissions API
  • Network Stats API
  • Camera API
  • Time/Clock API
  • Attention screen
  • Voicemail

Utilizando WebAPIs para tornar a web mais capaz

Contacts API

          var contact = new mozContact();
          contact.init({name: "Odin"});
          var request = navigator.mozContacts.save(contact);
          request.onsuccess = function() {
            // contato salvo com sucesso
          };
          request.onerror = function() {
            // não foi possível salvar o contato
          };
        

Web Activities

  • configure
  • costcontrol
  • dial
  • open
  • pick
  • record
  • save-bookmark
  • share
  • view
  • new, exemplo: “websms/sms” or “webcontacts/contact”

https://wiki.mozilla.org/WebAPI/WebActivities

Dando controle para o usuário

Pick activity

Enviando um número para o telefone

        var call = new MozActivity({
          name: "dial",
          data: {
            number: "26091048"
          }
        });
      

Pegando uma imagem do telefone (1/2)

        var getphoto = new MozActivity({
          name: "pick",
          data: {
            type: ["image/png", "image/jpg", "image/jpeg"]
          }
        });
  

Pegando uma imagem do telefone (2/2)

        getphoto.onsuccess = function () {
          var img = document.createElement("img");
          if (this.result.blob.type.indexOf("image") != -1) {
            img.src = window.URL.createObjectURL(this.result.blob);
          }
        };
        getphoto.onerror = function () { // erro!
        };
  

Monetizando tudo isso

  • Você é livre para fazer o que quiser.
  • Você não precisa utilizar o Firefox Marketplace.
  • A API mozPay esta sendo finalizada e permitirá entre outras maravilhas o pagamento via conta telefônica.

Open Web Apps é mais que somente o Firefox OS

Essas apps podem ser instaladas nas seguintes plataformas:

  • Firefox OS.
  • Android via Firefox for Android.
  • Desktop via Firefox Aurora.

Perguntas & Respostas

Obrigado

Red panda (Firefox)
Foto por Yortw