Saltar al contenido

En TechCrunch además de presentar las últimas novedades de Chrome, se han dedicado a rastrear las listas de correo del proyecto Chrome para buscar las pistas de por dónde puede ir el desarrollo de Chrome OS. Parece ser que Chrome integrará una barra de estado que muestre la carga de la batería (al estilo de las barras de notificación de los escritorios actuales) y un modo de navegación compacto, me imagino que para darle un aspecto más parecido a aplicación de escritorio a las aplicaciones web.

Por mi parte, he hecho una modificación similar a uno de los scripts de Prism, para ocultar completamente la barra de navegación inferior. Es un cambio relativamente sencillo, sólo hay que editar el fichero webrunner.js (aquí está mi versión de webrunner.js, por si alguien se atreve a trastear). Aunque es algo sencillo, ahora mis aplicaciones web están todavía más integradas en el escritorio, aunque la solución óptima sería mostrar la barra en algunos momentos (cuando una página está cargando por ejemplo), con alguna combinación de teclas, o con un menú en la ventana de la aplicación.

Este pequeño hack puede ser muy útil para los usuarios de netbooks mientras no llega Chrome OS. La barra inferior de prism ocupa bastante y normalmente no aporta demasiada información y por ahora no se puede ocultar con la configuración de Prism. La solución definitiva sería hacer algo parecido a lo que tiene Chrome OS: ocultar la barra excepto cuando se está cargando una página,  o bien permitir que se pueda habilitar la visualización de la barra desde una opción del menu de la ventana o mediante una combinación de teclas.

Por cierto, con este parche se consigue otro efecto que es el sueño de muchos desarrolladores de aplicaciones: una aplicación web a pantalla completa. Con la tecla F11 se maximiza la ventana y cómo tenemos oculta la barra de estado, sólo se muestra la aplicación web a pantalla completa.

1

Según TechCrunch, Chrome (navegador) integra notificaciones de escritorio en la última versión para Snow Leopard (Mac). Uniendo esta novedad, junto a los servicios de sincronización, creo que Chrome OS será mucho mejor que cualquier combinación de navegador + OS actual, convirtiendo las aplicaciones web en autenticas aplicaciones de escritorio.

La pena es que no se desarrollen api's abiertas para que esa integración sea independiente del OS y navegador, es el paso que desde aquí me gustaría que diesen en google...

Parece que google no quiere perder el ritmo de evolución de internet y considera que html5 es el futuro de la web. Y es que, según Jay Sullivan VP de Moviles en Mozilla, la definición de html5 permitirá salir de "la jaula de los plugin". Sorprendentemente,  aunque html5 es una especificación sin finalizar, ya está soportada ampliamante en la mayoría de navegadores, a pesar de que probablemente antes de 2010 no será un estándar definido. Pero el gran problema será internet explorer, el navegador de microsoft, que con una cuota de penetración altísima, todavía no soporta éste estándar ni siquiera parcialmente, aunque ha anunciado que lo hará.

Según el artículo de O'Reilly hay varias características que están disponibles ahora mismo o en muy poco tiempo (por ejemplo, Firefox soportará algunas características a partir de la versión 3.5 que estará liberada próximamente):

  • Etiqueta canvas que permite dibujar elementos 2D.
  • Etiqueta video que permite integrar elementos de video dentro de html.
  • Api's de geolocalización para que las aplicaciones web puedan adaptarse a la localización del usuario.
  • Bases de datos de navegador que permitirán almacenar datos en el navegador para trabajar offline (al estilo de Google Gears).
  • Web Workers: un mecanismo para disparar threads (hebras o hilos de ejecución paralela) desde una aplicación web.

Técnicamente, estas etiquetas nos acercan un poco más a flash y al desarrollo de aplicaciones de escritorio, pero es interesante el cambio que se ha producido en la especificación html. No sólo se especifican etiquetas, si no que se han definido una serie de apis, que los diferente navegadores han ido implementando. Creo que el mismo camino pueden seguir las etiquetas 3D, implementadas por google a través de un plugin, pero que permitirá definir unas etiquetas y/o apis estandarizadas, si se establece un diálogo entre las principales empresas de la web. Sólo echo de menos la integración en el escritorio, que google plantea a través de gears, pero viendo el ritmo que lleva la evolución de la tecnología del navegador, no creo que tarden demasiado en aumentar el nivel de integración pues parece el siguiente paso lógico en el desarrollo de aplicaciones web.

1

Finalmente se ha publicado la primera versión beta de prism, con un sitio web nuevo, por lo que parece que el proyecto sigue vivo. Al hilo de esta nueva versión, Matthew Gertner, responsable del proyecto, explica en su blog una idea interesante ¿quién se encargará de la integración la integración de las aplicaciones web actuales con el escritorio?

Lo explica con un ejemplo sencillo: la notificación de mensajes nuevos de correo electrónico en una ventana pop-up. Un usuario "normal" no tiene acceso al nivel de detalle necesario para realizar este cambio, hacen falta usuarios avanzados o desarrolladores de aplicaciones. El desarrollador de la aplicación web tiene la posibilidad de notificar eventos a través de un api, pero Matthew piensa que a corto plazo los desarrolladores web no van a hacer el esfuerzo y yo creo que si no se hace con cuidado se acoplaria demasiado la aplicacion web con la integración en el escritorio.

La opción que promueven en prism (y que me parece bastante correcta) es el desarrollo de un fichero que contenga el código específico de integración, lo que llaman un bundle. La opinión de Matthew es que a partir de ésta versión aparecerán más desarrolladores de bundles que personalicen el comportamiento de una aplicación web.

Esa personalización o integración con el escritorio deberían hacerla los responsables del sitio web, ya que son los que tienen el conocimiento de cómo funciona la aplicación: cuando generar eventos, qué uri's maneja la aplicación o cualquier otro detalle de la aplicación. Pero debería ser opcional: si se utiliza un cliente integrado en el escritorio cómo prism, se cargan los scripts de integración y si no se ignoran. Por eso se podría estandarizar el uso de una etiqueta al estilo de los iconos de aplicación o de flujos rss:


<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />


<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="/rss.xml"/>

Con una etiqueta meta al estilo de:

<link rel="desktop integration" type="application/desktop" title="Desktop integration" href="app.webapp" />

El cliente podría utilizar los scripts de integración con el escritorio en caso de que la soporte. Es decir si el cliente es prism (o un cliente con integración con el escritorio) es usa el fichero webapp y si no se ignora.

De está forma se podría promover un api común a varios navegadores, al estilo de lo que está haciendo google con gears, y se podría generalizar la integración de aplicaciones web en el escritorio.

Por este camino, puede que la "web 3.0" sea desaparición de las aplicaciones web, que se convertirán en aplicaciones integradas en el escritorio.

Estaba repasando una idea de David Recordon del radar de O'Reilly, que propone integrar la autenticación de los sitios que usen OpenID automáticamente en el navegador. Al acceder a internet, el navegador nos pedirá nuestra clave una única vez y se deberá encargar de autenticarse en todos los sitios con OpenID. Es una forma de simplificar la navegación a los usuarios, se ahorrarían la repetición de usarios/claves y muchas autenticaciones duplicadas en multiples sitios.

No es un objetivo nuevo, por ejemplo explorer desde hace mucho tiempo tiene autenticación integrada en el sistema de Windows que se usa a nivel corporativo, también Microsoft lleva tiempo proponiendo el sistema de autenticación Live ID y hay más iniciativas similares de Sun, IBM, etc. La idea de David se centra en mejorar la usabilidad delegando la autenticación en el navegador, evitando repetir el mismo password varias veces y usar un servicio abierto como el de OpenID, cuyo control no está centralizado.

En este sentido, las condiciones que debería reunir un buen servicio de autenticación son:

  • Que sea seguro, obvio, pero sin esta condición no tiene sentido el resto.
  • Que no dependa de un único proveedor, es necesario que los usuarios puedan cambiar de proveedor fácilmente.
  • Que pueda usarse de forma abierta en varios sitios web y dominios de autenticación. Si el servicio sólo sirve a un proveedor o a un grupo, no es útil para el usuario.
  • Que su uso sea lo más transparente posible para el usuario, con el menor número posible de autenticaciones. Con una sola autenticación, deberíamos poder acceder a todos los sitios que estén adheridos al mismo sistema y a las misma credenciales.
  • Que permita el control del usuario. Debería permitir el uso de varias credenciales diferentes y además debería permitir elegir en qué sitios/aplicaciones debería usarse cada credencial de autenticación.

Dave comenta que existe algun plugin para Firefox que cumple este objetivo, pero en mi opinión ésta función debería estar integrada en el sistema operativo, debería ser un servicio disponible para cualquier tipo de aplicación no sólo web. Aunque partiendo de la situación actual, la forma más rápida de llegar a este objetivo es comenzar por el navegador, que actualmente es el componente más abierto de los escritorios. Concretamente a través de un plugin cómo Gears podría desarrollarse de forma multiplataforma para varios sistemas operativos y navegadores.

Además añadiría a esta función la posibilidad  de permitir el acceso a su grafo social, siempre de forma controlada por el usuario. Por poner un ejemplo, si me autentico como Fulanito en un sitio a través de OpenID, por ejemplo gmail y le podría dar permiso a este sitio para acceder a mi grafo social de Facebook, a través de OpenID e importar mis contactos.

Es innecesario cargar con mis credenciales de autenticación (usuario/password) y mi lista de amigos de un sitio a otro, deberían estar compartidos de forma abierta entre las distintas aplicaciones, siempre bajo el control del usuario que es el propietario de sus datos.