Las aplicaciones para Android están normalmente escritas en Java, pero uno de los numerosos grupos que trabajan en diferentes proyectos en Google está experimentando con una nueva forma de desarrollar para Android usando Dart, el lenguaje web diseñado por Google. El objetivo es escribir aplicaciones sin depender de Java y que sean más rápidas y con una mayor facilidad de estar integradas con el mundo web.

Dart está creado por los desarrolladores del popular Chrome V8 engine (Node.js), tras la frustración constante sufrida al desarrollar aplicaciones web con lenguajes no diseñados para ese menester debido a su antigüedad. En una conferencia sobre Dart se ha enseñado los primeros pasos de Dart para Android. Se llama Sky y es opensource. Está en una fase preliminar, pero es prometedor.

El mayor objetivo del proyecto es brindar una nueva cuota de fluidez y rapidez a Android. Ahora mismo 60 fps (imágenes por segundo) es la tasa a la que los desarrolladores intentan llegar, aunque por desgracia no siempre se llegue a ello. El proyecto Sky establece una tasa de 120 fps que, por el momento, carece de sentido por los 60hz de refresco de los LCD y AMOLED que usan nuestros smartphones. Pero ya hay monitores de 120hz e incluso de 144hz con grandes mejoras a la fluidez con la que vemos el movimiento a través de la pantalla. A más refresco menos blur y screen tearing.

En la demo presentada en la conferencia, el hardware conseguia renderizar frames cada 1.2ms. Y aunque sea una demo, es bastante espeactacular considerando que se tiene que renderizar una imagen cada 8ms para conseguir una tasa de 120 fps. El "truco" está en que el hilo de la UI principal nunca se bloquea al llamar a APIs del sistema operativo, por lo que el usuario, aunque haya esperas y ralentizaciones, nunca las apreciará en la interfaz.

El otro punto clave de Dart es la web. Por ello no depende de ninguna plataforma en concreto y podrá ejecutarse la aplicación en Android, iOS o cualquier SO que tenga una máquina virtual Dart. Casi todas las llamadas ejecutadas en el código de la aplicación son servidas a través de HTTP, siendo las URL la base de Sky (Dart para Android). El inconveniente es que la aplicación no podrá funcionar cuando estás offline y la aplicación tardará 1 o 2 segundos en cargar debido a que tiene que ejecutar las llamadas HTTP y descargar la información, algo que se puede arreglar mediante caché, supongo.

Depender de llamadas HTTP tiene una gran ventaja: todo depende del servidor. El desarrollador no necesitará editar el código, compilarlo y mandar a revisión. El código estaría alojado en el servidor web y se serviría a todos los clientes, tan sólo tendrían que cerrar y abrir la aplicación para actualizarla. Es muy parecido a cómo funcionaría una página web.

En Android ya hay disponible un pequeño framework que permite diseñar la aplicación de forma sencilla con numerosos elementos Material Design. Las aplicaciones desarrolladas con Sky tendrían acceso a todas las API de Android, como una aplicación común desarrollada en Java, pero con la ventaja de estar integrada al 100% con la web y ser mucho más rápida y eficiente.

Depender de la web para ejecutar una aplicación es todavía una locura, pero con cada vez más usuarios conectados las 24 horas del día y las facilidades que supondría a los desarrolladores, no es descabellado que el futuro se asemeje a estas pinceladas en el presente.

  • Github del equipo de desarrollo de Sky.

  • He descubierto la presentación a través de Arstechnica.