Saltar al contenido

La semana pasada Mozilla presentó una propuesta para crear aplicaciones y tiendas de aplicaciones basadas en la web. Aunque la propuesta es mucho más abierta que las tiendas de apple (App Store) o google (Web Store), es complicado que funcione. Algunas ideas que se me ocurren sobre la nueva propuesta de mozilla:

  • Prism parece que no tiene futuro. En el directorio de proyectos de mozilla labs, ya aparece como proyecto inactivo. La idea de Prism era muy buena, pero la implementación cómo una aplicación independiente, no. Chrome implementó la idea de una forma más fácil de usar, dentro del propio navegador.
  • Integración con el escritorio / móvil. Es el principal problema de la propuesta de mozilla. Se da por supuesto que la integración es inmediata, pero no creo que sea tan sencillo. Gracias a Prism y a Fennec, Mozilla tiene tecnología para conseguirlo, pero dependerá del resto de navegadores conseguir que sea multiplataforma.
  • Cambia la perspectiva de la web. Hasta ahora, la mayoría de las aplicaciones y contenidos en internet se han financiado a través de la publicidad. Una alternativa ha sido crear servicios freemium con una cuota mensual. La App Store de Apple cambió está perspectiva para las aplicaciones de móviles: vender aplicaciones por descarga. Si la idea de Chrome y de Mozilla funciona, muchas aplicaciones web podrían cambiar su modelo de generar ingresos, al estilo de la app store.
  • Visión de plataforma. Es una visión diferente de una plataforma. Frente al modelo cerrado e integrado de apple, presentan un modelo abierto pero fragmentado similar a la situación actual en la web.

¿Porqué he escrito más en detalle sobre esta propuesta? Después de que se anunciase Prism, pensé en que sería buena idea crear un repositorio de aplicaciones web instalables en el escritorio. Hace un par de años empecé a trabajar un poco en esa idea y poco a poco he ido creando un prototipo que reutilizase prism, llamado app-share.com. En la última versión, descarté el uso de prism y lo transformé en un escritorio web, que actualmente tiene un aspecto muy similar al prototipo de mozilla. En el futuro intentaré integrar la nueva propuesta de Mozilla.

2

Mozilla ha presentado una propuesta para crear aplicaciones web que permitirá el desarrollo de tiendas al estilo de la App Store de Apple. La nueva tecnología se llama open web applications y por ahora sólo han presentado un prototipo con el objetivo de estandarizar las tecnologías abiertas necesarias que permitan el desarrollo de aplicaciones, tiendas, directorios y los mecanismos de instalación de las aplicaciones web. Aquí podeis ver el video de presentación en inglés:

Después de echarle un ojo a la documentación, resumo un poco las ideas incluidas en la propuesta de la Open Web Applications. En otro post, comentaré algunas ideas que se me ocurren con esta propuesta.

Elementos de la Open Web Applications

En la arquitectura propuesta, se encuentran los siguientes elementos:

Aplicaciones: Son aplicaciones web normales con un manifiesto que contiene información para la instalación. Con esa información contenida en el manifiesto, las aplicaciones se podrán instalara en distintos dispositivos. La objetivo de usar aplicaciones web es aprovechar html5 y a través del almacenamiento local definido por html5, una aplicación web podría comportarse casi como una aplicación nativa, trabajando, si fuese necesario, sin conexión a internet.

Tiendas o repositorios: Son directorios de aplicaciones que permiten buscar y/o comprar aplicaciones. En el caso de las tiendas, tendrán un mecanismo de pago seguro para poder descargar una aplicación. Las tiendas/repositorios son las que permitirán la descarga del manifiesto de una aplicación, convirtiendose en los distribuidores de las aplicaciones.

Usuarios: el usuario podrá instalar aplicaciones en su navegador, en el escritorio de su ordenador o en su móvil. El usuario buscará estas aplicaciones en las tiendas de software, en repositorios compartidos o directamente desde la propia aplicación. Las aplicaciones podrían ser de pago o no dependiendo del creador de la misma.

La clave del funcionamiento de estas aplicaciones es html5, el almacenamiento local y el manifiesto de la aplicación. Con esta arquitectura se conseguirán aplicaciones que presentan características de aplicaciones de escritorio y de aplicaciones web:

  • Integradas e instalables en el escritorio o en el móvil.
  • Encontrables por buscadores web.
  • Enlazables igual que las páginas web existentes.
  • Construidas con tecnologías web (HTML, CSS y JavaScript) abiertas y estandarizadas.
  • Compatiles con todos los navegadores modernos.
  • Fáciles de lanzar y de mantener.

Tiendas de aplicaciones

Con la propuesta de Mozilla, se habilitarán varios métodos de distribución de software:

  • Soportarán esquemas de aplicaciones de pago.
  • Soportarán compras portables, lo que pagas una vez lo puedes llevar a todos tus ordenadores, móviles, etc.
  • Distribución abierta, en distintas tiendas y/o distribución desde la propia aplicación web.

La Open Web Applications es una respuesta a la tienda de aplicaciones web Chrome que a su vez es una versión del Android Market para aplicaciones web, que es una copia de la App Store de Apple, la tienda es más exitosa y rentable hasta el momento. Mientras que la App Store y el Android Market son tiendas para aplicaciones móviles nativas, la Open Web Application y la Chrome Web Store están pensadas para aplicaciones web. La diferencia entre ambas es que la arquitectura de Mozilla está abierta a distintos navegadores y tiendas mientras que la tienda de google en principio solo funcionará con la tienda de google en el navegador chrome. Por el momento, mozilla no va a construir una tienda de aplicaciones, esperan que sean otros los que utilicen su tecnología para construir tiendas. Además Apple acaba de anunciar una tienda de aplicaciones para Mac, la Mac App Store.

La propuesta de Mozilla tiene la arquitectura más abierta, que permitirá crear distintas tiendas, repositorios de aplicaciones y la autopublicación de aplicaciones a los desarrolladores, utilizando tecnologías abiertas y compatibles entre distintos navegadores y aparentemente no están pensando en crear su propia tienda de aplicaciones.

1

La guerra de los navegadores que enfrentó en los 90 a Netscape con Explorer de Microsoft terminó con un navegador predominante que no era compatible con los estándares de la web. Desde entonces pesar de que explorer es el navegador más utilizado, ha estado por detrás en características y compatibilidad, llegandose a la situación de que Explorer durante muchos años era el estándar de facto frente a las especificaciones del w3c (el consorcio que se encarga de definir los estándares de la web).

En la segunda guerra de los navegadores, que empezó cuando mozilla empezó a desarrollar su navegador firefox, microsoft ha seguido rezagada en compatibilidad y características. Explorer es el único navegador que no soporta muchas características de html5 y css3, mientras que firefox, chrome, safari y opera ya soportan una buena parte de los nuevos estándares.

Pero al fin, microsoft parece que se preocupa de los estándares: han creado un concurso de aplicaciones web de menos 10K en el que uno de los requisitos es que la aplicación funcione con Firefox, Webkit (Chrome y Safari) y IE9 dev preview (la nueva versión de internet explorer en desarrollo). Recuerda mucho a chrome experiments, pero hace más enfasis en la compatibilidad entre navegadores, impensable hace unos años.

Un artículo más sobre html5: expectativas, novedades, cambios, etc. Nada interesante para los que sigan la evolución de html5, excepto que explica porqué se han integrado dos tipos de cambios en la nueva versión de html. Por un lado tenemos al W3C que ha incorporado cambios relacionados con la estructura documental y semántica de html con nuevas etiquetas (header, footer, dialog, aside, etc) y por otro el WHATWG que ha incluido aspectos más relacionados con el desarrollo de aplicaciones (etiquetas canvas, video, audio y nuevos apis web workers y local storage). Creo que esta parte es la que tendrá más peso en el futuro, convirtiendo a la web en una plataforma de desarrollo.

En lo que no estoy de acuerdo es en el ámbito temporal. Aunque microsoft tiene mucho peso, el soporte en navegadores no-microsoft es muy amplio y generalizado y no debería quedarse atrás. Aunque el W3C espera que hasta 2022 no haya una versión estandarizada, probablemente haya un estándar de facto implementado (incluyendo a microsoft) antes de 2-3 años (con la excepción del vídeo, dónde los codecs son un problema importante, que no tiene solución a corto plazo).

PD: he añadido la etiqueta web2.0, aunque ya suena anticuado y pasado de moda. Aún así han quedado los cambios más "estructurales" de la web2.0: la web cómo plataforma social, los interfaces ajax, etc.

Para los que trabajen con arduino, sabrán que es un proyecto basado en Processing, un lenguaje y entorno de programación para aplicaciones multimedia e instalaciones interactivas. Lo que quizá no sepan es que processing se ha portado a javascript utilizando la nueva etiqueta canvas de html5: processing.js. En el estado actual, soporta muchas de las instrucciones de processing, excepto las instrucciones 3D, que esperan poder implementarlas cuando se desarrolle una etiqueta canvas 3D (para firefox ya hay un intento de implementación). Además processing.js fue portado por John Resig, creador entre otros proyectos de la librería jquery. Igualmente sorprendente para mí es que muchos de los ejemplos de chrome experiments están hechos con processing.js.

Una ventaja de processing.js sobre processing es que además de ejecutarse en navegadores recientes y aceptables sin ningún plugin (explorer no entra en esta categoría todavía) se integra fácilmente con el entorno web y se pueden agregar otras librerías javascript (jquery, por ejemplo) para realizar experimentos muy visuales.

El lado negativo está en el rendimiento, que no es nada bueno. En mi ordenador con 4 cores, se me quedaba bloqueado porque sólo tiraba de una cpu. Si alguien diseña un proyecto complejo, debería implementar parte de la lógica con web workers.