¿Cómo funciona Firefox Marketplace?

¿Cómo funciona Firefox Marketplace?
4 comentarios Facebook Twitter Flipboard E-mail

Ayer, Mozilla desvelaba los últimos detalles sobre Firefox Marketplace, la tienda de aplicaciones para sus navegadores móviles y de escritorio y, cómo no, para Firefox OS. En Genbeta hemos estado investigando a través de la documentación de Mozilla para contaros cómo funciona por dentro el Marketplace y cómo gestionan la venta de aplicaciones hechas en HTML.

Descarga tan simple como apretar un botón

Instalar en el Marketplce

El proceso de instalación es igual de simple que en el resto de tiendas de aplicaciones, así que no nos extenderemos mucho. Simplemente buscamos la aplicación, pulsamos "Instalar", aceptamos los permisos (si los hay) y listo. Firefox creará automáticamente el enlace en el escritorio (tanto si estáis en el teléfono como en el ordenador), bajará el .zip con la aplicación si es necesario y ya podréis usarla.

De momento, todas las aplicaciones son gratuitas y no hay forma de subir aplicaciones de pago. Por lo tanto, tampoco sabemos cómo será el esquema de pagos, cuánto se llevarán los desarrolladores ni con qué medios podremos pagar. Sí sabemos que se podrá pagar usando PayPal, y probablemente también con tarjeta de crédito.

Dos tipos de aplicaciones: en Internet y locales

Firefox Marketplace

Firefox Marketplace distingue dos tipos de aplicaciones, las que están en Internet (Hosted apps) y las locales (Packaged apps). Ambas son muy similares: escritas totalmente con tecnologías web; con un manifiesto que describe la aplicación, iconos, permisos y demás campos; y una integración total en el sistema Firefox OS.

Las Hosted Apps se alojan en un servidor como cualquier otra página web. Junto con la _webapp_ hay que subir el archivo de manifiesto que identifica la aplicación. Con eso y completar el proceso de envío a Mozilla, la aplicación estará lista para que cualquier usuario se la instale.

Las Packaged Apps son algo distintas: el desarrollador empaqueta todos los archivos HTML/JS/CSS en un .zip que envía al Marketplace. Mozilla lo aprueba y, cuando el usuario se descarga la aplicación, se descarga en realidad el .zip con todos los archivos.

Esto les da algunas ventajas a las aplicaciones locales: lo primero, que no necesitan Internet para funcionar. Una aplicación web pueda usar el almacenamiento online para funcionar sin conexión, pero es el desarrollador quien tiene que guardar los recursos explícitamente. La aplicación local ya tiene todo descargado así que siempre debería funcionar sin conexión.

Pero lo más importante sobre las aplicaciones locales es que son la única forma de acceder a las APIs restringidas del teléfono: llamadas, mensajes, contactos... Como podréis imaginar, sería muy problemático que las aplicaciones web pudiesen acceder a esas APIs restringidas sin problemas. ¿Qué pasa si lo que al principio era una aplicación inocente cambia después a una aplicación maliciosa? Aunque Mozilla la hubiese revisado exhaustivamente antes de publicarla en el Marketplace, no tendrían forma de saber qué hace cuando ya ha pasado la revisión.

La solución es usar aplicaciones locales privilegiadas. A la hora del envío, el desarrollador especifica que su aplicación accede a APIs restringidas. Con este aviso, Mozilla hará una revisión especial. Cuando acaben, el paquete que se descargarán los usuarios estará firmado, de tal forma que no se podrán modificar los contenidos. Además, fuerzan un CSP (Content Security Policy) que evita que se carguen ciertos contenidos, como scripts o páginas HTML, de fuera del paquete de la aplicación.

Desde el punto de vista del usuario, todas las aplicaciones parecen del mismo tipo. Algunas pedirán algunos permisos especiales, otras cargarán sin Internet, pero por lo demás no habrá más diferencias que nosotros podamos percibir.

¿Cómo solucionarán el problema de la piratería?

En el momento que hablamos de "tienda de aplicaciones" tenemos que hablar sí o sí de la piratería. ¿Cómo evitará Mozilla que los usuarios no se descarguen las aplicaciones de pago sin pagarlas?

La idea es usar _receipts_ o tickets de compra. La aplicación web (tanto Hosted como Packaged) pide al navegador, a través de una API Javascript, el ticket, que está firmado digitalmente para evitar su modificación. Este ticket acredita que el usuario ha pagado por la aplicación. Por así decirlo, es la licencia de uso de la aplicación. Cuando la aplicación reciba ese ticket, verificará con los servidores de Mozilla que el ticket sea válido.

De esta forma, Mozilla podría parar casi cualquier intento de piratería. Hay una forma de saltarse esto, y sería guardando un ticket de otro usuario en el navegador. Es decir, que varios usuarios compartan la misma "licencia de uso" para una aplicación. Los servidores de Mozilla no lo detectarían y tendría que ser la propia aplicación web la que prohíba que un mismo ticket se use varias veces. Aun así, es un método para conseguir aplicaciones piratas bastante más complicado que los que hay Android o iOS.

Las aplicaciones web móviles, ahora en serio

Firefox Marketplace

En general, a nivel de usuario no hay diferencias entre la tienda de Firefox y la de otros sistemas móviles. Lo que sí es interesante es lo simple que resulta el proceso para los creadores de aplicaciones. Teniendo en cuenta que ya hay muchísimas aplicaciones web optimizadas para móviles, en muchos casos estar en el Marketplace será tan sencillo como añadir el archivo de manifiesto y rellenar los campos para el envío a Mozilla.

Normalmente no estoy a favor de este tipo de _frameworks_ o soluciones que te permiten escribir una única versión de la aplicación y enviarla a varios dispositivos sin dificultad (véase PhoneGap, una de las mejores herramientas para crear aberraciones móviles): acabas con una interfaz fea, que no cuadra con el sistema, lenta y un conjunto de APIs reducido.

Sin embargo, el caso de Firefox Marketplace y Firefox OS es distinto. La interfaz web siempre cuadra con el sistema, porque al fin y al cabo el sistema está basado en el estilo de la web. Mozilla no ha creado un nuevo estilo de interfaz como Android, iOS o Windows Phone, y eso le beneficiará mucho a la hora de que las aplicaciones se vean bien en el sistema.

Tampoco creo que tengan problemas con el rendimiento. Mozilla ya tiene experiencia de sobra con navegadores, y si consiguieron que la versión de desarrollo que nos enseñaron funcionase _sólo_ con pequeños tirones en un móvil cutre de 600 MHz de CPU, no habrá ningún problema en un teléfono potente con un sistema optimizado.

Creo que Firefox OS es el primer sistema que permitirá tomarse en serio el tema de las aplicaciones web. Ahora mismo, la mayor parte de "aplicaciones web" que nos podemos encontrar son o versiones móviles de páginas web con más bien poca funcionalidad. Las aplicaciones web de verdad, las que podrían ser un sustituto de la aplicación móvil que descargas de la Store correspondiente, apenas se encuentran se llevan publicidad principalmente por lo que comentaba antes: interfaz fea, sin integración con el sistema, APIs reducidas y lenta.

Quizás podría ser incluso la forma de potenciar estas aplicaciones móviles en otros sistemas, quién sabe. De momento, creo que Mozilla ha hecho un trabajo muy bueno con su sistema y con el Marketplace. No creo que sea capaz de arrancar un buen hueco a Android o iOS a corto/medio plazo, pero sí lo considero una apuesta muy interesante e innovadora.

Más información | Mozilla Developer Network

Comentarios cerrados
Inicio