SOMBRAENCOUNTER.COM

sombra2eternity log stream
Inicio Proyectos

  • |

La semana pasada me caí de la cama con una nueva idea en la cabeza. Por desgracia no he tenido últimamente mucho tiempo para poner en práctica todas mis locuras. Puede que alguno de vosotros conozcáis mi propuesta de escritorio web Lain, probablemente sepáis del mashup de aplicaciones para entornos empresariales CloudBird que desarrollo, y quizá recordaréis algo de lo que siempre me he jactado, las similitudes en cuanto a arquitectura entre ambas plataformas. Tanto que una aplicación desarrollada para una de ellas podría llegar a funcionar sobre la otra.

Recientemente había estado leyendo bastante acerca del nuevo protocolo de transferencia de datos propuesto por la w3c. Este protocolo está incorporado en eventos como por ejemplo el nuevo estándar de drag&drop declarado por la misma organización. Es increíble la cantidad de posibles usos de estas dos nuevas funcionalidades que me vienen a la cabeza.

Por otro lado siempre me pregunté qué pasaría si algún cliente de colorVamp contrataba ambas plataformas y requería el uso de las mismas aplicaciones sobre ambas. Esto requeriría tocar algunas de estas aplicaciones inevitablemente, ya que las arquitecturas son bastante parecidas pero cada una incorpora características únicas. ¿No sería estupendo que se pudieran portar aplicaciones entre una u otra plataforma 'en caliente'?

Aplicaciones cambiantes

Pues sí, en este momento ya es una realidad. Es posible desarrollar aplicaciones que pueden cambiar de una plataforma a otra en cuestión de segundos manteniendo la integridad de los datos. Esto abre las puertas de Lain a varias aplicaciones desarrolladas por otros usuarios sobre cloudBird. Además optimiza mi trabajo ya que cada vez que realice en una nueva aplicación, varias plataformas se benefician de ese código en lugar de una sola. A continuación incluyo un screencast donde se muestra el proceso.

Información técnica

Realizar esta característica ha supuesto varios retos:
  1. La forma más lógica de codificar cada aplicación era a través de JSON, sin embargo, las aplicaciones desarrolladas para estas plataformas están repletas de objetos poco portables, como son las funciones (métodos). Tuve que idear una variante para poder salvar este obstáculo, el reto era mantener la eficiencia y que fuera una solución limpia.
  2. El sistema de drag&drop utilizado por las plataformas es diferente al estándar, que es el que permite la comunicación entre navegadores. No fui capaz de disparar el evento de drag estándard al tiempo que hacía los efectos a mi manera, es por ello que hay que emplear el método mostrado en el vídeo para 'comprimir' la aplicación. De esta manera se recopila la información que va a ser transmitida y se cambia en tiempo real el sistema de drag&drop.
  3. Hubo que limar algunas asperezas entre las dos plataformas. Así ha sido posible crear aplicaciones lo suficientemente agnósticas como para funcionar correctamente en ambas usando el mismo código. Ambas plataformas usan ahora algoritmos mucho más inteligentes para la gestión de aplicaciones.

*Ha sido mi primer screencast y he tenido que hacer algunos malabares de codificación para que entrase en youtube. Intentaré que en el futuro estén acompañados de subtítulos explicativos y a una velocidad menor ;-)

Déjanos un comentario

Cualquier comentario cuyo contenido esté formado por un lenguaje inadecuado, así como mensajes ofensivos o spam, será eliminado y/o modificado. Para informar de un abuso o de un comentario de estas características, pulse aquí.
Aceptar
Acerca de / Estadísticas de visitas / Contacto sombra2eternity • 2008-2010
El contenido está bajo una licencia CC, por lo que puedes usarlo libremente para fines no comerciales siempre y cuando indiques el origen.