¿Sabes por qué el desarrollo de apps con Flutter es tan especial?
Hablaremos de las particularidades y ventajas del desarrollo de apps con Flutter, pero antes de eso, permitidme empezar con un poco de información acerca de qué es Flutter y por qué ha desencadenado este furor en el mundo digital que no deja indiferente ni a la comunidad de desarrolladores ni a los nuevos negocios con base digital.
¿Qué es Flutter?
Flutter es un framework open source de Google para desarrollar apps en iOS y Android, destacando en el desarrollo cross-platform con su enfoque «write once, run anywhere».
Flutter usa Dart, un lenguaje creado por Google en 2011 como alternativa a JavaScript, incorporando mejoras que ya existían en Dart.
¿Qué sensaciones hay sobre el desarrollo de apps con Flutter?
Utilizaremos termómetros clave para medir la confianza y expectativas que Flutter genera en empresas y desarrolladores.
MEETUP: termómetro de interés
Flutter en el mundo: 102.187 miembros | 234 grupos
Ionic en el mundo: 35.654 miembros | 67 grupos
GRANDES PROYECTOS : termómetro de confianza
Alibaba usa Flutter para construir la app Xianyu con más de 50 millones de usuarios.
Google Ads App: alertas y notificaciones en tiempo real. Ver app.
Otras apps destacadas hechas con Flutter aquí.
LINKEDIN: termómetro de adquisición
Este estudio de LinkedIn muestra cómo Flutter es la tecnología que más está creciendo entre los desarrolladores de software. Cada año salen nuevos programas a los que los desarrolladores de aplicaciones móviles deben adaptarse, la pregunta que se hace LinkedIn es: ¿cuál aprender entonces? Con intención de responder a esta pregunta, LinkedIn utiliza sus propios datos para dar a conocer los skills que están creciendo más rápido entre los desarrolladores y ¡en este caso Flutter se lleva la palma!.
STACK OVERFLOW: termómetro de deseabilidad
La encuesta anual de Stack Overflow 2019 encumbra a Flutter hasta el podium de frameworks más queridos.
GITHUB: termómetro de popularidad
- Flutter: 102K Github stars (29/09/2020).
- Ionic: 41,8K Github stars (29/09/2020).
Particularidades del desarrollo de apps con Flutter
Flutter, creado por Google en 2017, proporciona un rendimiento casi nativo a las aplicaciones móviles para iOS y Android con el desarrollo de un código base común. Hablaremos aquí de las ventajas de usar este framework en el desarrollo de apps, así como de las peculiaridades que lo distinguen de otros desarrollos multiplataforma.
Para entender mejor algunas de las características que vamos a mencionar, vamos a ver cómo funciona una app desarrollada en Flutter en comparación con una aplicación nativa (desarrollada con los lenguajes de programación que recomiendan Apple y Google) y otra desarrollada en React Native (framework creado por Facebook para el desarrollo de aplicaciones multiplataforma).
Rendimiento nativo
¿Dónde está el «bridge» en Flutter? Lo que más llama la atención en la arquitectura de estas apps es que el código fuente de Flutter se escribe con Dart, como explicamos al inicio del post, y está basado en programación reactiva como React Native. La diferencia, como podéis ver en el esquema, es que en el desarrollo de apps en Flutter el código fuente compila a código nativo desde el primer momento por lo que no es necesario un puente de comunicación como en el caso de React Native y otros lenguajes cross-platform. Al evitar este puente se agiliza la comunicación y se evitan problemas relacionados que pueden darse en el desarrollo de apps. Ofrece por tanto un rendimiento prácticamente nativo y permite una velocidad de ejecución de 60 fps.
Widgets propios
Flutter no utiliza los elementos gráficos nativos predefinidos para iOS y Android smartphone, por eso vemos en el esquema estos widgets integrados dentro de la app. Xamarin por ejemplo también traduce todo el código a nativo pero no utiliza su propio código para crear widgets. Por tanto, esta es una de las características más diferenciadoras entre Flutter y las demás tecnologías multiplataforma. Al no hacer uso de los componentes nativos de la plataforma, tiene una gran ventaja respecto a otras tecnologías cross-platform, como React Native, porque sin tener en cuenta la versión de la plataforma pueden utilizarse los componentes que vayan saliendo en las últimas versiones. Esto por ejemplo, salva el problema de fragmentación que nos encontramos en Android.
El corazón del mecanismo de layout de Flutter son los widgets. La distribución de elementos o widgets en la pantalla no sigue las reglas de estilo CSS o HTML ni utiliza etiquetas sino que se hace mediante código. Esto mejora el tiempo de posicionamiento de los elementos en pantalla y mejora la eficiencia del rendimiento, pudiendo controlarse la UI al detalle dando lugar a interfaces más ricos.
Ejemplo de creación de un widget icono:
Icon( Icons.star, color: Colors.red[500], ), |
Hot reload
La función hot reload es otra de las características diferenciadoras de Flutter y ayuda a crear interfaces de usuario, agregar funciones y corregir errores de forma rápida y sencilla. Esto es posible gracias a la arquitectura de Dart, que inyecta archivos de código fuente actualizados en la máquina virtual (VM) de Dart en ejecución. Flutter actualiza clases y reconstruye el árbol de widgets automáticamente, permitiendo ver cambios sin reiniciar la app.
Esta ventaja que puede parecer pequeña, cambia por completo la forma en la que del desarrollador se enfrenta a la app. Acelera el desarrollo, facilitando pruebas rápidas y fomentando la creatividad sin temor a modificaciones costosas en tiempo.
Experiencia de usuario y diseño de la interfaz
Flutter respeta el look and feel de los sistemas operativos de Apple y Google. Flutter cuenta con widgets que soportan el estilo Material de Android así como otros que lo hacen con el estilo iOS por lo que los interfaces son idénticos a los de las aplicaciones nativas. La experiencia de usuario adecuada está asegurada y con eso Flutter suma muchos puntos para el desarrollo de aplicaciones multiplataforma.
Flutter solo utiliza Dart para definir los elementos de diseño, por lo que no requiere de herramientas visuales aparte. Los desarrolladores, una vez que se hacen al lenguaje, opinan que reduce el context switch porque se evita el cambio entre diseño y programación. El hot reload, mencionado antes, también contribuye en esta labor porque permite ver rápidamente los cambios hechos en el diseño.
Tiempo de carga
No hay casi nada peor en la experiencia de usuario que una app que tarda en cargar. Flutter destaca por su rapidez, con tiempos de carga inferiores a un segundo en iOS y Android, permitiendo el uso inmediato de la app
7 Ventajas del desarrollo de apps con Flutter
Tiempo de desarrollo y agilidad: con Flutter hay un código base importante que comparten las distintas plataformas, por lo que se reduce el tiempo de desarrollo y ayuda al mantenimiento, aunque sigue habiendo frameworks nativos que requieren de código específico. A esto se le suma la agilidad que proporciona hot reload que permite ver los cambios realizados en el código sobre la marcha.
UI excelente: los widgets creados por Google o por nosotros, confieren claridad en los diseños y animaciones creados en Flutter e incorporan todas las características de las plataformas móviles de Apple y Google como el desplazamiento, la navegación, los iconos y las fuentes. La interfaz gráfica de Flutter respeta las características de iOS y Android asegurando una app de alta calidad estética. La arquitectura en capas permite una completa personalización de nuestra app.
UX fluidas: Flutter ofrece una experiencia nativa en ambas plataformas, esta optimización consigue una excelente experiencia de usuario tanto en iOS como en Android smartphone.
Rendimiento nativo: su código se compila en el código de máquina ARM nativo utilizando los compiladores nativos de Dart lo que permite crear apps más rápidas que en otras tecnologías multiplataforma.
Librerías y widgets actualizados: detrás de Flutter está el respaldo y compromiso de Google, que se preocupa de tener recurso actualizados y de dar a conocer este framework de desarrollo. Otras tecnologías multiplataforma dependen más de la comunidad.
Le gusta a la comunidad: la comunidad parece que ha acogido con los brazos abiertos esta tecnología, lo que es una ventaja para aventurarse a hacer proyectos que van a tener una gran masa de desarrolladores
Equipos especializados: un escenario en el que parece ventajoso este framework es cuando se necesita un equipo de desarrollo de apps que desarrolle nuevas funcionalidades de iOS y Android a la vez. Si tras desarrollar tu app necesitas formar un equipo interno, no hará falta buscar expertos en dos tecnologías.
Conclusiones sobre el desarrollo de apps con Flutter
Como podemos ver, Flutter tiene todos los componentes necesarios para convertirse en uno de las tecnologías cross-platform preferidas por la comunidad. El apoyo de Google ha impulsado la rápida adopción de Flutter, y se rumorea que será el framework de Fuchsia, su nuevo sistema operativo.
Por las razones que hemos visto, Flutter parece una buena decisión para iniciar un negocio utilizando esta tecnología. Su velocidad, UI optimizada y facilidad de implementación lo hacen ideal para prototipos, acelerando el lanzamiento al mercado.
¿Qué te parece Flutter? ¿Conocías todas sus ventajas? Contacta con nosotros para desarrollar una app en flutter.