<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

	<channel>
		<title>Magazine - desarrollo-aplicaciones-moviles</title>
		<link>http://www.genbetadev.com</link>
		<description>
Información sobre el sector de los desarrolladores, el desarrollo de aplicaciones, para móviles, desarrollo web, bases de datos, frameworks y lenguajes de programación		</description>
		<pubDate>2013-05-22 13:56:34</pubDate>

		<generator>http://www.genbetadev.com</generator>
                    <item>
      <title><![CDATA[Android Studio: desarrollando para Android]]></title>
      <link>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/android-studio-desarrollando-para-android</link>
      <guid>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/android-studio-desarrollando-para-android</guid>
      <pubDate>Tue, 21 May 2013 09:36:08 +0000</pubDate>

      <author>calendamaia</author>
      <description><![CDATA[
      <p><img alt=""Android Studio - IDE para Android" src="http://img.genbetadev.com/2013/05/Android Studio - IDE para Android-1.png" class="centro_sinmarco" /></p>

	<p><strong>Google</strong> está trabajando en <strong>Android Studio</strong>, que será una plataforma de desarrollo de aplicaciones para <strong>Android</strong>. En este momento se encuentra en su versión 0.1, y está disponible para que cualquiera pueda descargarla (ver apartado de enlaces al final del artículo).</p>

	<p>Android Studio se basa en el aclamado <strong>IntelliJ</strong> <span class="caps">IDEA</span> Community Edition de la compañía JetBrains. Por ahora no es más que una versión preliminar, pero seguro que el poder probarla hará las delicias de los curiosos. Los amantes de <strong>Eclipse</strong> tienen además el plugin <strong><span class="caps">ADT</span></strong>, que seguramente ya muchos estarán usando.<br />
<!--more--><br />
El desarrollo de Google está siendo realizado con una estrecha colaboración de JetBrains, proporcionando al producto las características desarrolladas por ambas. Esto, seguramente en un futuro próximo, atraerá a muchos programadores hacía la plataforma IntelliJ <span class="caps">IDEA</span>.</p>

	<p>En breve, mi compañero <a href="http://www.genbetadev.com/autor/durbon/2">Txema Rodríguez</a> os ampliará esta noticia con un reportaje exhaustivo del producto. ¡Permaneced atentos!.</p>

	<p>Más información | <a href="http://developer.android.com/sdk/installing/studio.html#download">Android Studio</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Glimpse: prueba aplicaciones para iPhone en Chrome ]]></title>
      <link>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/glimpse-prueba-aplicaciones-para-iphone-en-chrome</link>
      <guid>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/glimpse-prueba-aplicaciones-para-iphone-en-chrome</guid>
      <pubDate>Sat, 18 May 2013 03:31:17 +0000</pubDate>

      <author>calendamaia</author>
      <description><![CDATA[
      <p><img alt="Glimpse - plugin para Chrome - iPhone" src="http://img.genbetadev.com/2013/05/Glimpse - plugin para Chrome-1.png" class="centro_sinmarco" /></p>

	<p><strong>Arc90</strong> nos trae esta interesante extensión de Chrome que hace que podamos ver, de forma muy rápida, cómo quedaría nuestra aplicación en un teléfono <strong>iPhone</strong>. <strong>Glimpse</strong> es un producto pensado para ver los resultados de forma inmediata y ágil. </p>

	<p>No se le puede pedir tampoco demasiado, ya que páginas muy complejas (pongamos por ejemplo facebook) fallan, debemos tener muy en cuenta por tanto esta carencia.<br />
<!--more--><br />
<h3>¿Cómo se usa?</h3><br />
El funcionamiento de <strong>Glimpse</strong> es muy sencillo. Una vez instalado (a través de la tienda de Chrome), aparecerá una &#8220;G&#8221; en la barra de herramientas de Chrome, que nos permitirá acceder con un solo click a un navegador Web, que por defecto cargará la versión del site para móviles:<br />
<img alt="Glimpse - aspecto del navegador y detalle de la G de acceso" src="http://img.genbetadev.com/2013/05/Glimpse-extensión para chrome.png" class="centro" /></p>

	<p>Sólo tendremos que escribir la <span class="caps">URL</span> correspondiente en la caja de texto proporcionada a tal efecto, y rápidamente obtendremos la visualización que tendríamos en un  iPhone, y lo haríamos en un navegador no móvil. Sin más complicaciones ni pretensiones.</p>

	<p>Arc90 ha publicado este plugin bajo la licencia Apache 2.0, con código abierto, pudiendo acceder al repositorio a través de Github. </p>

	<p>Más información | <a href="https://chrome.google.com/webstore/detail/glimpse/mlkphfapecjniljjgjbcbopfgcjdmche">Glimpse en la Chrome Web Store</a> | <a href="http://lab.arc90.com/">Arc90</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Publicar aplicaciones en el Marketplace para Firefox OS y demás plataformas: gratis y fácil]]></title>
      <link>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/publicar-aplicaciones-en-el-marketplace-para-firefox-os-y-demas-plataformas-gratis-y-facil</link>
      <guid>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/publicar-aplicaciones-en-el-marketplace-para-firefox-os-y-demas-plataformas-gratis-y-facil</guid>
      <pubDate>Fri, 10 May 2013 05:01:26 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="Como publicar una app en el Marketplace" src="http://img.genbetadev.com/2013/05/Desarrolladores---Firefox-Marketplace.jpg" class="centro_sinmarco" /></p>

	<p>La <strong>Fundación Mozilla</strong> ha dejado claro desde el principio con <a href="http://www.genbetadev.com/tag/firefox-os"><strong>Firefox OS</strong></a> que harían lo posible para hacer un gran ecosistema y <strong>no querían lucrarse con ello</strong>, como bien demuestran permitiendo enviar de forma gratuita a cualquier persona una aplicación al Marketplace (a diferencia de las tiendas de otros sistemas operativos móviles).</p>

	<p>Tras ver como <a href="http://www.genbetadev.com/tag/desarrollando-en-firefox-os">desarrollar una <em>app</em></a> para este nuevo sistema móvil <strong>basado en HTML5</strong> y como hacer las <a href="http://www.genbetadev.com/desarrollo-aplicaciones-moviles/hacer-aplicaciones-web-instalables-en-firefox-os-y-android">aplicaciones instalables</a> sin pasar por el Marketplace toca ver como es de fácil subir nuestra propia <em>app</em>.<br />
<!--more--><br />
<h2>Validar la aplicación </h2></p>

	<p>Lo primero que debemos de hacer cuando hemos terminado la aplicación es validar el archivo <code>manifest.webapp</code>, ya sea mediante la <a href="https://marketplace.firefox.com/developers/validator">herramienta de validación del Marketplace</a> o con la reciente versión <em>3.0</em> del <a href="https://developer.mozilla.org/en-US/docs/Tools/Firefox_OS_Simulator">simulador de Firefox OS</a> que verifica las aplicaciones que instalamos en el.</p>

<h2>Mandar la aplicación</h2>

	<p>Para mandar nuestra aplicación tenemos que ir a la <a href="https://marketplace.firefox.com/developers/">zona de desarrolladores del Marketplace</a> y acceder a la sección de enviar una aplicación (teniendo una cuenta de Mozilla Persona, <a href="http://www.genbetadev.com/desarrollo-web/mozilla-persona-nos-garantiza-un-futuro-con-una-contrasena">del que ya comentamos un poco su funcionamiento</a>).</p>

	<p>La primera opción es la del tipo de dispositivo donde distribuiremos nuestra <em>app</em>, pudiendo elegir entre Firefox OS, Firefox para Android (diferenciados por Smartphone y Tablet) y por último en Firefox de escritorio y poder distribuir nuestra aplicación en Windows, Linux y Mac. Tras esta elección podemos especificar la <span class="caps">URL</span> del archivo <code>manifest.webapp</code> o directamente subir un archivo empaquetado para que sea validado y nos den el visto bueno al manifiesto de la aplicación.</p>

	<p><img alt="Marketplace" src="http://img.genbetadev.com/2013/05/Sin-título-1-1.jpg" class="centro_sinmarco" /></p>

	<p>Tras este trámite tendremos que dar más detalles sobre la aplicación, como hacer un resumen de su funcionamiento, enmarcarlo en alguna categoría, exponer nuestra política de privacidad y algunos datos más.</p>

<h2>Parte interna del Marketplace</h2>

	<p>Tras haber enviado nuestra primera aplicación nos encontraremos con la lista de aplicaciones enviadas (estén aceptadas o no), donde podremos realizar cambios en sus datos, que hemos introducido anteriormente y además podremos gestionar varias cosas más.</p>

<ul><li><strong>Administrar miembros del equipo:</strong> podemos añadir a cualquier persona y puede tener el rol de <strong>desarrollador</strong> (pudiendo modificar cualquier dato de la <em>app</em> menos poder añadir o quitar usuarios del equipo), <strong>visualizador</strong> (que puede ver la información de la aplicación) o <del>asistencia</del> (que puede ver la configuración de la aplicación y gestionar los reembolso), sin olvidar al <strong>propietario</strong> que puede gestionar todos los aspectos de la <em>app</em>.</li><li><strong>Administrar la compatibilidad:</strong> podemos cambiar las plataformas donde poder descargar la aplicación y cambiar los países donde se distribuirá (actualmente solo permite a unos cuantos países hispanohablantes, probablemente gracias a la influencia de Telefónica y Estados Unidos y Polonia).</li><li><strong>Estadísticas:</strong> también tenemos un apartado donde ver las estadísticas de las aplicaciones.</li></ul>

	<p><img alt="Estadísticas del Marketplace" src="http://img.genbetadev.com/2013/05/Screen-Shot-2013-05-08-at-12.56.jpg" class="centro_sinmarco" /></p>

	<p>La imagen anterior es del sistema interno del Marketplace, que los chicos de la <a href="http://www.mozilla-hispano.org/">comunidad de Mozilla Hispano</a> me han enviado amablemente, ya que la aplicación que hemos analizado su desarrollo en estos artículos (la del test de vibración) está <a href="https://marketplace.firefox.com/app/TestDeVibracion/">pendiente de ser aprobada</a>.</p>

<h2>Tiempo de tramitación</h2>

	<p>Desde Mozilla nos comentan que los tiempos de aprobación de las aplicaciones que no requieren permisos (es decir, no son más que una página web) tienen poco tiempo de demora, pero con las aplicaciones que solicitan permisos especiales se analizan exhaustivamente para evitar malos usos por parte de los desarrolladores.</p>

	<p>En Genbeta Dev | <a href="http://www.genbetadev.com/tag/desarrollando-en-firefox-os">Desarrollo en Firefox OS</a><br />
Más información | <a href="https://marketplace.firefox.com/developers/">Developer Hub &#8211; Firefox Marketplace</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Nueva plataforma de desarrollo mobile: Nokia Asha ]]></title>
      <link>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/nueva-plataforma-de-desarrollo-mobile-nokia-asha</link>
      <guid>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/nueva-plataforma-de-desarrollo-mobile-nokia-asha</guid>
      <pubDate>Thu, 09 May 2013 16:00:17 +0000</pubDate>

      <author>Juan Quijano</author>
      <description><![CDATA[
      <p><img alt="Nokia Asha" src="http://img.genbetadev.com/2013/05/Nokia_Asha.jpg" class="centro" /></p>

	<p>Nokia acaba de realizar <strong>un movimiento estratégico muy interesante</strong> al presentar un nuevo móvil de gama muy económica: el Asha 501.</p>

	<p>Un pequeño smartphone que es capaz de aguantar la batería más de 40 días, y en el que lo más interesante, desde el punto de vista de desarrollo, es la incorporación de la nueva plataforma de software Nokia Asha, la cual se ha construido sobre la tecnología de las Series 40.</p>

	<p><!--more--></p>

	<p>Así se incluye en la plataforma una nueva VM de Orange &#8211; <strong>el desarrollo se sigue realizando en J2ME</strong>; un nuevo Asha UI; el <span class="caps">API</span> de Mobile Internationalization (<span class="caps">JSR</span>-238); y <span class="caps">API</span>s específicos de Nokia para notificaciones, selección de archivos, escalado de imágenes, estado de la red, contactos y acceso a la configuración del teléfono.</p>

	<p>Con respecto a la parte de Web Apps, se usa Gecko como plataforma de rendering, nuevos <span class="caps">API</span>s de UI, captura de fotos y videos.</p>

	<p>Puesto en contacto con un representante de Nokia España, ha comentado que la plataforma ha sido creada para poder ofrecer a los usuarios <strong>una experiencia de calidad en Smartphone por debajo de los 100$</strong>, y facilitar a los desarrolladores una plataforma para crear aplicaciones con un rendimiento óptimo sobre estos teléfonos.</p>

	<p>La experiencia de usuario que ofrece el teléfono ha sido rediseñada para pantallas de 3&#8221; y el UI usa la navegación basada en el concepto de swipe &#8211; arrastrar las pantallas con el dedo para pasar de unas a otras.</p>

<blockquote>El teléfono estará disponible a partir de Junio en 90 países, de momento no se han especificado cuales son. Así que habrá que esperar para averiguar si España está en esta lista de países. Oscar Gutierrez Isiegas, DX Breadth Manager -Spain</blockquote>

	<p>Preguntado de la posible competencia con modelos de la gama de entrada de Lumia, ha comentado que el Asha 501 y la plataforma de desarrollo están muy enfocados a smartphones de bajo precio con lo que no es competencia directa con el Nokia 520, que está un punto por encima.</p>

	<p>En resumen, <strong>una nueva tecnología de desarrollo</strong> para divertirnos aprendiendo.</p>

	<p>Más información | <a href="http://www.developer.nokia.com/Develop/asha/">Nokia developer Asha</a><br />
En Xataka | <a href="http://www.xataka.com/moviles/nokia-asha-501">Nokia Asha 501</a> <br />
En Xatakamovil | <a href="http://www.xatakamovil.com/nokia/nokia-asha-501-toda-la-informacion">Nokia Asha 501, toda la información</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Hacer aplicaciones web instalables en Firefox OS y Android]]></title>
      <link>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/hacer-aplicaciones-web-instalables-en-firefox-os-y-android</link>
      <guid>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/hacer-aplicaciones-web-instalables-en-firefox-os-y-android</guid>
      <pubDate>Wed, 08 May 2013 05:05:33 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="Instalando aplicaciones web en Firefox OS" src="http://img.genbetadev.com/2013/05/instalando.jpg" class="centro_sinmarco" /></p>

	<p>Tras entrar de lleno en <a href="http://www.genbetadev.com/desarrollo-aplicaciones-moviles/como-empezar-a-desarrollar-para-firefox-os">las bases del desarrollo de <strong>Firefox OS</strong></a> toca convertir las aplicaciones web en aplicaciones instalables para Firefox OS, Firefox para Android o Firefox de escritorio.</p>

	<p>Y es que estas aplicaciones también se pueden instalar en nuestro móvil con Android o nuestro Escritorio igual que lo hacemos en Firefox OS, simplemente tenemos que poner en uso el <code>manifest.webapp</code> y la <span class="caps">API</span> para la instalación de aplicaciones web de Mozilla.<br />
<!--more--><br />
<h2><span class="caps">API</span> para la instalación</h2></p>

	<p><img alt="Aplicacion instalada con Firefox" src="http://img.genbetadev.com/2013/05/Sin-título-1.jpg" class="derecha_sinmarco" /></p>

	<p>Mozilla ha creado una <span class="caps">API</span> para la instalación de aplicaciones web que aún no es estándar pero podemos usar perfectamente con Firefox, que es lo importante en este caso.<br />
En la <span class="caps">API</span> disponemos de cuatro funciones que nos sirven leer los datos de la aplicación instalada que está en uso, la información de las aplicaciones instaladas desde el Marketplace y un par de funciones para instalar una aplicación que está alojada en un servidor web o una que está empaquetada (en formato <code>.zip</code>).</p>

<h2>Instalar la aplicación</h2>

	<p>Tenemos dos funciones para la instalación, pero ambas actúan igual, tras ser llamadas se valida la aplicación (examinando el <code>manifest.webapp</code>, asegurando que estén los datos correctos y los archivos relacionados presentes y comprueba que se tiene acceso para instalar la aplicación), posteriormente se le pide permiso al usuario para instalar la aplicación y por último se instala y genera los iconos para acceder a la <em>app</em> (esto pasa en todas las plataformas).</p>

	<p>Podemos acceder a la <span class="caps">API</span> con <code>window.navigator.mozApps</code>, donde encontramos la función <em>install()</em>, que nos permite establecer la <span class="caps">URL</span> del <code>manifest.webapp</code> y establecer uno o más recibos de compra (en el caso de ser una aplicación de pago).</p>

<pre class="prettyprint"><code>var instalar = window.navigator.mozApps.install(url, [recibos de aplicaciones de pago]);</code></pre>

	<p>Tras hacer la instalación podemos comprobar si se ha realizado correctamente o no con el evento <code>onsuccess</code> u <code>onerror</code> que genera la petición de instalación.</p>

<pre class="prettyprint"><code>function install(){
	var instalar = window.navigator.mozApps.install(&quot;http://vibracion.firefoxos.xitrus.es/manifest.webapp&quot;)
	instalar.onsuccess = function () {
		alert(&#39;Instalado correctamente.&#39;)
	}
	instalar.onerror = function () {
		alert(&#39;Error en la instalación (&#39;+this.error.name+&#39;)&#39;)
	}
}</code></pre>

	<p>Otra opción que tenemos es usar la función <code>installPackage()</code> que funciona igual que la anterior función pero en la <span class="caps">URL</span> debemos de establecer un paquete <code>.zip</code> con el <code>manifest.webapp</code> y todos los archivos de la aplicación web.</p>

<pre class="prettyprint"><code>var instalar = window.navigator.mozApps.installPackage(url);</code></pre>

<h2>Saber la información de la aplicación</h2>

	<p>También puede que nos haga falta saber datos del manifiesto en el uso de la aplicación, por eso disponemos de la función <code>getSelf()</code> que nos devuelve, si no se produce algún error, todo el objeto <span class="caps">JSON</span> del <code>manifest.webapp</code>.</p>

	<p>En este ejemplo usaremos el supuesto <code>manifest.webapp</code> del <a href="http://www.genbetadev.com/desarrollo-aplicaciones-moviles/como-empezar-a-desarrollar-para-firefox-os">primer artículo sobre como desarrollar para Firefox OS</a>.</p>

<pre class="prettyprint">var appInfo = window.navigator.mozApps.getSelf();
//Accedemos al manifest.webapp
alert(appInfo.manifest.name)			// &#8220;Vibración&#8221;
alert(appInfo.manifest.developer.name)		// &#8220;Pedro Gutiérrez&#8221;<code></code></pre>

<h2>Resumen</h2>

	<p>Hacer las aplicaciones instalables no es complicado, pero tenemos que tener en cuenta que al instalarla no aseguramos que se pueda ver sin conexión a Internet, simplemente se crea el acceso directo y se otorga permisos si es necesario a la aplicación, por lo que deberíamos de usar la caché de HTML5 para que estas páginas se guardasen localmente.</p>

	<p>En Genbeta Dev | <a href="http://www.genbetadev.com/tag/desarrollando-en-firefox-os">Desarrollo en Firefox OS</a><br />
Más información | <a href="https://developer.mozilla.org/en-US/docs/JavaScript_API">Mozilla</a></p>

	<p><script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script><br />
<script>addEventListener(&#8216;load&#8217;,function(event){prettyPrint()},false);</script></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Empezando a diseñar en Firefox OS, pautas básicas y uso de la UI ]]></title>
      <link>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/empezando-a-disenar-en-firefox-os-pautas-basicas-y-uso-de-la-ui</link>
      <guid>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/empezando-a-disenar-en-firefox-os-pautas-basicas-y-uso-de-la-ui</guid>
      <pubDate>Fri, 03 May 2013 05:00:16 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img alt="Pruebas de diseño en Firefox OS" src="http://img.genbetadev.com/2013/05/capturas.jpg" class="centro" /></p>

	<p>Diseñar en <strong>Firefox OS</strong> es muy simple, teniendo en cuenta que las aplicaciones están hechas con <strong>HTML5</strong> y <strong>CSS3</strong>, la única diferencia es que disponemos  de una UI que nos recomiendan usar y que podemos establecer el logo de la aplicación, en este aspecto se asemeja a las <em>apps</em> de Chrome.</p>

	<p><strong>Mozilla</strong> ha puesto a nuestro disposición todos los bloques de la UI de Firefox OS, que incluyen botones, interruptores, cabeceras, menús y algunas cosas más, que pueden ser usadas en cualquier proyecto (no depende de Firefox OS) y vamos a poner en práctica.<br />
<!--more--></p>

<h2>Recomendaciones de diseño</h2>

	<p>Antes de nada vamos a repasar unos fundamentos básicos del desarrollo de aplicaciones móviles:</p>

<ul><li>Debemos de ser directos y concisos, expresando lo que se quiere decir con pocas palabras para evitar que el usuario ignore el mensaje y decida abandonar la tarea o continuar sin más.</li><li>Marcar bien los pasos que debe seguir el usuario, con iconos preferentemente, que describan las acciones a tomar.</li><li>Si hay alguna acción que tardará en realizarse como descargar información o hacer cálculos largos es recomendable avisar al usuario con un símbolo de descarga o de cargando para evitar que el usuario interprete que la aplicación ha dejado de funcionar.</li><li>Hay que minimizar la escritura en la aplicación, ya que escribir en un móvil es mucho más pesado que en un ordenador, y para ello es recomendable usar <code>checkbox</code>, botones, selectores y otros recursos simples.</li></ul>

<h2>Icono de la aplicación</h2>

	<p><img alt="dimensiones icono firefox os" src="http://img.genbetadev.com/2013/05/Firefox OS app icons   Guía de Estilo   Mozilla mozilla.org.png" class="derecha" /></p>

	<p><a href="http://www.genbetadev.com/desarrollo-aplicaciones-moviles/como-empezar-a-desarrollar-para-firefox-os">En el artículo anterior</a> vimos como establecer el icono de la aplicación (pudiendo establecer varios tamaños), pero ahora vamos a entrar en el diseño del mismo, que viene también con instrucciones por parte de Mozilla.</p>

	<p>Hay tres cosas ha tener en cuenta en el icono: la primera es que se mostrará con unas dimensiones de <strong>60&#215;60 píxeles</strong>, que es preferible usar un icono circular o con las esquinas redondeadas y que además el propio sistema añadirá una sombra a la forma del icono.</p>

	<p><img alt="Logotipo Genbeta" style='margin-top:5px' src="http://img.genbetadev.com/2013/05/logo-60.png" class="izquierda_sinmarco" /></p>

	<p>A lo largo de este artículo iremos creando una aplicación que solo tiene la intención de probar la UI proporcionada por Mozilla y tendrá como icono el logotipo de <strong>Genbeta</strong> (la caja con un mundo y la letra <em>beta</em>, que tiene más <em>sustancia</em> que el logotipo de <strong>Genbeta Dev</strong>).</p>

	<p>Para el icono de la aplicación nos proporcionan <a target='_blank' href="http://www.mozilla.org/en-US/styleguide/products/firefoxos/icons/">diversos archivos <code>.psd</code> y <code>.png</code></a> para crear un icono circular, como será nuestro caso, o usar un icono que no es circular y ponerlo sobre una base que nos proporcionan.</p>

	<p><img alt="Creación del icono de la aplicación para Firefox OS" src="http://img.genbetadev.com/2013/05/creacion-logo-1.jpg" class="centro_sinmarco" /></p>

	<p>Este sería el modelo de icono que pretenden que sea el estándar, aunque también proponen el círculo con elementos que sobresalgan, como el propio símbolo de Firefox (es un círculo pero la cola y las orejas del zorro sobresalen). Pero si aún así no queremos adaptarnos a un círculo podemos tomar las otras dos referencias que nos proponen, ambas son formas cuadradas, la primera de <code>54x54</code> y <code>8px</code> de radio o la segunda opción de <code>52x52</code> con <code>1px</code> de radio, pero sobre todo lo que no quieren son iconos que ocupen todo el cuadro y tengan las esquinas rectas (por poner algún ejemplo <a target='_blank' href="https://marketplace.firefox.com/">podéis visitar el Marketplace de Firefox OS</a> y ver como casi ningún icono cumple las pautas estéticas).</p>

	<p><img alt="Tamaños del icono de Firefox OS" src="http://img.genbetadev.com/2013/05/tamanios-logo.jpg" class="centro_sinmarco" /></p>

<h2>Poniendo en funcionamiento la UI</h2>

	<p><img style='margin-top:4px' alt="Captura de la UI" src="http://img.genbetadev.com/2013/05/cap4-1.jpg" class="derecha" /></p>

	<p>Mozilla ha liberado todo <strong>Gaia</strong> (que como <a href="http://www.genbetadev.com/desarrollo-aplicaciones-moviles/destripando-firefox-os-como-es-la-arquitectura-del-sistema">ya comentamos</a> es la última capa del sistema, la que sirve la interfaz) y tiene disponible en sus entrañas toda la UI que pondremos en funcionamiento. Se puede conseguir desde <a href="https://github.com/mozilla-b2g/gaia/tree/master/shared">GitHub</a> (está distribuido en dos carpetas: <code>style</code> para los estilos que están terminados y <code>style_unestable</code> con todo el <span class="caps">CSS</span> que puede sufrir cambios, está incompleto o mal documentado) y debemos de descargar los bloques de la UI que queramos usar, o mejor descargar todos los estilos y añadir los que nos hagan falta.</p>

	<p>Al igual que <a href="http://www.genbetadev.com/desarrollo-aplicaciones-moviles/como-empezar-a-desarrollar-para-firefox-os">en el anterior artículo</a> podemos probar el ejemplo funcionando y podemos instalarlo en Firefox OS o si tenemos Firefox en Android (que tras instalar una <em>app</em> nos crea un acceso directo en el escritorio del móvil o tablet).</p>

<blockquote><a target='_blank' href="http://diseno.firefoxos.xitrus.es/">Prueba de la UI de Firefox OS</a></blockquote>

<h2>Componentes</h2>

	<p>Tenemos que tener en cuenta que los componentes solo incorporan el diseño básico, debemos de controlar nosotros cuando aparecen y desaparecen y las transiciones entre elementos.</p>

	<p>Estos componentes se pueden llamar desde la propia página o importándolo desde las hojas de estilos (esta es la opción que expone Mozilla). La siguiente lista está compuesta por todos los componentes que podemos añadir en nuestro archivo <code>CSS</code> si todos los componentes que hemos descargado desde GitHub están en la carpeta &#8220;resources&#8221;.</p>

<pre class="prettyprint"><code>@import url(resources/action_menu.css);     /* menús de acciones */
@import url(resources/buttons.css);         /* botones */
@import url(resources/confirm.css);         /* panel de confirmación */
@import url(resources/headers.css);         /* cabeceras */
@import url(resources/status.css);          /* panel de alerta de estado */
@import url(resources/switches.css);        /* interruptores, radio y checkbox */
</code></pre>

	<p><img alt="Action Menu" src="http://img.genbetadev.com/2013/05/action-menu.jpg" class="derecha_sinmarco" /></p>

<h3>Menú de acciones</h3>

	<p>El menú de acciones muestra una lista simple, que se debe de mostrar tras un evento desde la interfaz principal y desde este escogeríamos alguna opción de la lista de la que disponemos.</p>

	<p>Podemos añadir las opciones que queramos añadiendo nuevos <code>&lt;button&gt;</code> y automáticamente el último aparecerá como un botón más destacado, que está pensado para cancelar la acción. También tiene un bloque para el título.</p>

	<p>En la prueba de la UI podemos encontrar este elemento pulsando el icono de opciones de la cabecera (esquina superior izquierda).</p>

<pre class="prettyprint"><code>&lt;form role=&quot;dialog&quot; data-type=&quot;action&quot; id=&quot;sample-menu&quot;&gt;
  &lt;header id=&quot;sample-title&quot;&gt; Título &lt;/header&gt; &lt;!-- Título opcional --&gt;
  &lt;menu&gt;
    &lt;button &gt; Acción &lt;/button&gt;
    &lt;button disabled&gt; Acción &lt;/button&gt;
    &lt;button &gt; Acción &lt;/button&gt;
    &lt;button &gt; Cancelar &lt;/button&gt;
  &lt;/menu&gt;
&lt;/form&gt;
</code></pre>

	<p><img alt="Botones de la UI" src="http://img.genbetadev.com/2013/05/botones.jpg" class="derecha_sinmarco" /></p>

<h3>Botones</h3>

	<p>Esta UI nos proporciona tres tipos de botones: el estándar, el de la acción recomendada y el de alerta o peligroso (gris, azul y rojo respectivamente). Que pueden ser añadidos en cualquier lugar y reaccionan al pasar por encima y varían también al estar deshabilitados.</p>

	<p>También se pueden crear listas de botones compactas, que redondea las esquinas del primer y último elemento automáticamente.</p>

	<p>En la prueba de la UI los botones son los protagonistas, con un interruptor podemos mostrarlos u ocultarlos y con un <code>checkbox</code> podemos deshabilitarlos.</p>

<pre class="prettyprint"><code>&lt;!-- Todos permiten el &quot;disabled&quot; --&gt;
&lt;button&gt; Normal &lt;/button&gt;
&lt;button class=&quot;recommend&quot;&gt;Recomendado&lt;/button&gt;
&lt;button class=&quot;danger&quot;&gt;Peligroso&lt;/button&gt;
&lt;!-- Así se genera la lista de botones compactos --&gt;
&lt;ul class=&quot;compact&quot;&gt;
  &lt;li&gt;&lt;button&gt; Acción 1 &lt;/button&gt;&lt;/li&gt;
  &lt;li&gt;&lt;button&gt; Acción 2 &lt;/button&gt;&lt;/li&gt;
  &lt;li&gt;&lt;button&gt; Acción 3 &lt;/button&gt;&lt;/li&gt;
  &lt;li&gt;&lt;button&gt; Acción 4 &lt;/button&gt;&lt;/li&gt;
&lt;/ul&gt;</code></pre>

	<p><img alt="Confirmación de la UI" src="http://img.genbetadev.com/2013/05/with-content-1.jpg" class="derecha_sinmarco" /></p>

<h3>Confirmación</h3>

	<p>Es un panel similar al de el menú de acciones, pero incorpora dos botones en la parte inferior de la pantalla donde nos permite elegir entre continuar la acción o cancelarla, y nos permite añadir un cuadro de texto.</p>

	<p>Podemos añadir distintos títulos, imágenes y bloques a nuestro antojo, como en la imagen lateral.</p>

	<p>Este bloque de la UI no lo he puesto en funcionamiento porque no actuaba del todo correctamente al añadir textos o imágenes.</p>

<pre class="prettyprint"><code>&lt;form role=&quot;dialog&quot; data-type=&quot;confirm&quot;&gt;
  &lt;section&gt;
    &lt;h1&gt;Confirmación&lt;/h1&gt;
    &lt;p&gt;¿Quieres borrar el contacto?&lt;/p&gt;
  &lt;/section&gt;
  &lt;menu&gt;
    &lt;button&gt;Cancelar&lt;/button&gt;                 &lt;!-- botón estándar --&gt;
    &lt;button class=&quot;danger&quot;&gt;Borrar&lt;/button&gt;    &lt;!-- botón de alerta --&gt;
  &lt;/menu&gt;
&lt;/form&gt;</code></pre>

	<p><img alt="Headers de la UI" src="http://img.genbetadev.com/2013/05/headers.jpg" class="derecha_sinmarco" /></p>

<h3>Cabeceras</h3>

	<p>Las cabeceras son totalmente personalizables, son el punto fuerte de la UI, tienen tres temas que podemos cambiar y la parte importante está en el botón de la esquina superior izquierda, que es con el que en todo el sistema operativo se retrocede o se accede a los menús.</p>

	<p>Podemos añadir varios botones o textos, sin contar el título tenemos tres botones que pueden llevar a otras acciones (uno en la izquierda y otros dos en la derecha) y además podemos añadir una subcabecera.</p>

	<p>Disponemos del tema naranja por defecto, el tema oscuro (<code>class=&quot;skin-dark&quot;</code>) y el tema <em>organic</em> que es grisáceo (<code>class=&quot;skin-organic&quot;</code>).</p>

	<p>En la <em>app</em> de demostración de la UI si pulsamos el botón de menú (el botón superior izquierdo) nos sale un menú de acciones para cambiar el color de la cabecera.</p>

<pre class="prettyprint"><code>&lt;section role=&quot;region&quot;&gt;
  &lt;header&gt;
    &lt;a href=&quot;#&quot;&gt;&lt;span class=&quot;icon icon-back&quot;&gt;Atrás&lt;/span&gt;&lt;/a&gt; &lt;!-- botón izquierdo --&gt;
    &lt;menu type=&quot;toolbar&quot;&gt;
      &lt;button&gt;&lt;span class=&quot;icon icon-edit&quot;&gt;Editar&lt;/span&gt;&lt;/button&gt; &lt;!-- botón derecho --&gt;
    &lt;/menu&gt;
    &lt;h1&gt;Aplicación&lt;/h1&gt; &lt;!-- Título --&gt;
  &lt;/header&gt;
  &lt;header&gt;
    &lt;h2&gt;Muy bonita&lt;/h2&gt; &lt;!-- Subcabecera --&gt;
  &lt;/header&gt;
&lt;/section&gt;</code></pre>

	<p><img alt="Interruptores de la UI" src="http://img.genbetadev.com/2013/05/interruptores.png" class="derecha" /></p>

<h3>Interruptores</h3>

	<p>En este bloque tenemos varios elementos, los <code>input</code> de tipo <code>radio</code> y <code>checkbox</code> y en dos colores: azul y rojo, este último para advertir de una acción peligrosa.</p>

	<p>Los <code>radio</code> son simplemente circulares y se rellenan al estar activos, mientras que los <code>checkbox</code> nos permiten usarlos circulares con un <em>tick</em> en el centro al estar activos o como si fuesen un interruptor.</p>

<pre class="prettyprint"><code>&lt;!-- Checkbox normal --&gt;
&lt;label&gt;
  &lt;input type=&quot;checkbox&quot;&gt;
  &lt;span&gt;&lt;/span&gt;
&lt;/label&gt;
&lt;!-- Checkbox rojo --&gt;
&lt;label class=&quot;danger&quot;&gt;
  &lt;input type=&quot;checkbox&quot;&gt;
  &lt;span&gt;&lt;/span&gt;
&lt;/label&gt;
&lt;!-- Radio normal --&gt;
&lt;label&gt;
  &lt;input type=&quot;radio&quot;&gt;
  &lt;span&gt;&lt;/span&gt;
&lt;/label&gt;
&lt;!-- Radio rojo --&gt;
&lt;label class=&quot;danger&quot;&gt;
  &lt;input type=&quot;radio&quot;&gt;
  &lt;span&gt;&lt;/span&gt;
&lt;/label&gt;
&lt;!-- Interruptor --&gt;
&lt;label&gt;
  &lt;input type=&quot;checkbox&quot; data-type=&quot;switch&quot;&gt;
  &lt;span&gt;&lt;/span&gt;
&lt;/label&gt;</code></pre>

<h2>Más elementos de la UI</h2>

	<p>La UI tiene unos cuantos elementos más a nuestra disposición pero no todos funcionan como deberían o directamente algunos no están documentados, aunque en el sistema operativo están implementados y funcionan perfectamente.</p>

<h2> Alternativas a la UI</h2>

	<p>La existencia de este pack para la interfaz de usuario no nos obliga a tenerlo que usar, podemos hacer cualquier diseño, aunque es recomendable <a href="http://www.genbetadev.com/tag/introduccion-al-responsive-design">hacerlo adaptable</a>, pero no tenemos ninguna limitación, admite toda la tecnología de HTML5 y CSS3 y tiene un rendimiento bastante bueno, mejor en el renderizado que en la ejecución de grandes scripts.<br />
Por poner un ejemplo del rendimiento, en renderizado se come, literalmente, el Geeksphone Keon (el móvil con Firefox OS de gama baja, de 90 euros) a mi Galaxy S+, <a href="http://renderizado.firefoxos.xitrus.es/">con un experimento</a> donde hay rotaciones 3D de CSS3 en movimiento.<br />
En cuanto a una prueba rápida con <a href="http://octane-benchmark.googlecode.com/svn/latest/index.html">Octane</a> si sale perdiendo el Geeksphone con una puntuación de 240 contra 430, aún así el funcionamiento está fenomenal y la estabilidad bastante buena, aunque aún hay que pulirlo (es normal en una <code>prerelease</code>).</p>

	<p>En Genbeta Dev | <a href="http://www.genbetadev.com/tag/desarrollando-en-firefox-os">Desarrollo en Firefox OS</a><br />
Más información |  <a href="http://www.mozilla.org/en-US/styleguide/products/firefoxos/icons/"> Guía de estilo</a> y <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/UX/Building_blocks">Documentación de la UI</a></p>

	<p><script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script><br />
<script> addEventListener(&#8216;load&#8217;, function (event) { prettyPrint() }, false); </script></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Cómo empezar a desarrollar para Firefox OS]]></title>
      <link>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/como-empezar-a-desarrollar-para-firefox-os</link>
      <guid>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/como-empezar-a-desarrollar-para-firefox-os</guid>
      <pubDate>Mon, 29 Apr 2013 06:30:34 +0000</pubDate>

      <author>Pedro Gutiérrez</author>
      <description><![CDATA[
      <p><img class="centro_sinmarco" src="http://img.genbetadev.com/tb/650_300_350_550/80290.jpg" alt="Como empezar a desarrollar para Firefox OS"></p>

	<p>Desde que llegaron las primeras noticias sobre <strong>Firefox OS</strong> este nuevo sistema basado en <strong>HTML5</strong> querían dejar claro <a href="http://www.genbetadev.com/desarrollo-aplicaciones-moviles/firefox-os-nos-lo-pone-facilisimo-a-los-desarrolladores">lo fácil que era desarrollar sobre esta plataforma</a> y también destacaba por su <a href="http://www.genbetadev.com/desarrollo-aplicaciones-moviles/destripando-firefox-os-como-es-la-arquitectura-del-sistema">arquitectura simple</a> (basada en un núcleo Linux y el motor de renderizado Gecko) y ahora ya está todo lo necesario para empezar a desarrollar accesible para cualquiera que se quiera aventurar con Firefox OS.</p>

	<p>Desarrollar para Firefox OS no es solo hacer una página web, por lo que para empezar veremos como probar las funciones que solo podemos usar en móviles con Firefox para Android o con el simulador, como configurar el archivo <code>manifest.webapp</code> en un momento y ver que requisitos de seguridad nos exigen desde <strong>Mozilla</strong> para las aplicaciones de su nuevo sistema.<br />
<!--more--><br />
<h2>Herramientas</h2></p>

	<p>Lo primero que tenemos que hacer es disponer de unas cuantas herramientas básicas si queremos probar el correcto funcionamiento de nuestras <em>apps</em> y la correcta interacción con Firefox OS o <strong>con el navegador Firefox para Android</strong>, aunque no son necesarias ninguna para desarrollar la propia <em>app</em>, para esto solo te hace falta un navegador y que funcione correctamente en el Firefox de escritorio.</p>

	<p>Realmente la única diferencia entre una web y una <em>webapp</em> reside en el archivo <code>manifest.webapp</code>, que es el que nos permite instalar la aplicación (si no entramos en aplicaciones de pago o el uso de <span class="caps">API</span>s algo más avanzadas que necesitan derechos adicionales para usarse).</p>

	<p><img alt="Capturas del simulador de Firefox OS" src="http://img.genbetadev.com/2013/04/Captura.jpg" class="centro" /></p>

	<p>Para simular al sistema completo tenemos el <strong>simulador de Firefox OS</strong> que <a href="https://marketplace.firefox.com/developers/docs/firefox_os_simulator">es simplemente una extensión de Firefox</a> que se instala al instante y nos proporciona un menú con una lista de las aplicaciones que le añadimos al simulador (que tienen que tener un <code>manifest.webapp</code> válido), que se instalan instantáneamente en Firefox OS, aunque podemos hacerlo de una forma más realista desde el propio sistema de las varias formas que se puede hacer. El simulador incorpora todo lo que tiene cualquier móvil con este sistema, incluidas las <span class="caps">API</span>s de los ajustes, contactos y demás.</p>

	<p>Además el simulador tiene, como era de esperar una consola de depuración, pero aún trae más, tenemos también una consola para depurar remotamente cualquier dispositivo móvil con Firefox o Firefox OS.</p>

	<p><img alt="Firefox" src="http://img.genbetadev.com/2013/04/unnamed.png" class="derecha_sinmarco" /></p>

	<p>Otro modo de probar las aplicaciones de una forma más realista si no disponemos de un terminal con Firefox OS es usar <strong>Firefox para Android</strong>, que nos permite instalar las aplicaciones y acceder a algunas <span class="caps">API</span>s que no podemos usar desde un navegador (como la de la vibración del móvil) y es sobre lo que estoy realizando las pruebas y sobre lo que podréis probar el primer resultado <a href="https://play.google.com/store/apps/details?id=org.mozilla.firefox&hl=es">descargando Firefox desde Google Play</a>.</p>

<h2>Formas de servir las aplicaciones</h2>

	<p>Hay dos formas de servir las aplicaciones, que posteriormente podremos validad o enviar al <strong>Market place</strong>, la primera es la más común y es empaquetar el archivo, simplemente con una compresión <code>zip</code> donde tendremos todos los archivos y el <strong>manifest.webapp</strong>. Y por otro lado tendremos las aplicaciones alojadas en un servidor web, que proporcionan la comodidad de poderse usar desde cualquier dispositivo y no solo desde Firefox OS, además de que la tienda de aplicaciones será consciente automáticamente de los cambios realizados (leyendo el <code>manifest.webapp</code>), aunque este método tiene una peculiaridad, el <code>manifest</code> tiene que tener un tipo <code>MIME</code> específico, muy simple de cambiar.</p>

<h2>Manifiesto de la aplicación</h2>

	<p>Como ya he comentado el <code>manifest.webapp</code> es algo indispensable para las aplicaciones de Firefox OS y contiene todos los datos de cada <em>app</em> como su nombre, descripción, datos del desarrollador y algunos datos relacionados con la seguridad como desde donde se permite instalar la aplicación o los permisos que se conceden.</p>

	<p>Para probar todo esto he creado una aplicación bastante inútil que nos permite &#8220;jugar&#8221; con la vibración del móvil, paro pensada con una finalidad &#8220;seria&#8221;, como es crear ritmos o efectos con la vibración y que te muestre el código necesario para recrear esa misma vibración con la función del navegador <code>navigator.vibrate()</code>.</p>

	<p><a href="http://vibracion.firefoxos.xitrus.es/">Podéis coger vuestros Android con Firefox instalado y probarlo</a>, si lo hacéis desde el navegador de escritorio hace exactamente lo mismo que con el móvil, menos&#8230; eso de vibrar (es decir, es <em>100%</em> inútil si no es con un móvil).</p>

	<p>Sabiendo de que va la <del> chapuza de</del> <em>app</em> os voy a mostrar el <code>manifest.webapp</code> que tiene.</p>

<pre class="prettyprint"><code>{
    &quot;version&quot;: &quot;1.0&quot;,
    &quot;name&quot;: &quot;Vibración&quot;,
    &quot;description&quot;: &quot;Prueba Vibración - Genbeta Dev - Pedro Gutiérrez&quot;,
    &quot;launch_path&quot;: &quot;/index.html&quot;,
    &quot;icons&quot;: {
        &quot;16&quot;: &quot;/img/icons/logo-16.png&quot;,
        &quot;48&quot;: &quot;/img/icons/logo-48.png&quot;,
        &quot;128&quot;: &quot;/img/icons/logo-128.png&quot;
    },
    &quot;developer&quot;: {
        &quot;name&quot;: &quot;Pedro Gutiérrez&quot;,
        &quot;url&quot;: &quot;http://www.genbetadev.com&quot;
    },
    &quot;installs_allowed_from&quot;: [&quot;*&quot;],
    &quot;locales&quot;: {
        &quot;en&quot;: {
            &quot;description&quot;: &quot;Vibration Test - Genbeta Dev - Pedro Gutiérrez&quot;,
            &quot;developer&quot;: {
                &quot;name&quot;: &quot;Pedro Gutiérrez&quot;,
                &quot;url&quot;: &quot;http://www.genbetadev.com&quot;
            }
        }
    },
    &quot;default_locale&quot;: &quot;es&quot;,
    &quot;permissions&quot;: {     
    },
    &quot;fullscreen&quot;: &quot;true&quot;
}</code></pre>

	<p>Es completamente un objeto <strong><span class="caps">JSON</span></strong> y contiene información sobre la aplicación y sus desarrolladores y además aspectos de seguridad.</p>

	<p>Saltándonos los aspectos básicos nos encontramos con <code>installs_allowed_from</code> que contiene un <code>array</code> con todos los sitios desde donde se puede instalar la <em>app</em>, como medida de seguridad más que nada para evitar instalar cosas que no son accidentalmente (en mi ejemplo he puesto el comodín <code>*</code> por comodidad, pero se puede establecer que se instale desde un dominio completo, un subdominio, una ruta o diferenciando puertos).</p>

	<p>El parámetro <code>locales</code> proporciona una información de la aplicación y de los desarrolladores alternativa según el lenguaje y por último está <code>permissions</code> que pese a que no lo he utilizado nos permite especificar el nombre del permiso y la explicación de su uso (además de tener que especificar el permiso) y ya la repararemos más adelante detenidamente.</p>

<h3>Ubicación del manifest</h3>

	<p>El <code>manifest.webapp</code> siempre tiene que estar en la raíz del lugar donde se encuentre la aplicación, ya sea empaquetada o teniéndola en un servidor web, pero en este caso tenemos que tener en cuenta su <code>MIME type</code>, que es <code>application/x-web-app-manifest+json</code> (se decantaron por algo fácil de memorizar) y podemos configurarlo de varias formas.</p>

<pre class="prettyprint"><code>#Añadir esta línea en .htaccess (en servidor Apache)
AddType application/x-web-app-manifest+json .webapp</code></pre>

<pre class="prettyprint"><code>#Resolver la siguiente cabecera
Content-Type: application/x-web-app-manifest+json;</code></pre>

<pre class="prettyprint"><code>#Añadir en mime.types esta línea (en servidor NGINX)
types {
application/x-web-app-manifest+json   webapp;
}</code></pre>

<h2>Diseño</h2>

	<p>Lo vuelvo a recordar: <strong>es una página web</strong>, ni más ni menos, por lo que hacer el diseño no es nada nuevo para la mayoría, solo que nos recomiendan poner en práctica el Responsive Design (<a href="http://www.genbetadev.com/tag/introduccion-al-responsive-design">del que ya os hemos hablado ampliamente</a>).</p>

<h2>Desarrollo de la aplicación</h2>

	<p>En esta parte voy a recalcar tres cosas, primero es que tenemos dos tipos de <span class="caps">API</span>s: las <strong>Web <span class="caps">API</span>s</strong> (como la vibración o el nivel de carga de la batería) y las<strong> WebRT <span class="caps">API</span>s</strong> (que es necesario tener permiso para usarlas y nos permiten acceder a los ajustes, agenda, contactos y demás). Y otra cosa que tenemos que tener en cuenta para el uso de estas aplicaciones es <strong>la seguridad</strong>, que para hacer uso de ciertos permisos especiales (como el uso de las WebRT <span class="caps">API</span>s) tiene que cumplir unas directivas básicas.</p>

	<p>El sentido de poner en práctica estas medidas es para evitar posibles ataques <span class="caps">XSS</span>, inyección de enlaces con código o inyección de <span class="caps">HTML</span>. Algunas de estas medidas no permiten que una aplicación valide correctamente <a href="https://marketplace.firefox.com/developers/validator">con el validador de aplicaciones</a> y algunas otras más simples y menos aprovechables para malos fines nos recomendarán solventarlas, pero no supone un problema.</p>

	<p>Las medidas de seguridad son las siguientes:</p>

<ul><li>El código que esté dentro de una etiqueta <code>&lt;script&gt;</code> dentro del <span class="caps">HTML</span> será ignorado.</li><li>Las <span class="caps">URL</span>s que ejecuten una función JavaScript mediante <code>javascript:</code> serán ignoradas.</li><li>Todos los eventos que se ejecuten desde cualquier elemento (como <code>onload</code>, <code>onclick</code>, <code>onfocus</code>&#8230;) serán ignorados, en su lugar debemos de usar <code>addEventListener()</code>.</li><li>La función <code>eval()</code> está desactivada por defecto.</li><li>Las funciones <code>setTimeout()</code> y <code>setInterval</code> que pasen las funciones como cadenas de texto en lugar de pasar una función a través de una variable será ignoradas.</li><li>Por defecto los datos pasados por <span class="caps">URL</span>s (como son texto o imágenes) que se establecen con <code>data:</code> serán deshabilitados.</li></ul>

	<p>Además nos recomiendan el uso de <strong>https</strong>, sobre todo con el archivo <code>manifest.webapp</code></p>

<h2>Ampliación</h2>

	<p>Hablar sobre como desarrollar en Firefox OS en un solo artículo sería interminable, pero os adelanto unas cuantas cosas que vamos a ir viendo y son necesarias para hacer cosas complejas:</p>

<ul><li>Hacer diseños correctos para las <em>apps</em> (con <a href="http://www.genbetadev.com/tag/introduccion-al-responsive-design">Responsive Design</a>).</li><li>Establecer permisos y hacer uso de las <span class="caps">API</span>s.</li><li>Como publicar una aplicación en el Marketplace.</li><li>Añadir las funciones de instalación en el dispositivo.</li><li>Hacer uso de los métodos de pago y las medidas contra el pirateo de las aplicaciones.</li><li>Crear aplicaciones que funcionen sin conexión.</li></ul>

<h2>Resumen</h2>

	<p>Teniendo en cuenta el fuerte apoyo que está teniendo Firefox OS y la facilidad de desarrollar para este sistema no viene mal tener unos conocimientos básicos de la plataforma, por lo que os recomiendo ir siguiendo el avance de la serie.</p>

	<p><strong>PD</strong>:<a href="http://vibracion.firefoxos.xitrus.es/"> si probáis la <em>app</em></a> en Firefox para Android o si sois de los pocos que tienen un móvil con Firefox OS no dudéis en pulsar &#8220;Extra&#8221; y darle a &#8220;Vibrar&#8221;, demuestra un uso muy poco útil de la vibración del móvil, pero uno que si se le podría dar es el de complementar a un juego o vibrar al recibir notificaciones.</p>

	<p>Más información | <a href="https://marketplace.firefox.com/developers/docs/quick_start">Introducción a Firefox OS</a> (Mozilla)<br />
En Genbeta Dev | <a href="http://www.genbetadev.com/tag/desarrollando-en-firefox-os">Desarrollo en Firefox OS</a></p>

	<p><script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script><br />
<script> addEventListener(&#8216;load&#8217;, function (event) { prettyPrint() }, false); </script></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[SDK de Spotbros para desarrollar apps integradas con su cliente de mensajería instantánea]]></title>
      <link>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/sdk-de-spotbros-para-desarrollar-apps-integradas-con-su-cliente-de-mensajeria-instantanea</link>
      <guid>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/sdk-de-spotbros-para-desarrollar-apps-integradas-con-su-cliente-de-mensajeria-instantanea</guid>
      <pubDate>Thu, 11 Apr 2013 14:56:21 +0000</pubDate>

      <author>Txema Rodríguez</author>
      <description><![CDATA[
      <p><img alt="spotbros sdk" src="http://img.genbetadev.com/2013/04/650_1000_SpotbrosAppFlow.jpg.jpg" class="centro" /></p>

	<p><strong>Spotbros</strong> es una startup española que lleva unos meses en el mercado con su aplicación de mensajería para iOS y Android. Rivaliza directamente con Whatapps o Line. Ya cuenta con más de un millón de usuarios y siguen evolucionando ofreciendo funcionalidades extras al concepto habitual que tenemos de mensajería instantánea. Una de ellas es que los desarrolladores ya podemos <strong>integrar aplicaciones en Spotbros</strong>, gracias al <strong><span class="caps">SDK</span> conectada a su <span class="caps">API</span></strong> que acaban de presentar, para que los usuarios las usen directamente en el cliente de mensajería.</p>

	<p>Para apoyar el desarrollo de aplicaciones que se integren, <strong>Spotbros ha abierto un portal para desarrolladores</strong> donde se pueden dar de alta aplicaciones <strong>(<span class="caps">SBA</span>pp)</strong>, así como  hacer seguimiento de las estadísticas de uso: mensajes enviados a tu app o el número de seguidores que tiene. Todas la apps se pueden encontrar en el catalogo público dentro de Spotbros, aunque también podemos crear aplicaciones privadas para uso personal o entre amigos.</p>

	<p><!--more--></p>

	<p>Tanto como desarrolladores independientes como empresas podemos <strong>desarrollar todo tipo de aplicaciones que se comuniquen con la infraestructura de mensajería de Spotbros</strong>, usando el <span class="caps">SDK</span> que nos proporcionan en <span class="caps">PHP</span> para enganchar con nuestro propio sistema de bot o handler de mensajes. No existe límite de usuarios por aplicación ni número de peticiones de mensajes, siempre que se respete el límite de 10 mensajes por minuto como medida anti spam.</p>

	<p><img alt="Spotbros infraestructura" src="http://img.genbetadev.com/2013/04/650_1000_infraestructura-spotbors.jpg" class="centro_sinmarco" /></p>

	<p><strong>Para conectar nuestra aplicación a la infraestructura de Spotbros</strong> podemos hacerlo usando el <span class="caps">SDK</span> o delegando las peticiones a servicios web de terceros que hagan uso del <span class="caps">API</span>, en los ejemplos podemos encontrar <a href="https://github.com/spotbros/SBClientSDK/blob/master/examples/CurlMngr/URLShortener.php">ejemplos de delegación</a>. Desde Spotbros están abiertos a que la comunidad de desarrolladores programen su propio código en diversos lenguajes para integrarlo posteriormente al proyecto.</p>

	<p>Un caso de éxito de aplicaciones integradas en <a href="http://www.spotbros.com/">Spotbros</a> es la que la <strong><span class="caps">EMT</span> presentó recientemente ofreciendo un servicio de información a sus viajeros</strong> a través del envío de mensajes directos. Por ejemplo, con el envío del mensaje “Espera <número de parada>” recibimos información sobre el tiempo que resta para que pase nuestro bus.</p>

	<p>Podéis encontrar toda la documentación en el <a href="http://dev.spotbros.com/">portal para desarrolladores de Spotbros</a>, así como el <a href="https://github.com/spotbros/SBClientSDK">Github con todo el código</a> y ejemplo del uso de la plataforma. </p>

	<p>El 20 de Abril se realizará un <strong>hackathon en las oficinas de Spotbros</strong>. Es una buena oportunidad para conocer más sobre esta aplicación de mensajería y las posibilidades que nos aporta a los desarrolladores de aplicaciones</p>

	<p>Más información | <a href="http://dev.spotbros.com/">Spotbros Developer Portal</a><br />
Sitio web | <a href="http://www.spotbros.com/">Spotbros</a><br />
En Xataka Android | <a href="http://www.xatakandroid.com/comunicacion-y-mensajeria/spotbros-sigue-creciendo-y-llega-al-millon-de-usuarios">Spotbros sigue creciendo y llega al millón de usuarios</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Spoon, distribuye los tests de instrumentación simultáneamente a todos tus dispositivos Android]]></title>
      <link>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/spoon-distribuye-los-tests-de-instrumentacion-simultaneamente-a-todos-tus-dispositivos-android</link>
      <guid>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/spoon-distribuye-los-tests-de-instrumentacion-simultaneamente-a-todos-tus-dispositivos-android</guid>
      <pubDate>Thu, 04 Apr 2013 21:56:47 +0000</pubDate>

      <author>Txema Rodríguez</author>
      <description><![CDATA[
      <p><img alt="Spoon test Android" src="http://img.genbetadev.com/2013/04/650_1000_spoon-test-android.png" class="centro_sinmarco" /></p>

	<p>Android no para de ampliar su ecosistema de terminales, lo que hace que testear una aplicación con garantías de que funcione correctamente en cualquier móvil o tablet sea cada vez más complicado. Por este motivo las empresas se están enfocando en automatizar todos los procesos manuales de pruebas y que sean más complejas. Una de las herramientas que más me ha llamado la atención es <strong>Spoon</strong>, la cual permite <strong>testear sobre una <span class="caps">APK</span> los tests de instrumentación que tengamos al mismo tiempo</strong> en distintos dispositivos ahorrando mucho tiempo, además de comprobar las diferencias en cada uno. </p>

	<p>La aplicación arranca siguiendo los pasos que hayamos definido en las pruebas de instrumentación. <strong>Spoon</strong> genera un <strong>sumario con los resultados agrupados en un <span class="caps">HTML</span> estático</strong>. Cada dispositivo tiene una ficha con el resultado individual de cada uno de los tests que ha ejecutado exitosamente o con error incluyendo la traza del test, además de una visión global del conjunto de terminales. Aquí vemos un <a href="http://square.github.com/spoon/sample/index.html">ejemplo de sumario de los resultados</a>.</p>

	<p><!--more--></p>

	<p>En este vídeo podéis ver un ejemplo práctico arrancando varios terminales al mismo tiempo pasando los tests simultáneamente.</p>

	<p><iframe width="640" height="360" src="http://www.youtube.com/embed/UQZFhGPSPjM" frameborder="0" allowfullscreen></iframe></p>

	<p>Como añadido, <strong>Spoon permite hacer capturas para cada estado</strong> que definamos en la ejecución de los test, los cuales podremos ver  en las distintas resoluciones reales de cada dispositivo. Muy útil para detectar fallos visuales o de interacción.</p>

	<p><img alt="Screenshot-test-android" src="http://img.genbetadev.com/2013/04/650_1000_screenshots_test_android.png" class="centro_sinmarco" /></p>

	<p>Todo el código del proyecto está disponible en <a href="http://github.com/square/spoon">GitHub</a>, donde podemos descargar los jar y consultar las dependencias si usamos Maven. Para ejecutar Spoon con los tests basta con seguir las sencillas instrucciones de la documentación que haremos directamente desde línea de comandos. </p>

	<p>Más información | <a href="http://square.github.com/spoon/">Spoon</a><br />
Via | <a href="http://corner.squareup.com/2013/04/the-resurrection-of-testing-for-android.html">Square Blog</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[New Relic para monitorizar el rendimiento y las conexiones de red de aplicaciones móviles Android e iOS]]></title>
      <link>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/new-relic-para-monitorizar-el-rendimiento-y-las-conexiones-de-red-de-aplicaciones-moviles-android-e-ios</link>
      <guid>http://www.genbetadev.com/desarrollo-aplicaciones-moviles/new-relic-para-monitorizar-el-rendimiento-y-las-conexiones-de-red-de-aplicaciones-moviles-android-e-ios</guid>
      <pubDate>Sun, 17 Mar 2013 17:01:18 +0000</pubDate>

      <author>Txema Rodríguez</author>
      <description><![CDATA[
      <p><img alt="New Relic para aplicaciones móviles android e iOS" src="http://img.genbetadev.com/2013/03/650_1000_new-relic-android-ios-monitorizacion.jpg" class="centro" /></p>

	<p><strong>New Relic</strong> es un completo <strong>sistema de motorización</strong> de maquinas que permite tener un control en tiempo real de los recursos disponibles. Quizás sea uno de lo más conocidos e instalados para controlar aplicaciones webs, ahora lanza una interesante versión para hacer lo mismo pero de aplicaciones móviles Android e iOS.  </p>

	<p>Los que habéis usado New Relic habréis comprobado la sencillez de instalación para monitorizar en tiempo real todo tipo de recursos de vuestras maquinas: procesos, carga de página, red, discos, etc&#8230; pudiendo fijar umbrales para el envío de alertas. Añadiendo el <strong><span class="caps">SDK</span> de New Relic a nuestra aplicación</strong> podemos conocer datos como el rendimiento de las conexiones de red a nuestros servidores o los crash report cuando falle.</p>

	<p><!--more--></p>

	<p>Un tema que queda invisible cuando distribuimos una aplicación móvil es cuál será <strong>el rendimiento de las conexiones de red con nuestros servidores</strong>. Es decir, los fallos en las respuesta que puede dar la <span class="caps">API</span> que provee los datos a la aplicación móvil: excepciones, timeout, errores de los datos, etc&#8230; Con New Relic podemos conocer todos los tipos de mensajes <span class="caps">HTTP</span> que reciben nuestras apps, además de los tiempos de respuesta (dato importante para analizar si nuestra aplicación es lenta)</p>

	<p>A través de los distintos paneles podemos ver las <strong>estadísticas que nos ofrece</strong>:</p>

<ul>
<li><strong>Conexiones <span class="caps">HTTP</span></strong>: tiempos de respuesta, mensajes de error, número de peticiones, etc&#8230;</li>
<li>Errores: <strong>crash report</strong> cuando en la aplicación se produzca algún fallo tanto de ejecución como con la conexión a nuestra <span class="caps">API</span></li>
<li><strong>Fijar alertas sobre umbrales de datos de referencia</strong>: tiempos de respuesta, errores de autenticación, etc&#8230;</li>
<li>Estadísticas del <strong>rendimiento de la aplicación en distintos dispositivos</strong>. Conociendo los tiempos de ejecución, el uso de la memoria o la velocidad de red.</li>
<li><strong>Estadísticas de los usuarios según las distintas versiones</strong> de software del sistema operativo</li>
</ul>

	<p><iframe width="640" height="360" src="http://www.youtube.com/embed/Wbe6vc2ovMU" frameborder="0" allowfullscreen></iframe></p>

	<p>Vía | <a href="http://blog.newrelic.com/2013/03/13/a-developers-best-friend-now-for-mobile-apps/">New Relic Blog</a><br />
Más información | <a href="http://newrelic.com/mobile-monitoring">New Relic for Mobile</a></p>      ]]></description>
      </item>
        	  <atom:link href="http://www.genbetadev.com/categoria/desarrollo-aplicaciones-moviles/rss2.xml" rel="self" type="application/rss+xml" />
	</channel>

</rss>


