texto:   A-   A+
eliax

HTML 5 a ser punto de inflexión en aplicaciones de Internet/móviles
eliax id: 6233 josé elías en feb 19, 2009 a las 11:43 AM (11:43 horas)
Una tecnología que poco a poco se ha venido infiltrando en Internet, y a la cual pocos han prestado la atención debida, es HTML 5, y hoy quiero escribir una nota para que entiendan por qué creo que esta tecnología será un punto de inflexión en aplicaciones conectadas a Internet, en particular a dispositivos móviles.

Primero quiero decir que es entendible que a HTML 5 no le hayan dado la cobertura en los medios que creo se merece, ya que para muchos HTML 5 es simplemente "otra versión mas de HTML". Y para desarrolladores web en particular, los cuales por años han estado peleando con sus aplicaciones para adaptarlas a todas las versiones de HTML en distintos navegadores, es posible que HTML 5 no se recibido con buenas noticias.

Sin embargo, es buena que sepan que HTML 5 no es simplemente una progresión en el lenguaje de etiquetas de HTML. Lo que hace a HTML 5 tan potente (y créanme que en un futuro no lejano se hablará de "los tiempos antes y después del HTML 5"), es la inclusión de 2 tecnologías que apuntan hacia la nueva tendencia en programación de aplicaciones locales de Internet.

Estas tecnologías de las cuales hablo son específicamente Almacenamiento Offline y App Cache.

Almacenamiento Offline (también referido como Offline Database) es una manera de uno poder acceder desde HTML 5 (por medio de métodos de Javascript) a una base de datos local (la implementación siendo por lo general SQL Lite).

Esto significa que una página web podría (con el permiso del usuario) crear una base de datos local en donde almacenar información estructurada para en un futuro estos datos poder ser accedidos por medio del lenguaje SQL de acceso a bases de datos.

Así que por ejemplo, una página web podría pedirte permiso para almacenar varios archivos adjuntos de email locales en tu navegador, para que así si en un futura quieras abrirlos, estos ya estar disponibles en tu navegador sin tu tener que volver a descargarlos.

La otra tecnología es AppCache, y esta lo que hace es permitir especificarle a tu navegador web que después que descargue una página web, que la mantenga copiada localmente, para que en el evento de que en un futuro no tengas conexión a Internet, tú puedas de todas maneras tener acceso a esa página.

Un ejemplo de esto sería una página que muestre una receta de cocina que te guste. Con HTML sería posible que el creador de esa página de esa receta la marque para que tu navegador pueda "recordar" la página sin tu tener que conectarte a Internet.

Sin embargo, estas dos tecnologías por sí solas son solo útiles hasta cierto punto, la gran utilidad es cuando se utilizan en conjunto (y noten que fueron específicadas en HTML 5 con el objetivo de que sean utilizadas en conjunto), ya que ahora es posible no solo descargar una aplicación web completa a tu dispositivo móvil (o PC) para que esta funcione aun sin Internet, sino que además con el Almacenamiento Offline sería posible que la aplicación funcione como si estuviera conectada a Internet, utilizando datos locales en vez de en Internet.

Un ejemplo de esto sería una aplicación para punto de venta. Con un dispositivo iPhone, Android o Palm Pre uno podría lanzar una aplicación web sin conexión a Internet para tomar órdenes de clientes, en donde tales órdenes se almacenarían localmente, pero en el momento de uno conectarse a Internet los datos subirían a la versión en Internet de la aplicación, haciendo este tipo de aplicaciones bastante flexibles.

Sin embargo, la razón por la cual digo que HTML 5 es un punto de inflexión en tecnologías de creación de aplicaciones, no es porque sea novedoso, ya que esto es posible hoy día con el iPhone, y será posible próximamente con el Palm Pre, en ambos casos de manera propietaria, sino porque por primera vez será posible crear aplicaciones web universales que se comportarán como aplicaciones locales y que funcionen en cualquier navegador web que soporte HTML 5.

Lean ese párrafo anterior otra vez si aun no entienden. En otras palabras, por primera vez será posible circunnavegar las limitaciones que imponen empresas como Apple, Google, Palm o Microsoft sobre qué tipo de aplicaciones se pueden instalar en sus dispositivos, ya que estas aplicaciones son simples aplicaciones web, pero que se instalan y funcionan como aplicaciones casi nativas del dispositivo local (sea un celular o una laptop o cualquier otro dispositivo que soporte HTML 5).

Ahora, como muchos ya sabrán, esto tiene sus limitantes, entre ellas siendo que con solo HTML 5 no obtienes acceso a los APIs (interfaces de programación) de bajo nivel del dispositivo en cuestión. Así que por ejemplo con solo HTML 5 no podrías acceder a leer los datos de contacto del dispositivo móvil, o quizás los valores del acelerómetro o compás digital, o a la cámara de video, o a los gráficos en 3D, etc.

Sin embargo, como dicen coloridamente "las compuertas de la represa ya están abiertas y no hay marcha atrás". Gracias a este humilde comienzo de HTML 5, pueden apostar a que de aquí en adelante veremos esfuerzos para estandarizar acceso desde HTML/Javascript a estas funciones de bajo nivel.

Es mas, podemos decir que ese proceso ya inició con el nuevo modelo de programación del Palm Pre, el cual hace justamente esto: Expone APIs de bajo nivel a través de llamadas de Javascript, aunque aun no con un estándar abierto sino que uno propietarios de Palm por el momento.

Eso significa que no duden que en un futuro podremos hacer aplicaciones web que utilicen gráficos de bajo nivel (ya hay una iniciativa en proceso en este aspecto con el componente Canvas que vimos primero masificarse en Firefox), tengan acceso al acelerómetro (como lo hace Apple), a las demás aplicaciones instaladas (como lo hace el Palm Pre), e inclusive a información de posición geográfica GPS (que ya es posible por medio de la especificación GeoLocation de la W3C.

Ahora, no crean que esto está tan lejos. Justo esta semana Google demostró una versión de HTML 5 de GMail funcionando en el simulador del iPhone, así como en un celular real de Android (ver abajo), y además demostró una versión de Google Maps para el Palm Pre que no es nativa sino que está escrita en puro HTML 5, utilizando el API de GeoLocation.

Así que ya saben, ahora nos toca a nosotros como desarrolladores de software a presionar a todas las entidades que crean estos navegadores web para que soporten estos estándares de APIs, así como proponer nuevos para su inclusión en lo que sería una verdadera plataforma universal de aplicaciones web locales.

Noten que he evitado citar a Java y Flash para no aumentar el largo de este artículo y distraer del punto importante que quería hacer, pero en un artículo futuro, o quizás en los comentarios, escriba por qué no creo que puedan competir contra HTML 5 en un futuro.

Tampoco mencioné a Google Gears, que es una tecnología que ofrece mucha funcionalidad (y quizás mas avanzada) similar a la que ofrece HTML 5, pero a la larga creo que saldrán frameworks para HTML 5 que harán buena parte de lo que hace Google Gears y sin tener que instalar nada.

Y finalmente tampoco escribí sobre las diferencias en ejecución de código de Javascript vs código nativo, ya que escribí algo al respecto hace mucho y que pueden leer en este enlace.

Nota: Este artículo original está archivado en eliax bajo "Opinión / Análisis". Si les interesa saber mis otras opiniones y/o análisis de diversos temas pueden hacerlo como siempre haciendo clic en esa categoría de noticias a la derecha de la página de eliax.

Ahora los dejo con dos videos de Google. El primero es una demostración de GMail con acceso sin Internet tanto en iPhone como Android, y el otro Google Maps para el Palm Pre.

Video 1 (enlace YouTube)...


Video 2 (enlace YouTube)...


Nota: Predicciones de eliax para el año 2008 (Diciembre 2007 - en mi predicción #7 de ese año predije que Apple incluiría la funcionalidad de almacenamiento local en Safari, como ocurrió efectivamente un año después).

autor: josé elías

Comentarios

  • La predicción #7, no la entiendo, te refieres al Safari del iPhone?

    • Dice eliax "en mi predicción #7 de ese año predije que Apple incluiría la funcionalidad de almacenamiento local en Safari, como ocurrió efectivamente un año después"

  • Soberbias tus observaciones Jose Elias. Quiero ahora que escribas de Java y Flash para entender todo el panorama mejor.

  • Sera el HTML 5 como tener un servidor web instalado? como apache por ejemplo, por que de que otra forma me imagino trabajando una pagina web completa a nivel de programacion?

    • Mas o menos.

      La idea es que si no estás conectado a Internet y pides una página web, que el navegador detecte si es una página con tecnología de HTML 5 (por decirlo así) y "servirte" la página localmente como si fuera el servidor web remoto. En términos técnicos: Detectar si la página ha sido puesto en el cache por medio de AppCache.

      Sin embargo NO CONFUNDIR un servidor web con que el navegador tenga una copia previamente guardada. Son dos cosas muy distintas.

      La idea después es que con técnicas de AJAX (mayoritariamente de Javascript, DHTML y con el API de base de datos) escribas tu aplicación para que esta puede ejecutarse sin necesidad de tener "que salir a Internet".

      Es decir, este tipo de aplicaciones deben ser planeadas de antemano para que funcionen de manera desconectadas, y por tanto para que sean auto-suficientes, teniendo todo lo que vayan a necesitar de antemano (imágenes, código de javascript, archivos CSS, páginas HTML, datos en una base de datos, etc).

      Ahora, si ya tienes aplicaciones con técnicas de AJAX, y estas utilizan mucho el acceso remoto a servidores web, la modificación que harías sería de 2 pasos:

      1. Aislar las llamadas remotas y ponerlas en funciones atómicas con un API bien definido.

      2. Después de probar que todo continúa bien, proceder a poner una condición dentro de esas funciones atómicas, para que si no hay conectividad a Internet acceder a los datos localmente en vez de remotamente por medio de HTTP.

      Notar que la idea de aislar las llamadas AJAX remotas en unidades atómiccas es para que no rompas tu propio API y la aplicación continúe funcionando como fue diseñada originalmente.

      Y obviamente, dependiendo de tu aplicación, es posible que tengas un paso 3, el cual es sincronizar datos almacenados localmente durante los momentos de desconexión con los datos remotos en el momento que haya conexión.

  • Algunos contras de Windows 7

    Windows 7 y su floreciente sistema DRM
    http://www.rebelion.org/noticia.php?id=81035

    • Lo que yo necesito es activar mis videos de you tube en mi spacio

  • Mozilla Labs (el grupo dentro de Mozilla encargado de crear tecnologías experimentales, con miras a futuras aplicaciones prácticas, como sucedió con el navegador Firefox) recién acaba de abrir al público un nuevo proyecto llamado Bespin que creo tiene muc

  • Si necesitabas una excusa para descargar el navegador web Safari de Apple para Windows (o si quieres lo mejor de otros navegadores en Safari en OS X), aquí ya la tienes, porque Apple justo acaba de hacer disponible la versión 4 en forma de beta pública (e

  • HTML 5 Debería establecerse de una vez por todas!

    No se que es lo que esperan.

  • creo que les debería pasar por la cabeza leer este articulo que le da una vez mas esperanzas a Flash sera que sobrevive a esta guerra?
    http://www.geeky-gadgets.com/google-topromote-adobe-flash-in-android-2-2-18-05-201/

  • Han habido muchos avances hasta ahora, espero que todo siga asi

  • La gracia estaría ahora en saber esa base de datos dónde se almacena, cómo interactuar con JavaScript, hacer peticiones a la misma, compatibilidades con, por ejemplo, Silverlight, ejemplos varios...
    He visto muchas webs con la teoría (siendo esta la mejor con diferencia), pero echo en falta ya no el qué puede hacer sino el cómo hacerlo.

    Un saludo y enhorabuena por el post.

  • No me canso de leer este artículo. Viva HTML5 !!!

    :P

  • Que interesante! Yo se nada de htlm y creo que hasta ahora ni sabia que tal cosa existia! Pero he visto los videos y he leido tu articulo. Hoy he aprendido mucho.

    Gracias.

Añadir Comentario

tu nombre
tu email
(opcional)
web personal
(opcional)
en respuesta a...
comentario de caracteres máximo
2 + 3 = requerido (control anti-SPAM)
 

"Si algo me llena de verdadera y cruda envidia es esto. Si alguna vez soñara con ser millonario sería para poder hacer esto."

por "Reinaldo" en abr 6, 2011


en camino a la singularidad...

©2005-2014 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax