Noticias

Google lanza la primera beta de Flutter, su framework de desarrollo nativo para iOS y Android

El framework se programa en Dart, usa Material Design como lenguaje de diseño y genera código nativo para ambas plataformas

Resumen del artículo

  • Google lanza la primera beta de Flutter, su nuevo framework nativo de desarrollo multiplataforma, basado en Dart y su lenguaje de diseño Material Design, que permite una integración y funcionamiento con ambas plataformas de muy alto nivel. Os contamos en qué consiste y sus características.

Uno de los principales problemas que tiene el desarrollo móvil, es uno que no es implícito al propio desarrollo. Su problema radica en algo tan simple como que iOS y Android tienen frameworks oficiales diferentes, así como distintos sistemas operativos. De hecho, incluso tienen otra diferencia clave y es que iOS funciona con código nativo contra el hardware del dispositivo, mientras que Android corre sus apps contra una máquina virtual Java que es la que da servicio a la SDK oficial del sistema. Es cierto que también hay otras formas de ejecutar apps en ambas plataformas, como por ejemplo usando frameworks híbridos donde la interfaz se ejecuta contra un visor web del sistema.

Lo cierto, es que el hardware sobre el que se monta un sistema iOS y otro Android no es tan distinto. Sucede exactamente el mismo paradigma que nos encontramos en el mundo de los ordenadores, donde el hardware en sí de un Mac o un PC cualquiera es absolutamente compatible. La única diferencia es que Apple pone su sistema en máquinas que ellos hacen y solo crean drivers o controladores para los componentes que ellos ponen en sus máquinas. iOS es igual en ese sentido. Funciona en un hardware creado por Apple con unos chips puestos por ellos que controlan que iOS no se ejecute en ningún dispositivo que no sea fabricado por ellos, pero como tal, la arquitectura ARM usada en Android o iOS es exactamente la misma.

Partiendo de esa premisa, realizar desarrollo nativo multiplataforma no es excesivamente difícil y al final, un sistema como tal, tiene varias capas de bajo nivel que pueden ser usadas por los creadores de frameworks (como Metal u OpenGL) para proporcionar sus propias soluciones de construcción de interfaces que serán 100% compatibles con ambos sistemas, Android o iOS, realizando obviamente algunos pequeños ajustes para cada plataforma. Ajustes que son totalmente transparentes para el desarrollador final. Y que funcionarán siempre y cuando al final lo ejecutado sea código binario ARM y los frameworks ejecuten C o Java en el caso de Android.

Flutter viene aprovechando esto para ofrecer a los desarrolladores un framework diferente al oficial de Android, programable en Dart (lenguaje creado por la propia Google como evolución de Javascript), que usa el lenguaje de diseño Material Design, que se pega a la SDK oficial con Java pero que, además, permite crear y generar interfaces para iOS y conectarlas con los componentes nativos de la plataforma. E incluso, como es habitual, aquellas funciones que están presentes en ambas plataformas pueden ser usadas con un código similar y ya se encarga el compilador de conectar por detrás a las llamadas nativas de cada sistema operativo en un puente de especificación de código.

Flutter es el framework que la propia Google usa para algunas de sus apps en iOS y ahora lo ha publicado como beta, liberado como código abierto y ofrecido a los desarrolladores completamente gratis. Es compatible con los IDEs Xcode, IntelliJ IDEA, Android Studio o el editor Visual Studio Code (tanto en Windows como Mac). Y una de las grandes ventajas que aporta es la compilación de cambios en tiempo real, que permite cambiar la interfaz al vuelo sobre el código y que sobre una app ejecutada en modo depuración en un dispositivo o en un simulador, cambie el aspecto de la app en tiempo real sin tener que cerrar y volver a re-compilar todo. Básicamente, la capa de construcción de la interfaz está conectada a un nivel de servicio, por lo que permite hacer estos cambios al vuelo.

Flutter ofrece características claves para un framework de nueva generación, como que por ejemplo que estaremos trabajando con un framework reactivo que funciona a partir de observadores unido a eventos para crear acciones asíncronas en el sistema, un completo conjunto de widgets multiplataforma para construir apps que además integran interacciones o animaciones y la comentada función de refrescar las interfaces al vuelo denominada Hot Reload. La capa de widgets está compuesta de librerías de animaciones, componentes construidos por capas y una arquitectura extensible que funciona en ambas plataformas iOS y Android aprovechando de manera nativa la aceleración de hardware de CPU y gráficos, usando código ejecutable nativo ARM compatible.

Flutter funcionando en tiempo real
Flutter funcionando en tiempo real

Flutter ya estaba disponible en estado alfa el pasado año, pero en todo ese tiempo ha ganado importantes características como soporte para lectores de pantalla y algunas otras funciones de accesibilidad para personas con capacidades reducidas o nulas en visión, oído o movimiento, localización de las interfaces y adaptación de internacionalización (incluye soporte para lenguajes que se leen de derecha a izquierda), vídeo en línea integrado, varios formatos de imagen soportados e incluso soporte para iOS 11 y de diseño para la pantalla del iPhone X.

Flutter no es un framework nuevo como tal, aunque ahora haya llegado a su primera versión beta. Es un framework que ya ha sido usado para varias apps que están presentes en las distintas tiendas de aplicaciones y que ha ido mejorando sobre un uso real de determinadas empresas o desarrolladores. No solo eso, existen más de 1.000 paquetes de funcionalidades disponibles para Flutter que le permiten integrarse con SQLite, Facebook Connect o Firebase.

Esta versión beta de Flutter además estrena soporte para la versión de pre-lanzamiento de Dart 2, con características muy interesantes como la inferencia de los declarativos como new o const. Además, una de las cosas más interesantes en las que se está trabajando, es la posibilidad de mezclar una app nativa hecha en iOS o Android con interfaces y funcionalidad hecha en Flutter, de forma que puedan llamarse los componentes los unos a los otros y puedan integrarse pantallas o un conjunto de ellas hechas en Flutter junto a una app que ya esté hecha nativamente en Objective-C, Swift, Java o Kotlin (según el sistema). Por lo que podría haber una mezcla de diferentes frameworks o APIs de Flutter u oficiales de la plataforma, y que puedan llamarse la una a la otra con código ya escrito para una app. Esto permitiría hacer crecer una app existente desde Flutter, lo que mejora su implementación y uso.

Sin duda, sobre la mesa, parece muy interesante por lo que os iremos informando del progreso de este framework nativo multiplataforma para iOS y Android creado por la propia Google. Podéis echarle un vistazo accediendo a la fuente de la noticia y siguiendo las instrucciones para instalarlo y probarlo en vuestras máquinas Windows o Mac. Un saludo y Good Apple Coding.

Fuente
FlutterAnnouncing Flutter beta 1: Build beautiful native apps
Etiquetas

Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Artículos relacionados

Close
Close