Flutter (software)
# Flutter (software)

Flutter es un SDK de código fuente abierto de desarrollo de aplicaciones móviles creado por Google. Suele usarse para desarrollar interfaces de usuario para aplicaciones en Android, iOS y Web así como método primario para crear aplicaciones para Google Fuchsia.

En el último año, ha sufrido un crecimiento muy grande en cuanto a su popularidad. Eso se debe a su velocidad de desarrollo, experiencia nativa y renderización de la interface. El 3 de marzo de 2021, en el evento virtual llamado "Flutter Engage", Google lanzó Flutter 2. Este fue el cambio oficial más grande que tuvo el SDK.

## Historia

La primera versión de Flutter fue conocida como "Sky" y corrió en el sistema operativo de Android. Fue lanzado en el Dart developer summit de 2015, declarado de ser capaz de hacer un render a 120 fotogramas por segundo.

En junio de 2020 se dio a conocer que las empresas Canonical y Google se unirán para llevar el entorno de desarrollo al sistema operativo Linux, creando primeramente un sistema Beta para probarlo.

## Arquitectura del Framework

Los componentes importantes de Flutter incluyen:

* Dart platform
* Flutter engine
* Foundation library
* Design-specific widgets
* Flutter Development Tools (DevTools)

### Dart platform

Las apps de Flutter están escritas en Dart (lenguaje de programación) y hace uso de muchas de las características más avanzadas.

### Flutter engine

Flutter engine, está escrito principalmente en C++, proporciona un soporte de bajo-nivel para renderización que utiliza Google Skia. Además, se vincula con SDKs de Android e iOS. utilizando MethodChannels y EventChannels que permiten la comunicación entre el Flutter engine y el nivel nativo del sistema operativo.

Los lenguajes que pueden parecer a Dart y con los que se puede familiarizar la implementación, además de C++ serían: Kotlin, Swift y TypeScript.

### Foundation library

Está escrito en Dart, proporciona clases básicas y funciones las cuales suelen construir las aplicaciones que utilizan Flutter, como APIs para comunicar con el motor.

**Widgets**

UI Diseño en Flutter implica reunir y/o crear varios widgets. Un widget en Flutter representa una descripción inmutable de parte de la interfaz de usuario; todos los gráficos, incluyendo texto, formas, y las animaciones están creadas utilizando widgets. Complejos widgets pueden ser creados combinando otros más sencillos.

### Design-specific widgets

Flutter framework contiene dos conjuntos de widgets que conforman un lenguaje de diseño concreto. Material Design Widgets implementa el lenguaje de diseño de Google del mismo nombre, y Cupertino widgets imita el diseño de Apple iOS.

## Ejemplos de código

**Instalación de Software.**

* Ir a la página oficial de Flutter.
* Seleccionar la plataforma en la que se desarrollará.
* Instalar Flutter SDK.
* Instalar Android Studio
* Instalar Visual Studio Code o cualquier editor de código (opcional).
* En su editor de código, instalar las extensiones de Flutter y Dart.
