Flutter es un framework de código abierto desarrollado por Google para crear aplicaciones nativas de alta calidad para iOS, Android, web y escritorio desde una única base de código. Utiliza el lenguaje de programación Dart y proporciona una rica colección de widgets y herramientas que permiten a los desarrolladores crear interfaces de usuario atractivas y funcionales.
Objetivos de esta lección
- Comprender qué es Flutter y sus ventajas.
- Conocer la arquitectura de Flutter.
- Configurar el entorno de desarrollo para Flutter.
- Crear y ejecutar una aplicación simple en Flutter.
¿Qué es Flutter?
Flutter es un SDK (Software Development Kit) que permite a los desarrolladores crear aplicaciones nativas para múltiples plataformas utilizando una única base de código. Algunas de las características clave de Flutter incluyen:
- Rendimiento Nativo: Flutter compila directamente a código nativo, lo que permite un rendimiento cercano al nativo.
- Hot Reload: Permite a los desarrolladores ver los cambios en el código en tiempo real sin necesidad de reiniciar la aplicación.
- Widgets Personalizables: Flutter proporciona una amplia gama de widgets personalizables que facilitan la creación de interfaces de usuario atractivas y responsivas.
- Soporte Multiplataforma: Con Flutter, puedes desarrollar aplicaciones para iOS, Android, web y escritorio desde una única base de código.
Arquitectura de Flutter
La arquitectura de Flutter se basa en tres componentes principales:
-
Framework: Proporciona una rica colección de widgets y herramientas para construir interfaces de usuario. Está escrito en Dart y se divide en varias capas, como Material, Cupertino, Widgets, Rendering, y Foundation.
-
Engine: Escrito en C++, el motor de Flutter proporciona soporte de bajo nivel para renderizado, animaciones, gráficos 2D, y más. Utiliza Skia como motor de renderizado.
-
Embedder: Permite que Flutter se ejecute en diferentes plataformas. El embedder se encarga de la integración con el sistema operativo, la gestión de ventanas, y la entrada de usuario.
Configuración del Entorno de Desarrollo
Para empezar a desarrollar con Flutter, necesitas configurar tu entorno de desarrollo. Sigue estos pasos:
-
Instalar Flutter SDK:
- Descarga el SDK de Flutter desde flutter.dev.
- Extrae el archivo descargado y agrega la ruta
flutter/bin
a tu variable de entornoPATH
.
-
Instalar un Editor de Código:
- Se recomienda usar Visual Studio Code o Android Studio. Ambos tienen excelentes plugins para Flutter.
-
Configurar el Editor:
- Si usas Visual Studio Code, instala la extensión "Flutter" desde el marketplace.
- Si usas Android Studio, instala el plugin "Flutter" desde la configuración de plugins.
-
Verificar la Instalación:
- Abre una terminal y ejecuta
flutter doctor
. Este comando verificará la instalación y te informará si falta algún componente.
- Abre una terminal y ejecuta
Tu Primera Aplicación en Flutter
Vamos a crear una aplicación simple en Flutter para entender cómo funciona.
Paso 1: Crear un Nuevo Proyecto
Abre una terminal y ejecuta el siguiente comando para crear un nuevo proyecto de Flutter:
Paso 2: Navegar al Directorio del Proyecto
Paso 3: Ejecutar la Aplicación
Para ejecutar la aplicación, asegúrate de tener un emulador o un dispositivo físico conectado. Luego, ejecuta:
Estructura del Proyecto
La estructura básica de un proyecto de Flutter es la siguiente:
my_first_app/ ├── android/ ├── ios/ ├── lib/ │ └── main.dart ├── test/ ├── pubspec.yaml └── README.md
- android/ y ios/: Contienen el código específico de la plataforma.
- lib/: Contiene el código fuente de la aplicación. El archivo principal es
main.dart
. - test/: Contiene las pruebas unitarias y de integración.
- pubspec.yaml: Archivo de configuración del proyecto, donde se definen las dependencias y otros metadatos.
Código de Ejemplo
Vamos a modificar el archivo lib/main.dart
para crear una aplicación simple que muestre "Hello, Flutter!".
import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Hello Flutter'), ), body: Center( child: Text('Hello, Flutter!'), ), ), ); } }
Explicación del Código
- import 'package:flutter/material.dart';: Importa el paquete de Material Design de Flutter.
- void main() { runApp(MyApp()); }: La función
main
es el punto de entrada de la aplicación.runApp
inicia la aplicación y toma un widget como argumento. - MyApp: Es un widget sin estado (StatelessWidget) que representa la aplicación.
- MaterialApp: Es un widget que envuelve la aplicación y proporciona funcionalidades de Material Design.
- Scaffold: Proporciona una estructura básica para la aplicación, incluyendo una barra de aplicaciones (AppBar) y un cuerpo (body).
- Center: Centra su hijo en el medio del widget.
- Text: Muestra un texto en la pantalla.
Ejercicio Práctico
Ejercicio 1: Modificar el Texto
Modifica el texto que se muestra en la aplicación para que diga "Welcome to Flutter!".
Solución
import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Hello Flutter'), ), body: Center( child: Text('Welcome to Flutter!'), ), ), ); } }
Ejercicio 2: Cambiar el Color de Fondo
Cambia el color de fondo de la aplicación a azul claro.
Solución
import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Hello Flutter'), ), body: Center( child: Text('Welcome to Flutter!'), ), backgroundColor: Colors.lightBlue, ), ); } }
Conclusión
En esta lección, hemos introducido Flutter, configurado el entorno de desarrollo y creado una aplicación simple. Ahora tienes una comprensión básica de cómo funciona Flutter y cómo puedes empezar a desarrollar aplicaciones con él. En las próximas lecciones, profundizaremos en los widgets y las funcionalidades avanzadas de Flutter para crear aplicaciones más complejas y funcionales.
Curso de Programación en Dart
Módulo 1: Introducción a Dart
- Introducción a Dart
- Configuración del Entorno de Desarrollo
- Tu Primer Programa en Dart
- Sintaxis y Estructura Básica