[go: up one dir, main page]

0% encontró este documento útil (0 votos)
36 vistas7 páginas

Flutter

Flutter es un framework para crear aplicaciones móviles multiplataforma utilizando un único código base. Usa widgets para construir interfaces declarativamente y maneja el estado de forma reactiva para actualizar la UI cuando cambia.

Cargado por

aracely cristel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
36 vistas7 páginas

Flutter

Flutter es un framework para crear aplicaciones móviles multiplataforma utilizando un único código base. Usa widgets para construir interfaces declarativamente y maneja el estado de forma reactiva para actualizar la UI cuando cambia.

Cargado por

aracely cristel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

Flutter

Flutter es un SDK de aplicaciones móviles para la creación de aplicaciones de


alto rendimiento y alta fidelidad para iOS y Android, a partir de un único código
base.

El objetivo es permitir a los desarrolladores que lancen aplicaciones de alto


rendimiento que se adapten de forma natural a diferentes plataformas.
Abarcamos las diferencias en los comportamientos de scrolling, tipografía,
iconos, y más.

Esta es una aplicación de demostración de la Galería, una colección de


aplicaciones de ejemplo de Flutter que puedes ejecutar después de instalar
Flutter y de configurar tu entorno. Shrine tiene scrolling de imágenes de alta
calidad, cards interactivas, botones, listas desplegables, y una página de carrito
de compras. Para ver el código base único de este y otros ejemplos, visita
nuestro repositorio en GitHub.

No se requiere experiencia en desarrollo móvil para empezar. Las aplicaciones


están escritas en Dart, lo que resulta familiar si has utilizado un lenguaje como
Java o JavaScript. !La experiencia con lenguajes orientados a objetos es
definitivamente útil, pero, incluso los no programadores han desarrollado
aplicaciones Flutter!

¿Por qué usar Flutter?


VENTAJAS:

• Ser altamente productivo


o Desarrolla para iOS y Android desde un único código base
o Haz más con menos código, incluso en un solo sistema operativo,
con un lenguaje moderno y expresivo y un enfoque declarativo.
o Haz un prototipo e itera fácilmente
▪ Experimenta cambiando el código y recargando a medida
que tu aplicación se ejecuta (con hot reload)
▪ Corrige los fallos y continúa depurando desde donde la
aplicación se quedó
• Crear experiencias de usuario maravillosas y altamente personalizadas
o Benefíciate de un amplio conjunto de widgets Material Design y
Cupertino (toque iOS) construidos usando el propio framework de
Flutter
o Realiza diseños personalizados, agradables y de marca, sin las
limitaciones de los conjuntos de widgets OEM
Principios básicos
Flutter incluye un framework moderno de estilo reactivo, un motor de
renderizado 2D, widgets listos y herramientas de desarrollo. Estos componentes
trabajan juntos para ayudarte a diseñar, construir, probar y depurar aplicaciones.
Todo está organizado en torno a unos pocos principios básicos.

Todo es un Widget

Los widgets son los elementos básicos de la interfaz de usuario de una


aplicación Flutter. Cada widget es una declaración inmutable de parte de la
interfaz de usuario. A diferencia de otros frameworks que separan vistas,
controladores de vistas, layouts y otras propiedades, Flutter tiene un modelo de
objeto unificado y consistente: el widget.

Un widget puede definir:

• un elemento estructural (como un botón o menú)


• un elemento de estilo (como una fuente o un esquema de color)
• un aspecto del diseño (como padding)
• y así sucesivamente…

Los widgets forman una jerarquía basada en la composición. Cada widget se


integra en el interior y hereda propiedades de su padre. No existe un objeto
“application” separado. En su lugar, el widget raíz sirve para esta función.

Puedes responder a eventos, como la interacción del usuario, diciéndole al


framework que reemplace un widget en la jerarquía con otro widget. El
framework compara los widgets nuevos y antiguos y actualiza eficientemente la
interfaz de usuario.

Composición > herencia

Los widgets se componen a menudo de muchos widgets pequeños y de un solo


propósito, que se combinan para producir efectos poderosos. Por
ejemplo, Container, un widget de uso común está compuesto por varios
widgets responsables del diseño, pintado, posicionamiento y dimensionado.
Específicamente, Container está compuesto por
widgets LimitedBox, ConstrainedBox, Align, Padding, DecoratedBox,
y Transform widgets. En lugar de subclasificar Contenedor para producir un
efecto personalizado, puedes componer estos y otros widgets sencillos de
formas novedosas.
La jerarquía de clases es superficial y amplia para maximizar el número posible
de combinaciones.

También puedes controlar el diseño de un widget componiéndolo con otros


widgets. Por ejemplo, para centrar un widget, puedes envolverlo en un widget
Center. Hay widgets para padding, alignment, row, columns, y grids. Estos
widgets de diseño no tienen una representación visual propia. En cambio, su
único propósito es controlar algún aspecto del diseño de otro widget. Para
entender por qué un widget se renderiza de cierta manera, a menudo es útil
inspeccionar los widgets vecinos.
Los pasteles en capas son deliciosos

El framework Flutter está organizado en una serie de capas, con cada capa
construyéndose sobre la capa anterior.

El diagrama muestra las capas superiores de la estructura, que se utilizan más


frecuentemente que las capas inferiores. Para el conjunto completo de librerías
que componen la estructura de capas de Flutter, consulta
nuestra documentación de la API.

El objetivo de este diseño es ayudarte a hacer más con menos código. Por
ejemplo, la capa Material se construye componiendo widgets básicos a partir de
la capa de widgets, y la capa de widgets se construye organizando los objetos
de nivel inferior a partir de la capa de renderizado.

Las capas ofrecen muchas opciones para crear aplicaciones. Elige un enfoque
personalizado para liberar todo el poder expresivo del framework, o usa los
componentes de la capa de widgets, o mezcla y combina. Puedes componer los
widgets que Flutter proporciona, o crear tus propios widgets personalizados
usando las mismas herramientas y técnicas que el equipo de Flutter utilizó para
desarrollar el framework.

No se te oculta nada. Obtendrás los beneficios de productividad de un


concepto de widget unificado de alto nivel, sin sacrificar la capacidad de
profundizar tanto como desees en las capas inferiores.
Construyendo widgetss

Las características únicas de un widget se definen mediante la implementación


de una función build que devuelve un árbol (o jerarquía) de widgets. Este árbol
representa la parte del widget de la interfaz de usuario en términos más
concretos. Por ejemplo, un widget de la barra de herramientas puede tener una
función de compilación que devuelva un horizontal layout de
algún text y diversos botones. El framework solicita entonces, recursivamente, a
cada uno de estos widgets, que ejecuten su método build hasta que el proceso
llegue a su fin en un widget completo correcto, que luego el framework une en
un árbol.

La función de construcción de un widget debería estar libre de efectos


secundarios. Siempre que se le pida que construya, el widget debe devolver un
nuevo árbol de widgets independientemente de lo que el widget haya devuelto
previamente. El framework hace el trabajo pesado de comparar la construcción
anterior con la actual y determinar qué modificaciones se deben hacer a la
interfaz de usuario.

Esta comparación automatizada es bastante efectiva, permitiendo aplicaciones


interactivas de alto rendimiento. Y el diseño de la función build simplifica el
código al centrarse en declarar de qué está hecho un widget, en lugar de las
complejidades de actualizar la interfaz de usuario de un estado a otro.

Manejo de la interacción del usuario

Si las características únicas de un widget necesitan cambiar, basadas en la


interacción del usuario u otros factores, ese widget es stateful. Por ejemplo, si
un widget tiene un contador que se incrementa cada vez que el usuario pulsa
un botón, el valor del contador es el estado de ese widget. Cuando ese valor
cambia, el widget necesita ser reconstruido para actualizar la UI.

Estos widgets heredan de StatefulWidget (en lugar de StatelessWidget) y


almacenan su estado mutable en una subclase de State.

Cada vez que se muta un objeto State (p.ej., incrementando el contador), debes
llamar a setState() para indicar al framework que actualice la interfaz de usuario
llamando al método build de State de nuevo. Para ver un ejemplo de la gestión
del estado, consulta el template MyApp que es creado con cada nuevo proyecto
de Flutter.

El hecho de tener objetos state y widget separado permite que otros widgets
traten de la misma manera a los widgets stateless y stateful, sin preocuparse por
perder estado. En lugar de tener que aferrarse a un hijo para preservar su
estado, el padre es libre de crear una nueva instancia del hijo sin perder el
estado persistente del mismo. El framework hace todo el trabajo de encontrar y
reutilizar los objetos de estado existentes cuando sea apropiado.

• Estado (State): Flutter utiliza un sistema de manejo de estado que permite


controlar cómo cambia y se actualiza la interfaz de usuario en función de los
cambios en los datos. El estado puede ser estático (no cambia) o dinámico
(cambia durante la vida de la aplicación).

• Reactividad: Flutter promueve un enfoque reactivo para construir interfaces de


usuario. Esto significa que cuando cambia el estado de la aplicación, los widgets
afectados se actualizan automáticamente para reflejar esos cambios.

• Composición: Flutter fomenta la composición de widgets más pequeños en


widgets más grandes y complejos. Esto permite construir interfaces de usuario
de manera modular y reutilizable.

• Hot Reload: Una característica destacada de Flutter es el "Hot Reload", que


permite a los desarrolladores ver inmediatamente los cambios realizados en el
código sin reiniciar toda la aplicación. Esto agiliza el proceso de desarrollo y
depuración.

En términos de patrones de arquitectura, Flutter no impone uno específico, pero


proporciona libertad para elegir el patrón que mejor se adapte a las
necesidades del proyecto. Algunos patrones comunes utilizados con Flutter son:

• Estado local y gestión de estado: Enfoques como BLoC (Business Logic


Component), Provider, MobX y Redux se utilizan para gestionar el estado de la
aplicación y controlar cómo los datos fluyen a través de la interfaz de usuario.

• Arquitectura por capas: Separar la lógica de presentación de la lógica de


negocio y los servicios. Ejemplos de esto son MVC (Model-View-Controller) y
MVVM (Model-View-ViewModel).

• Arquitectura limpia (Clean Architecture): Promueve una separación clara entre


las capas de presentación, lógica de negocio y acceso a datos, facilitando la
prueba y el mantenimiento.

En resumen, la arquitectura de Flutter se basa en la composición de widgets, la


reactividad y el manejo eficiente del estado para crear aplicaciones nativas de alta
calidad para múltiples plataformas desde un solo código base. Ofrece flexibilidad en la
elección de patrones de arquitectura para adaptarse a diferentes necesidades de
desarrollo.

También podría gustarte