¿Por qué a los creadores de aplicaciones les encanta Flutter? Porque Flutter es asombroso.
Flutter atiende tanto a empresas (al ofrecer costos de desarrollo razonables) como a desarrolladores (al ofrecer una gran facilidad de uso y velocidad). Es por eso que algunas grandes empresas se han cambiado a Flutter, como Google Ads, Alibaba, Reflectly y muchas más.
Google ha hecho un gran trabajo construyendo Flutter y continúan mejorando aún más este marco.
En esta publicación, daré una descripción general rápida de Flutter y sus nuevas ventajas, y hablaré sobre por qué vale la pena trabajar con este marco. Además, discutiré lo que puede impedir que las grandes empresas adopten Flutter.
Pero lo primero es lo primero.
¿Cuál es la esencia de Flutter?
Aquí hay cosas sobre Flutter que quizás ya conozcas:
- es un conjunto de herramientas multiplataforma de código abierto
- las aplicaciones están escritas en el lenguaje de programación Dart
- tiene su propio motor gráfico (Skia)
- es compatible con tres plataformas oficialmente: iOS, Android y web (en beta)
- extraoficialmente, también es compatible con el escritorio
Google presentó la primera versión de Flutter a fines de febrero de 2018. A partir de abril de 2020, la versión 1.12 está disponible.
¿Qué tiene Flutter de especial?
Flutter combina la calidad de las aplicaciones nativas con la flexibilidad del desarrollo multiplataforma.
En realidad, muchas herramientas multiplataforma le permiten escribir el código una vez y usarlo tanto en iOS como en Android. Sin embargo, no todos pueden mostrar el mismo aspecto como una aplicación nativa.
Pero eso es exactamente lo que hace Flutter: en lugar de ser un contenedor sobre los componentes nativos de la interfaz de usuario (como React Native y Xamarin), Flutter dibuja la interfaz de usuario desde cero.
Flutter mantiene la experiencia nativa y la sensación de la aplicación, y no tiene que preocuparse por su rendimiento en ninguna plataforma.

Además, dado que Flutter es un marco de código abierto, cualquier desarrollador puede realizar cambios en GitHub y enviar solicitudes de fusión. Y si echas un vistazo a la popularidad de Flutter ( 90.4K estrellas de GitHub , 12k bifurcaciones y 18,445 confirmaciones ), obtendrás la idea de que los desarrolladores aman Flutter y contribuyen a mejorarlo.
¿Cómo funciona Flutter?
Flutter no se compila directamente en aplicaciones de iOS o Android . Las aplicaciones se lanzan en base a una combinación de motor de renderizado (construido en C ++) y Flutter (construido en Dart). Todos los archivos generados de esta manera se adjuntan a cada aplicación y al software de ensamblajes SDK para una plataforma específica.

Es como el desarrollo de un juego: un juego no asigna su marco y la funcionalidad se lleva a cabo con el motor del juego. Lo mismo para el software Flutter: todas las aplicaciones basadas en el SDK de Flutter reemplazan partes de los marcos nativos con elementos de Flutter.

Aunque puede afectar el tamaño de la aplicación final, el rendimiento sigue siendo bastante bueno: el renderizado se realiza con velocidades de hasta 120 FPS .
Debido a la compilación nativa para procesadores ARM, la representación simple y un conjunto de herramientas y widgets integrados, Flutter simplifica el proceso de desarrollo.
Además, ofrece algunas características muy sabrosas como Hot Reload .
Así es como funciona:
Cuando hace clic en el botón Hot Reload, todos los cambios en el código se muestran en gadgets, emuladores y simuladores de inmediato. La aplicación continúa funcionando desde donde estaba antes de realizar la recarga en caliente: el código se actualiza, pero la ejecución continúa.

¿Por qué elegir Flutter para aplicaciones multiplataforma?
Las nuevas versiones de Flutter seguirán apareciendo con funciones más avanzadas bajo la manga. Pero ya hay muchas características mejoradas que explican perfectamente por qué Flutter es tan querido.
Primero , el desarrollo multiplataforma con Flutter, contrariamente a la creencia popular, no empeora el software.
Flutter viene con todos los widgets nativos para interfaces de Android e iOS como Material Design y Cupertino. Además, el marco puede cambiar el comportamiento de elementos separados para crear una experiencia de usuario similar para los usuarios de la aplicación.
En segundo lugar , Flutter hace posible implementar la compilación de archivos discretos en el modo dev. La compilación JiT acelera el desarrollo y la depuración de software.
En tercer lugar , Flutter permite un backend flexible y escalable.
Admite complementos como Firebase, SQLite, etc. (pub.dev lo ayudará a encontrar el que necesita). Firebase hace que la infraestructura de la aplicación sea escalable, sin servidor y redundante.
Entonces, si está trabajando en aplicaciones que requieren bases de datos en tiempo real o funciones en la nube, Flutter lo respalda.
Y el último: Flutter es muy fácil de aprender .
Desde el principio, los desarrolladores de Google se propusieron reducir la barrera de entrada. Desarrollaron cuidadosamente la documentación y los recursos que los desarrolladores pueden usar. Incluso tiene secciones especiales que puede usar para comenzar a aprender el marco según su especialización:
- Flutter para desarrolladores de Android
- Flutter para desarrolladores de iOS
- Flutter para desarrolladores de React Native
- Flutter para desarrolladores de Xamarin.Forms
- Flutter para desarrolladores web
Gracias a la documentación detallada de Flutter, descubrirás cómo escribir código en Dart incluso si solo tienes experiencia con las herramientas gráficas de Unity para crear juegos de Android.
Flutter 1.12 (última versión) y sus ventajas
Veamos qué características destacadas introdujo Flutter en su última versión 1.12:
Modo oscuro de iOS
A partir de ahora, Flutter es compatible con la apariencia de iOS 13, incluida la compatibilidad completa con el modo oscuro en los widgets de Cupertino. Y no se trata solo de cambiar el fondo, sino de adaptar el resto de colores para que sean una buena combinación.
Soporte para agregar a la aplicación
Otra gran mejora es la actualización Add-to-App, que es para integrar Flutter en aplicaciones iOS / Android ya existentes.
La nueva versión de Flutter admite la adición de una instancia de Flutter en pantalla completa a la aplicación, junto con:
- Integración de API estabilizadas en Java, Kotlin, Objective-C y Swift
- Soporte para usar complementos en módulos Flutter
- Mecanismos de integración adicionales a través de AAR de Android y marcos de iOS
Soporte web beta
Los nuevos canales master, dev y beta de Flutter brindan soporte mejorado para la web. ¿Quieres algunos ejemplos?
Aquí está Rivet , un proyecto educativo que utilizó Flutter y Firebase para crear una versión web de su aplicación.

Dardo 2.7
La nueva versión del marco presenta Dart 2.7.
Esta actualización mejora la experiencia de funcionamiento con Dart 2.5 sobre cómo las cadenas seguras manejan las habilidades y los procesos de extensión. Esto ayuda a los desarrolladores a evitar errores cuando las variables obtienen un valor cero y analizan números enteros en una cadena.
Y aquí hay algunas otras características de la última versión de Flutter:
- soporte de escritorio macOS (alfa)
- depuración multidispositivo
- prueba de imagen dorada
- Mejoras de compilación de Android
- DartPad actualizado
Es bueno, pero no sin problemas: ¿Qué está frenando a los desarrolladores?
Flutter es realmente genial: fácil de comenzar, simple de trabajar y presentado por una gran empresa de tecnología. Sin embargo, estas son las razones por las que su desarrollador sénior puede no compartir su optimismo.
Popularidad (baja) de Dart
A diferencia de Java / Kotlin para Android o Swift / Objective-C para iOS, Dart aún no goza de gran popularidad. Y es muy poco probable que lo haga.
Dart no es demasiado difícil de aprender, y hay toneladas de tutoriales (como este), pero algunos desarrolladores siguen apegándose a Java y otras herramientas familiares.
Al mismo tiempo, no puedes usar Flutter y no usar Dart: incluso la característica asesina de Flutter, Hot Reload, no funcionará sin Dart.
No es compatible con todos los dispositivos.
No puede crear aplicaciones para dispositivos iOS de 32 bits como los anteriores al iPhone 5s. Lo mismo para las computadoras de escritorio con Windows: no puede ejecutar Flutter en su computadora portátil de 32 bits.
Y los desarrolladores de Flutter no tienen planes de arreglarlo ya que "esto implicaría una cantidad de trabajo muy significativa".
Entonces, si desea codificar con Flutter, deberá tener un dispositivo x64 bits o actualizar el que usa ahora.
Número limitado de bibliotecas
Aunque hay muchas librerías de Flutter como fl_chart (para dibujar gráficos en Flutter), path_provider (usado para ubicar un archivo en Android / iOS), flutter_sliding_tutorial y muchas más, el número aún es limitado.

Esto no es difícil de explicar: Flutter es un marco relativamente nuevo y los desarrolladores no han tenido suficiente tiempo para desarrollar tantas bibliotecas como ofrecen los idiomas nativos.
Aún así, las bibliotecas más importantes ya están allí y aparecen nuevas constantemente.
Las aplicaciones de Flutter son más grandes
... en comparación con las aplicaciones desarrolladas nativas. El equipo de Flutter midió el tamaño mínimo de la aplicación (sin componentes de material, solo un único widget Center, construido con flutter build apk --split-per-abi), empaquetado y comprimido, en 4,3 MB para ARM y 4,6 MB para ARM 64 .
La aplicación básica ahora es de ~ 4 MB en Android y ~ 10 MB en iOS.
Poca experiencia probada
Los desarrolladores pueden amar a Flutter, pero las grandes empresas no se han apresurado a dejar de hacer aplicaciones nativas (o React Native) y recurrir a Flutter.
Para la mayoría de las empresas, el mayor problema es la novedad de Flutter. Dart es más nuevo que Java o C #, y Flutter en sí es nuevo.
Por supuesto, hay muchas aplicaciones de código abierto de Flutter, incluidas las grandes como Google Ads o Hamilton (consulte la lista completa aquí), pero no demasiadas.
Y nadie quiere ser la persona que adopta un marco completamente nuevo solo para tener que cambiar al desarrollo nativo unos meses más tarde.

Pero lo que es aún más importante es que Flutter es el camino que recorre solo:
- no hay muchas mejores prácticas confirmadas (al menos en proyectos a gran escala)
- siempre existe la posibilidad de que seas el primero en enfrentarte a este problema en particular
- poca esperanza de que alguien te ayude: tendrás que dar cada paso con cuidado y estar listo para enfrentar las consecuencias
Dónde usar Flutter
En primer lugar, es mejor usar Flutter para las nuevas empresas de MVP cuando tiene tiempo limitado y, a menudo, dinero para verificar el modelo de negocio.
Una aplicación Flutter es más barata *:
- * en comparación con el costo de dos aplicaciones nativas
- el equipo de desarrollo es un 40% más pequeño
- procesos lineales
- puede dedicar más tiempo a trabajar en las funciones de la aplicación
Al optar por un proyecto de Flutter, está reduciendo la cantidad de horas de desarrollo. El desarrollo de Flutter no lleva tanto tiempo en comparación con el nativo.
He aquí un ejemplo. Digamos que estás creando una aplicación similar a Instagram para dos plataformas. iOS desarrollo va a tener, más o menos, alrededor de 700 horas, Android - también 700h .
Con Flutter, cubrirá ambas plataformas y ahorrará tiempo: 700 h Android + 700 h iOS frente a 700 h Flutter.
Está ahorrando toneladas de tiempo que puede dedicar a otra cosa, como pulir las funciones.
Terminando
Si está creando aplicaciones en un tiempo limitado con un presupuesto limitado, definitivamente vale la pena probar Flutter.
Es tan bueno como parece, y con cada nueva actualización, los desarrolladores de Google agregan más herramientas uniformes para el desarrollo multiplataforma.
Por supuesto, este marco puede parecer inusual para los amantes de C # y Java, pero no significa que lo obligue a salir de su zona de confort. Habiendo dominado las pequeñas diferencias de sintaxis, pronto verá que el desarrollo de la interfaz de usuario es un par de veces más rápido en comparación con el desarrollo nativo.
Y si tiene éxito, y si Flutter se queda, podría brindarle una emocionante experiencia de desarrollo móvil y oportunidades en el futuro.