Flutter es un framework de código abierto desarrollado por Google que permite crear aplicaciones nativas para móvil, web y escritorio desde una sola base de código. Utiliza el lenguaje Dart y se destaca por su rendimiento y flexibilidad en el diseño de interfaces.
Flutter ha revolucionado el desarrollo multiplataforma al ofrecer una solución que combina rendimiento nativo con productividad de desarrollo. A diferencia de otros frameworks, Flutter compila directamente a código nativo, eliminando la necesidad de puentes de comunicación.
Lenguaje DartFlutter utiliza Dart, un lenguaje moderno y eficiente que combina la simplicidad de la sintaxis de C con características orientadas a objetos. Dart puede compilarse tanto en código nativo como en JavaScript, lo que lo hace versátil.
// Sintaxis simple y moderna de Dart
class Persona {
String nombre;
int edad;
Persona(this.nombre, this.edad);
String saludar() => 'Hola, soy $nombre y tengo $edad años';
}
// Uso directo
final persona = Persona('Carlos', 30);
print(persona.saludar()); // Hola, soy Carlos y tengo 30 años Hot ReloadLa función de Hot Reload permite ver cambios en el código de manera instantánea sin recompilar toda la aplicación, lo que acelera el desarrollo, facilita la depuración y mejora las pruebas.
Hot Reload vs Hot Restart: Hot Reload mantiene el estado de la app mientras actualiza la UI. Hot Restart reinicia completamente la aplicación.
MultiplataformaCon Flutter, puedes crear aplicaciones para iOS y Android con una sola base de código, reduciendo significativamente el tiempo y esfuerzo de desarrollo.
// Un solo código para todas las plataformas
class MiAppMultiplataforma extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
title: 'App Universal',
home: Scaffold(
appBar: AppBar(title: Text('Funciona en iOS y Android')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.phone_android, size: 50),
Text('Una app, múltiples plataformas'),
],
),
),
),
);
}
} Ventajas AdicionalesDesarrollo Rápido: Ciclo de desarrollo acelerado con herramientas modernas. Rendimiento Nativo: Compila a código ARM nativo, ofreciendo 60fps consistentes. UI Personalizable: Control total sobre cada píxel de la pantalla. Ecosistema Robusto: Miles de paquetes disponibles en pub.dev.
Widget-Based ArchitectureTodo en Flutter es un widget. Desde un botón hasta el layout completo, los widgets son los bloques de construcción fundamentales.
import 'package:flutter/material.dart';
class MiApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Mi Primera App')),
body: Center(
child: Text('¡Hola Flutter!'),
),
),
);
}
} Hot Reload y Hot RestartHot Reload: Actualiza la UI instantáneamente manteniendo el estado. Hot Restart: Reinicia la app completa manteniendo la sesión de debug.
Dart como LenguajeFlutter utiliza Dart, un lenguaje moderno, orientado a objetos y optimizado para UI:
// Sintaxis limpia y moderna
class Usuario {
final String nombre;
final int edad;
Usuario({required this.nombre, required this.edad});
String get saludo => 'Hola, soy $nombre y tengo $edad años';
}
// Uso
final usuario = Usuario(nombre: 'Ana', edad: 25);
print(usuario.saludo); # Instalación rápida
flutter doctor
flutter create mi_app
cd mi_app
flutter run Framework Layer: Widgets, animaciones, gestos
Engine Layer: Renderizado, texto, accesibilidad
Embedder Layer: Integración con plataforma específica
Skia Graphics EngineFlutter utiliza Skia, el mismo motor gráfico de Chrome, garantizando:
void main() {
runApp(MiApp());
}
class MiApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: PaginaPrincipal(),
);
}
}
class PaginaPrincipal extends StatefulWidget {
_PaginaPrincipalState createState() => _PaginaPrincipalState();
}
class _PaginaPrincipalState extends State<PaginaPrincipal> {
int contador = 0;
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Mi App Flutter')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Has presionado el botón:'),
Text('$contador', style: Theme.of(context).textTheme.headlineMedium),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () => setState(() => contador++),
child: Icon(Icons.add),
),
);
}
} Flutter es ideal para equipos que buscan desarrollo rápido, UI consistente y rendimiento nativo en múltiples plataformas. Su ecosistema maduro y el respaldo de Google lo convierten en una excelente opción para proyectos modernos.