Flutter: aplicaciones móviles multiplataforma más rápidas

trying-out-flutter

Flutter es un framework para interfaces de usuario móviles. Si revisa la descripción en su sitio, presentan Flutter como:

Flutter es el SDK de la aplicación móvil de Google para crear interfaces nativas de alta calidad en iOS y Android en un tiempo récord.

He usado Cordova, Ionic/Ionic 2React native y estaba probando QT Mobile. Estaba buscando alguna herramienta que no tuviera las enormes fallas de rendimiento que vienen con Cordova e Ionic, y que fuera multiplataforma.
Qt Mobile es muy rápido, pero te obliga a usar Qt Creator (IDE de QT) y hay algunos detalles que son más complicados de configurar para comenzar (como hacer solicitudes https).

React Native también es bastante bueno, y si has trabajado en React anteriormente, será fácil comenzar, pero quería darle una oportunidad al nuevo chico en el bloque, algún marco en estado beta que promete entregar aplicaciones «nativas» que usan Dart.

Empecé a comprobar de qué se trata Flutter. Tiene una sintaxis extraña (la sintaxis de Dart tiene muchos shorthands, es decir, constructores), pero la conclusión de esa primera revisión es que todo es un Widget y que todo lo que tienes que hacer es construir tu widget basado en otros widgets.
Flutter has material design support out of the box, so you can actually make pretty decent looking screens without much effort from the start.

Este no es un tutorial de código, así que no profundizaré en eso. Hay varios recursos por ahí ya. En cambio, compartiré  las características más útiles que encontré al usar flutter.

Pasar de cero a tener una aplicación en app/play store en 3 semanas

Comencé a trabajar un par de horas por la noche, y al final de la segunda semana tenía una aplicación con 4 pantallas y completamente funcional (nada complejo, pero aún así). Tanto tiempo no es mucho, dado que fue mi primer intento de usar flutter. Tenía mi aplicación lista para vivir en las tiendas.

En la tercera semana, me concentré principalmente en la configuración específica de la plataforma, configurando herramientas como firebase, crashlytics, etc. Además, el proceso con lanzamientos a Play Store y App Store siempre lleva algún tiempo.

Una cosa que me encanta de flutter es que te enfocas principalmente en el comportamiento, mientras que la interfaz de usuario simplemente funciona. Paso más tiempo cambiando el flujo de mi aplicación y agregando nuevas características que luchando contra la interfaz de usuario.

En el modo de lanzamiento, las aplicaciones son RÁPIDAS (lo digo en serio). Lo comparé con una aplicación React Native bastante reciente en la que trabajamos, y fue mucho más rápido. Además, el paquete generado es bastante ligero, a diferencia de Cordova que comenzó con 30 y pico MB la última vez que lo revisé, flutter comienza alrededor de las 9.

La recarga/reinicio en caliente son realmente calientes

A diferencia de la dolorosa recarga en vivo en Ionic, las características más populares de flutter ahorran tiempo real. Puede volver a cargar su aplicación cuando realiza un cambio en su aplicación y ver los cambios en un segundo. Hay algunas limitaciones que requieren un reinicio caliente pero en general, siempre puede tener una versión actualizada en ejecución.

Dart es fácil

Cuando comienzas con un nuevo idioma, siempre hay una curva de aprendizaje, pero si conoces JavaScript y quizás un poco de Java, ya sabes la mayor parte de lo que Dart requiere para comenzar. Dart está escrito, lo que le brinda el poder del análisis estático. Combine eso con las comprobaciones de tiempo de ejecución y tendrá la garantía de que las variables que ha anotado con un tipo siempre serán de ese tipo cuando se evalúen, o se generará una excepción. Esto evitará que su aplicación entre en un estado no válido.

Se ejecuta fácilmente en Android y IOS

En el pasado, tuve problemas para ejecutar el «framework multiplataforma» en cualquier dispositivo. Con flutter, solo conecta un dispositivo o inicia un simulador/emulador y ejecuta:

flutter run

Tendrá la aplicación en su dispositivo móvil sin más comandos para ejecutar. Descargará las dependencias que proporcione a su proyecto y lo ejecutará si es correcto.

Para configurar dependencias, necesita actualizar el archivopubspec.yaml. Puede configurar muchas cosas allí, y tener eso centralizado es bastante útil.
El único problema que tuve fue instalar complementos nativos para la aplicación que requiere modificaciones build.gradlea algún archivo plist, pero eso debe ser hecho de cualquier manera.

¡Inténtalo! No se arrepentirá

Flutter todavía está en beta, pero probablemente se convertirá en la corriente principal en los próximos años. Es un ahorro de tiempo real y acelerará su proceso de desarrollo. ¡Sin duda el mejor marco móvil que he probado hasta ahora!