T2 - FUNDAMENTOS
DE FLUTTER
3 de novimebre de 2024
74570 - BRAULIO ALEJANDRO NAVARRETE HORTA
FLUTTER.
1. Introducción a Flutter
¿Qué es Flutter? Flutter es un framework de desarrollo de aplicaciones de código
abierto creado por Google, utilizado para desarrollar aplicaciones móviles, web y
de escritorio desde una única base de código. Su propósito principal es simplificar
el desarrollo de aplicaciones multiplataforma, permitiendo que los desarrolladores
escriban una vez y desplieguen en Android, iOS, Web, macOS, Windows, y Linux.
¿En qué se diferencia de otros frameworks? A diferencia de otros frameworks
como React Native, Flutter no utiliza componentes nativos; en cambio, renderiza
sus propios widgets de interfaz de usuario (UI), proporcionando una apariencia y
experiencia de usuario uniforme en todas las plataformas. Esto es posible gracias
a su motor gráfico propio, lo que permite mayor control sobre la UI y rendimiento
cercano a las aplicaciones nativas.
Ventajas y Desventajas de Flutter
Ventajas:
Desarrollo rápido: Flutter incluye una función de "Hot Reload" que permite
a los desarrolladores ver los cambios en tiempo real, lo cual acelera el
proceso de desarrollo.
UI personalizada y consistente: Como Flutter renderiza sus propios
componentes, permite una mayor personalización de la interfaz de usuario
sin depender de los componentes del sistema operativo.
Código único para múltiples plataformas: La misma base de código
permite desarrollos para Android, iOS, Web y más, ahorrando tiempo y
recursos.
Alto rendimiento: Al no depender de puentes nativos, Flutter ofrece un
rendimiento casi nativo en comparación con otros frameworks de desarrollo
móvil multiplataforma.
Desventajas:
Tamaño de la aplicación: Las aplicaciones de Flutter suelen tener un
tamaño mayor que las nativas debido a que incluyen el motor gráfico.
Dependencia de plugins: Aunque Flutter tiene una amplia gama de
plugins, algunos son desarrollados por terceros y pueden no estar
completamente actualizados.
Limitaciones para integraciones con aplicaciones nativas: La
interacción con características avanzadas del hardware puede requerir
código nativo adicional.
2. Widgets en Flutter
¿Qué es un widget en Flutter? En Flutter, todo es un widget. Un widget es una
parte de la interfaz de usuario que representa una parte visual, como un botón, un
texto o una estructura de diseño. Flutter está diseñado en torno a la composición
de widgets, lo que significa que la interfaz de usuario se crea combinando
múltiples widgets, incluso para las partes más básicas de la UI. Los widgets en
Flutter no solo definen la apariencia, sino también el comportamiento y el estado
de la UI.
Widgets Stateful vs. Stateless
Stateless Widgets: Un widget sin estado (StatelessWidget) es aquel cuyo estado
no cambia después de su creación. Estos widgets son ideales para interfaces
estáticas donde el contenido no necesita actualizarse de manera continua, como
un botón o un texto simple.
Ejemplo de Stateless Widget:
Stateful Widgets: Un widget con estado (StatefulWidget) es aquel que puede
cambiar su estado durante la ejecución. Estos widgets son adecuados para
componentes que interactúan con el usuario o que necesitan actualizarse
constantemente, como un contador o una lista dinámica.
Ejemplo de Stateful Widget:
3. Estructura de un Proyecto Flutter
La estructura de un proyecto en Flutter incluye carpetas y archivos organizados
para facilitar el desarrollo:
lib: Contiene el código de la aplicación. Es donde se encuentran los
archivos Dart, incluyendo main.dart, que es el punto de entrada de la
aplicación.
assets: Almacena recursos estáticos como imágenes, fuentes y archivos
que se utilizarán en la aplicación. Estos recursos se deben declarar en el
archivo pubspec.yaml.
test: Carpeta utilizada para pruebas unitarias y de integración de la
aplicación. Contiene archivos Dart con el sufijo _test.dart que ayudan a
verificar el correcto funcionamiento de los componentes.
Archivos importantes:
main.dart: El archivo principal donde se inicia la ejecución de la aplicación.
Aquí se define el widget principal que construye toda la interfaz.
pubspec.yaml: Archivo de configuración del proyecto donde se especifican
dependencias, versiones de Flutter y otros detalles, además de la
declaración de recursos como assets.
4. Ventajas de usar Dart en Flutter
¿Por qué utiliza Flutter el lenguaje Dart? Flutter utiliza Dart debido a sus
características avanzadas de compilación y optimización. Dart permite compilar el
código a lenguaje máquina (AOT, Ahead of Time), lo que mejora el rendimiento en
dispositivos móviles. Además, el "Hot Reload" es posible en Dart gracias a su
capacidad de compilarse de manera interpretada (JIT, Just in Time) durante el
desarrollo.
Características de Dart adecuadas para Flutter:
Tipado estático y dinámico: Dart soporta tanto tipado estático como
dinámico, ofreciendo flexibilidad y seguridad en el código.
Concurrencia simplificada: Dart permite manejar la concurrencia
mediante async y await, facilitando la gestión de operaciones asíncronas.
Librerías extensas: Dart cuenta con paquetes y librerías que optimizan el
desarrollo de aplicaciones, incluyendo herramientas para UI, redes, y
manejo de datos.
Orientación a objetos: Al ser orientado a objetos, Dart facilita la creación
de aplicaciones estructuradas y modulares, permitiendo aprovechar
conceptos de herencia, clases y objetos.
Flutter y Dart ofrecen una plataforma sólida y optimizada para el desarrollo
multiplataforma, manteniendo un balance entre rendimiento, flexibilidad y
personalización en la interfaz de usuario. Esto hace de Flutter una opción cada
vez más popular en el ámbito de desarrollo de aplicaciones móviles y de escritorio.