WebApp API’s, el trabajo en las trincheras no cesa

La construcción de un estándar en la industria informática es algo muy complejo, con intereses encontrados y muchísimo dinero en juego. Si hablamos de hardware o telecomunicaciones, es una lucha a múltiple bandas entre los pesos pesados de la industria, los gobiernos y todo actor que tenga suficiente influencia.

En el caso del software, bajo la omnipresente filosofía del Open Source, los procesos son mucho más abiertos, al ser públicos y accesibles. Y es importante la reputación de los promotores en un ambiente muy sensible a las presiones que no sean puramente técnicas.

Además, a diferencia de cuando un estándar ha significado millones de euros en investigación, los resultados en software deben pasar la última prueba: que la comunidad los adopte. Que no siempre ocurre y no siempre por razones prácticas.

El paradigma actual al que me refiero es la creación de las futuras API para las Aplicaciones Web para dispositivos móviles ( WebApp). Un trabajo en la sombra en la búsqueda de la construcción de librerías de conexión entre el navegador y el dispositivo sobre el que corre.

Permitiendo poder hacer aplicaciones Web que accedan a los recursos de, por ejemplo, la cámara de fotos, los sensores de posición o temperatura o la gestión de la batería, al igual que actualmente se puede acceder a las capacidades de geoposicionamiento.

Hay múltiples actores involucrados, pero yo realizo el seguimiento de la W3C, de la WAC y del grupo mozilla.dev.weapi. Y hay que reconocer que trabajan como hormigas para construir un futuro para todos.

W3C

En W3C tienen un modo de trabajo formal en donde lo primero es realizar invitaciones para escribir borradores, revisarlos y publicarlos de forma iterativa. Ir publicando borradores cada vez más avanzados hasta llegar al estado de candidato y finalmente a recomendación. El último paso es que se convertir esta recomendación en un nuevo estándar.

Para trabajos relacionados con el tema de este artículo, la W3C tiene el Web Applications Work Group, que trata todo aquello relacionado con las WebApp. El cual, a su vez, está compuesto por 14 grupos de trabajo especialistas en un tema.

Por ejemplo, la W3C solamente en el mes de septiembre ha realizado publicado anuncios sobre asuntos tan variopintos como: * Módulo de reglas condicionales en CSS. * Actualización del XSL-FO * Websocket API * Esquemas Web: Formato de datos. * Módulo de tipografías (fuentes) en CSS

Mozilla WebAPI team

Otro gran impulsor de la normalización de las API para las futuras aplicaciones Web sobre dispositivos móviles es Mozilla.

Esto se ha plasmado en el Mozilla WebAPI team. Grupos de trabajos públicos en donde se va desarrollando las futuras implementaciones, se discuten, se mejora y finalmente, se remiten al W3C para que sean propuestos como recomendaciones y estándar. Tienen una Wiki muy limpia y accesible en donde se reúne toda la información sobre los grupos de trabajo y los resultados que se van obteniendo.

Personalmente me encanta poder acceder de forma rápida al código que está en discusión y evolución y los interesantes planteamientos de donde emergen las mejoras, accesibles en la lista de correo o en IRC. Por ejemplo, en el grupo de trabajo de la API de telefonía se muestra esta propuesta para realizar una llamada telefónica,

var call = navigator.telephony.newCall('+34638883076');
call.onreadystatechange = function() {
   if (this.readyState == 'connected')
     window.console.log('Connected!');
}

A lo que fue contestado con una propuesta de cambio para aumentar la flexibilidad de la API, si se añadiera un prefijo al estilo de las URI. Así se obtendría la capacidad de poder hacer llamadas no solamente a números de teléfono, si no a otro tipo de dispositivos como podría ser una videoconferencia.

var call = navigator.telephony.open("tel:+33612341234");
var call = navigator.telephony.open("sip:account@email.com");

Como la idea es muy buena, fue aceptada.

Y así, poco a poco, el trabajo de unos pocos va revolucionando nuestra Sociedad de la Información, siendo tan apasionante el proceso como el resultado.

Más información | W3C Web Applications (WebApps) Working Group Más información | Mozilla WebAPI team

Portada de Genbeta