jueves, 21 de noviembre de 2013

Introducción rápida a Firefox OS

La plataforma Firefox OS ofrece a los desarrolladores exactamente lo que querían desde hace años: un entorno móvil dedicado a aplicaciones creadas exclusivamente con HTML, CSS y JavaScript. Esta guía pretende ayudarte a que todo esté listo y funcionando con un entorno y una arquitectura básica de la aplicación para que puedas crear la siguiente gran aplicación.
Si deseas continuar leyendo esta guía, puedes descargar la aplicación de la introducción rápida.

Estructura de las aplicaciones

Aplicaciones empaquetadas en comparación a aplicaciones alojadas

Existen dos tipos de aplicaciones Firefox OS: empaquetadas y alojadas. Las aplicaciones empaquetadas son principalmente un archivo zip que contiene todos los recursos de un aplicación: HTML, CSS, JavaScript, imágenes, archivo manifest, etc. Las aplicaciones alojadas se ejecutan desde un servidor de un determinado dominio, igual que una página web. Los dos tipos de aplicación necesitan un archivo manifest válido. Cuando quieras incluir tu aplicación en Firefox Marketplace, deberás cargar la aplicación como si fuera un archivo zip o proporcionar la dirección URL en la que se aloja la aplicación.
Hecho en colaboración con nuestros amigos de Treehouse¡Pruébalos!

A efectos de la presente guía, vas a crear una aplicación alojada que estará activa en la dirección de tu localhost. Una vez que esté lista y se pueda mostrar en Firefox Marketplace, puedes decidir si la incluyes como aplicación empaquetada o la publicas como aplicación alojada.

Archivos manifest de las aplicaciones

En todas las aplicaciones para Firefox es necesario tener un archivo manifest.webapp en el directorio raíz de la aplicación. El archivo manifest.webapp contiene información importante sobre la aplicación, como por ejemplo su versión, nombre, descripción, ubicación del icono, cadenas de la versión en otros idiomas y dominios desde los que se puede instalar la aplicación, además de otros muchos más datos (sólo el nombre y la descripción son obligatorios). El archivo manifest incluido en la plantilla de aplicación es muy sencillo y contiene la siguiente información:
{
    "version": "0.1",
    "name": "Your App",
    "description": "Your new awesome Open Web App",
    "launch_path": "/index.html",
    "icons": {
        "16": "/img/icons/mortar-16.png",
        "48": "/img/icons/mortar-48.png",
        "128": "/img/icons/mortar-128.png"
    },
    "developer": {
        "name": "Your Name",
        "url": "http://yourawesomeapp.com"
    },
    "installs_allowed_from": ["*"],
    "locales": {
        "es": {
            "description": "Su nueva aplicación impresionante Open Web",
            "developer": {
                "url": "http://yourawesomeapp.com"
            }
        },
        "it": {
            "description": "Il vostro nuovo fantastico Open Web App",
            "developer": {
                "url": "http://yourawesomeapp.com"
            }
        }
    },
    "default_locale": "en",
    "permissions": {
        "systemXHR": {}
    }
}
Hecho en colaboración con nuestros amigos de Treehouse¡Pruébalos!

A medida que el proyecto va avanzando y llegando a su fin, se va añadiendo más información, que es el caso de la mayoría de las aplicaciones para Firefox OS. Para empezar puedes utilizar un archivo manifest básico.

Diseño y apariencia de las aplicaciones

El diseño adaptativo se ha convertido en una pieza importante puesto que cada vez más resoluciones de pantalla son estándar en distintos dispositivos. Incluso si tu aplicación sólo está pensada para Firefox OS, es importante tener presente que Firefox OS se puede instalar en distintos dispositivos con diferentes resoluciones. Una consulta de medios CSS proporciona el medio para adaptar el diseño al dispositivo:
/* The following are examples of different CSS media queries */

/* Basic desktop/screen width sniff */
@media only screen and (min-width : 1224px) {
  /* styles */
}

/* Traditional iPhone width */
@media
  only screen and (-webkit-min-device-pixel-ratio : 1.5),
  only screen and (min-device-pixel-ratio : 1.5) {
  /* styles */
}

/* Device settings at different orientations */
@media screen and (orientation:portrait) {
  /* styles */
}
@media screen and (orientation:landscape) {
  /* styles */
}
Existen multitud de marcos JavaScript y CSS disponibles que te pueden ayudar en el diseño adaptativo y desarrollo de aplicaciones móviles (Bootstrap, etc.): elige uno o varios marcos que se adapten perfectamente a tu aplicación y estilo de desarrollo.
Una utilidad muy buena es mortar de Mozilla. Mortar no te proporciona ayuda con el diseño adaptativo, pero sí te ofrece para las plantillas de aplicaciones una serie de utilidades que facilitan el desarrollo para dispositivos móviles Firefox OS, como zepto.js (una alternativa más ligera a jQuery) y una utilidad que instala tu aplicación en Firefox OS Simulator. Esta guía rápida te proporciona la plantilla de diseño más básica de mortar:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">

    <title>My App</title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width">

    <!-- Place favicon.ico in the root directory -->

    <link rel="stylesheet" href="css/app.css">
  </head>
  <body>
    <!-- Use this installation button to install locally without going
         through the marketpace (see app.js) -->
    <button id="install-btn">Install</button>

    <!-- Write your application here -->



    <!-- Using require.js, a module system for javascript, include the
         js files. This loads "init.js", which in turn can load other
         files, all handled by require.js:
         http://requirejs.org/docs/api.html#jsfiles -->
    <script type="text/javascript" data-main="js/init.js" src="js/lib/require.js"></script>
  </body>
</html>
Modifica la estructura establecida por mortar todo lo que quieras: el snippet de arriba te ayudará a comenzar. Ten en cuenta que todo el código JavaScript debe incluirse en archivos .js individuales: no se permite insertar código en línea (atributos) ni en etiquetas script.

Web API

Se están creando y mejorando API de JavaScript a la misma velocidad que los dispositivos. Este esfuerzo que Mozilla está realizando con la WebAPI supone incorporar a las API de JavaScript docenas de características estándares para dispositivos móviles. Hay una lista que detalla el estado y la compatibilidad con los distintos dispositivos accesible desde la página de WebAPI. Por supuesto, la detección de características de JavaScript continúa siendo la mejor práctica:
// If this device supports the vibrate API...
if('vibrate' in navigator) {
    // ... vibrate for a second
    navigator.vibrate(1000);
}
En esta plantilla de aplicaciones tan básica vamos a modificar el estilo de presentación de un DIVbasado en los cambios del estado de la batería del dispositivo:
// Create the battery indicator listeners
(function() {
  var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery,
      indicator, indicatorPercentage;

  if(battery) {
    indicator = document.getElementById('indicator'),
    indicatorPercentage = document.getElementById('indicator-percentage');

    // Set listeners for changes
    battery.addEventListener('chargingchange', updateBattery);
    battery.addEventListener('levelchange', updateBattery);

    // Update immediately
    updateBattery();
  }

  function updateBattery() {
    // Update percentage width and text
    var level = (battery.level * 100) + '%';
    indicatorPercentage.style.width = level;
    indicatorPercentage.innerHTML = 'Battery: ' + level;
    // Update charging status
    indicator.className = battery.charging ? 'charging' : '';
  }
})();
En la muestra de código que aparece arriba, una vez que confirmes que la API de la batería es compatible, puedes agregar escuchas de eventos para que chargingchange y levelchange actualicen la visualización del elemento.
¡Vista con frecuencia la página WebAPI para mantenerte al día sobre los estados de las API de dispositivos!

WebRT API (API basadas en permisos)

Hay disponibles una serie de WebAPI que solicitan permisos para que se active esa determinada característica. Las aplicaciones registrarán las solicitudes de permisos en el archivo manifest.webapp:
// New key in the manifest: "permissions"
// Request access to any number of APIs
// Here we request permissions to the systemXHR API
"permissions": {
    "systemXHR": {}
}
Una vez que hayas instalado tu aplicación en Firefox OS Simulator, abre losAjustes, seleccionaPermisos de aplicaciones, selecciona tu aplicación y activa los permisos que quieras. Es importante tener en cuenta que no todas las Web API se hallan implementadas en Firefox OS Simulator.

Herramientas y pruebas

Llevar a cabo pruebas es extraordinariamente importante cuando se trata de la compatibilidad de dispositivos móviles. Existen muchas opciones para realizar pruebas de las aplicaciones para Firefox OS:

Simulador de Firefox OS

La forma más fácil de tener tu aplicación lista y funcionando es instalar y utilizar Firefox OS Simulator. Una vez finalizada la instalación del simulador, se puede acceder a él a través de Herramientas -> Desarrollador web -> Menú Firefox OS Simulator. El simulador se inicia con una consola JavaScript que te permite depurar tu aplicación desde el mismo simulador.

Pruebas unitarias

Las pruebas unitarias son extremadamente valiosas cuando se realizan sobre diferentes dispositivos y versiones. QUnit de jQuery es una utilidad de pruebas popular para el lado del cliente, pero puedes usar cualquier combinación de herramientas de prueba que desees.

Instalar Firefox OS en un dispositivo

Como Firefox OS es una plataforma de código abierto, el código y las herramientas están disponibles para desarrollar e instalar Firefox OS en tu propio dispositivo. Las instrucciones sobre desarrollo e instalación se encuentran en MDN. Los dispositivos prototipo de Firefox OS estarán disponibles próximamente enGeeksphone.

Envío y distribución de aplicaciones

Una vez que completes la aplicación, puedes enviarla a Firefox Marketplace. Se validará el archivo manifest de tu aplicación y podrás elegir con qué dispositivos será compatible la aplicación (Firefox OS, Firefox de escritorio, Firefox para Android). Una vez validada, puedes incluir otros detalles sobre ella (capturas de pantalla, descripciones, precio, etc.) y enviarla de manera oficial para que aparezca en las listas de Marketplace. Una vez aprobada, tu aplicación está disponible para que el mundo entero la compre y la instale.

Fuente: Mozilla Hub
Articulo bajo licéncia creative Commons v3.0
Categories: ,

0 comentarios:

Vistas de página en total