Google ha creado una forma sencilla de desarrollar aplicaciones móviles, ha empaquetado las soluciones de interfaz más comunes como navegación, botones, animaciones, tipografía, iconos, etc en widgets que pueden reutilizarse para prototipar muy rápido. Imagina piezas de lego con las que puedes construir lo que imagines. Ese es el concepto detrás de Flutter.
Para ponernos técnicos, Flutter es un SDK (Software Development Kit) para desarrollo de aplicaciones móviles multiplataforma, es decir que con el mismo código fuente puedes crear apps para Android y para iOS. Y estas aplicaciones son 100% nativas, no híbridas, no pseudo nativas, sino apps que se compilan directamente para el procesador del dispositivo. Para desarrollar con Flutter debes usar el lenguaje de programación Dart.
Características de Flutter
Según su sitio oficial, las principales caracterísiticas de Flutter son:
Desarrollo rápido
Como ya dije, los widgets son soluciones preconstruidas de la interfaz, asi que puedes crear interfaces rápidamente utilizando widgets en lugar de escribirlas desde cero. Además, Flutter tiene una característica llamada Hot Reload que permite ver los cambios «en caliente» sin necesidad de esperar a recompilar. Asi en lugar de esperar hasta dos minutos por cambio, los podemos ver al instante.
Interfaz flexible y expresiva
Los widgets de Flutter permiten construir interfaces muy rápido, además que son altamente personalizables e incluyen widget exclusivos para Material Design (Android) y Cupertino Style (iOS).
Rendimiento nativo multiplataforma
Los widgets añaden las personalizaciones para iOS y Android como navegación, scrolling, iconos, fuentes etc. Así no tienes que preocuparte de las peculiaridades de cada sistema, Flutter lo hace por ti. Además compila a código nativo del procesador ofreciendo la mejor experiencia a los usuarios.
Crea bellas aplicaciones nativas en tiempo récord
Desarrollo rápido
El hot reload de Flutter te ayuda a experimentar rápida y fácilmente, crear interfaces de usuario, agregar funcionalidades y corregir errores más rápido. Experimenta tiempos de recarga menores a un segundo, sin perder el estado de la aplicación, en emuladores, simuladores y hardware para iOS y Android.
Interfaces de usuario bellas y expresivas.
Deleita a tus usuarios con los hermosos widgets incorporados en Material Design y Cupertino(iOS-flavor) de Flutter, rica APIs de movimiento, suave scroll natural, y conocimiento de la plataforma.
Framework moderno y reactivo
Compón fácilmente tu interfaz de usuario con el moderno framework reactivo de Flutter y un amplio conjunto de widgets, de plataforma, de layout y básicos. Resuelve tus desafíos de interfaz de usuario con poderosas y flexibles APIs para 2D, animación, gestos, efectos y más.
class CounterState extends State<Counter> {
int counter = 0;
void increment() {
// Avisa al framework de Flutter que este estado ha cambiado,
// entonces el framework puede ejecutar build() y actualizar la pantalla.
setState(() {
counter++;
});
}
Widget build(BuildContext context) {
// Este método es ejecutado cada vez que setState es llamado.
// El framework de Flutter ha sido optimizado para rellamar
// los metodos build rápido, para que puedas reconstruir cualquier cosa
// que necesite actualizarse en lugar de tener que cambiar individualmente
// instancias de widgets.
return Row(
children: <Widget>[
RaisedButton(
onPressed: increment,
child: Text('Increment'),
),
Text('Count: $counter'),
],
);
}
}
Accede a funcionalidades y SDKs nativos
Haz que tu aplicación cobre vida con las APIs de cada plataforma, SDKs de terceros y código nativo. Flutter te permite reutilizar tu código existente en Java, Swift y Objective C y acceder a funcionalidades nativas y SDKs en iOS y Android.
Future<Null> getBatteryLevel() async {
var batteryLevel = 'unknown';
try {
int result = await methodChannel.invokeMethod('getBatteryLevel');
batteryLevel = 'Battery level: $result%';
} on PlatformException {
batteryLevel = 'Failed to get battery level.';
}
setState(() {
_batteryLevel = batteryLevel;
});
Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.