Tutorial de Flutter

Flutter es un kit de herramientas de UI para construir aplicaciones multiplataforma, desarrollado y mantenido por Google. Permite a los desarrolladores utilizar un único código base para construir aplicaciones compiladas de forma nativa para iOS, Android, Web, Windows, macOS y Linux.

Flutter utiliza el lenguaje de programación Dart, cuenta con recarga en caliente (hot reload), una rica biblioteca de componentes y un motor de renderizado de alto rendimiento, lo que ayuda a los desarrolladores a crear rápidamente aplicaciones hermosas y fluidas con experiencia nativa.


¿Quién debería leer este tutorial?

Este tutorial está pensado para desarrolladores con conocimientos básicos de programación. Si ya comprendes los conceptos básicos de la programación orientada a objetos (como clases, objetos, funciones), podrás empezar a usar Flutter rápidamente.

Si no estás familiarizado con Dart, no te preocupes: Flutter está escrito en Dart, pero su sintaxis es similar a lenguajes como JavaScript, Java o C#, por lo que es fácil de aprender.


Lo que necesitas saber antes de estudiar este tutorial

Antes de estudiar este tutorial, necesitas conocer algunos conceptos básicos de programación, como variables, funciones, clases y bucles. Si tienes cierto conocimiento sobre desarrollo de aplicaciones móviles, te resultará más fácil entender cómo funciona Flutter.


Características de Flutter

Flutter se ha convertido en una opción popular para el desarrollo multiplataforma gracias a las siguientes características:

CaracterísticaDescripción
Desarrollo multiplataformaCrea aplicaciones para iOS, Android, Web, Windows, macOS y Linux con un único código base
Recarga en caliente (Hot reload)Después de modificar el código, puedes previsualizar los cambios en tiempo real sin reiniciar la aplicación; la eficiencia de desarrollo es muy alta.
Amplia biblioteca de componentesProporciona dos bibliotecas de componentes: Material Design (estilo Material) y Cupertino (estilo iOS).
Renderizado de alto rendimientoUtiliza el motor gráfico Skia y el renderizador Impeller de desarrollo propio, logrando animaciones fluidas a 60 fps.
expressive UIPotente framework de UI declarativa, compatible con widgets personalizados para satisfacer diversas necesidades de diseño.
Alta eficiencia de desarrolloUn solo lenguaje Dart, un conjunto de widgets y una gran cantidad de funciones preestablecidas.

Escenarios de aplicación de Flutter

EscenarioDescripción
Desarrollo de aplicaciones móvilesCrea aplicaciones nativas para iOS y Android, ejecutándose en ambas plataformas con un solo código.
Aplicaciones webCrea aplicaciones web receptivas que pueden implementarse en el navegador.
Aplicaciones de escritorioCrea aplicaciones de escritorio para Windows, macOS y Linux.
Prototipado y validación rápidaLa función de recarga en caliente hace que la iteración rápida y el desarrollo de prototipos sean muy eficientes.
Aplicaciones empresarialesAdecuado para aplicaciones de nivel empresarial que necesitan implementarse en múltiples plataformas.

Arquitectura técnica de Flutter

Flutter utiliza una arquitectura en capas, que incluye principalmente los siguientes tres niveles:

CapaDescripción
Framework (capa de framework)Framework de UI implementado en Dart, que incluye widgets, renderizado y animaciones, entre otros.
Engine (capa de motor)Motor de renderizado implementado en C++, que incluye Skia/Impeller y el runtime de Dart.
Embedder (capa de integración)Capa de integración específica de la plataforma, que integra Flutter en cada plataforma.

El concepto central de diseño de Flutter es que "todo es un Widget", ya sea texto simple o diseños de página complejos, todo está compuesto por widgets.


¿Por qué elegir Flutter?

Dimensión de comparaciónFlutterReact NativeDesarrollo nativo
Lenguaje de desarrolloDartJavaScript/TypeScriptSwift/Kotlin/Java
Método de renderizadoMotor propio (Skia/Impeller)Asignación de componentes nativosRenderizado nativo
RendimientoAlto (cercano al nativo)Medio (requiere puente)El más alto
Reutilización de códigoUn código para múltiples plataformasUn código para múltiples plataformasRequiere escribir por separado
Curva de aprendizajeMedia (lenguaje Dart)Media (requiere conocer React)Alta (varios lenguajes)

Enlaces relacionados

RecursoDirección
Sitio web oficial de Flutterhttps://flutter.dev
Documentación oficial de Flutterhttps://docs.flutter.dev
Referencia de la API de Flutterhttps://api.flutter.dev
Catálogo de componentes de Flutterhttps://docs.flutter.dev/ui/widgets
Otras extensiones