Flutter: El marco tendencia para el desarrollo móvil

Tags: flutter, widgets, ios, android
Published: 2021-04-22 13:40:08

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f4h6lhg4qvr3q7mo5ems.png)

Cuando se trata de desarrollo de aplicaciones, puede ser difícil encontrar un compromiso entre calidad y productividad: los desarrolladores tienen que construir la misma aplicación dos veces tanto en iOS como en Android, o tienen que conformarse con una solución multiplataforma que dificulta la entrega de la experiencia nativa que demandan los clientes.

Y aquí viene Flutter, un SDK que está haciendo titulares en estos días en el espacio de desarrollo móvil. Sus creadores dicen que Flutter ofrece una nueva ruta para el desarrollo móvil, centrada principalmente en el rendimiento nativo, los gráficos avanzados y la mejora drástica de la velocidad y productividad de los desarrolladores. Ya ha sido adoptado por algunas de las empresas más famosas como Alibaba, Google Ads, Birch Finance, App Tree, Hamilton Musical y muchas más.

Por lo tanto, tratemos de entender lo que es Flutter y lo que lo hace tan popular.

Flutter es un SDK de aplicaciones para crear aplicaciones de alto rendimiento y alta fidelidad para iOS, Android y web desde una sola base de código.

Permite a los desarrolladores ofrecer aplicaciones de alto rendimiento que se sienten naturales en diferentes plataformas.

Por ejemplo, es una de las aplicaciones de demostración de la Galería flutter, una colección de aplicaciones de ejemplo flutter que puede ejecutar justo después de instalar Flutter y configurar su entorno.

Entonces, ¿qué es definitivamente bueno de Flutter?

Estos son algunos puntos por los que Flutter podría convertirse en la próxima gran cosa:

**1.Building Aplicaciones de Android + iOS a la vez**

Como Flutter usa la misma base de código, no es necesario escribir ningún código individual para ambas plataformas. Ok, pero esto es similar a cualquier cosa multiplataforma. Siguiente, por favor.

**2.Rendimiento rápido y sin problemas de compatibilidad**

A diferencia de ReactNative, NativeScript o Ionic Flutter no requiere un puente JavaScript para hablar con widgets OEM. Flutter funciona más como un motor de juego. Todos los botones, texto, cosas de medios se están construyendo dentro del motor de Flutter. Y esto le da a la aplicación un impulso de rendimiento adicional. Y eso suena interesante.

**3.Codificación de alta velocidad y desarrollo de prototipos**

Realice un cambio en la aplicación y véalos en un abrir y cerrar de ojos. ¿Qué puede ser mejor? Todo gracias a Hot-Reload. Si solo cambias el estado de la estructura de aplicaciones existente, puedes ver los cambios en menos de un segundo mediante Hot-Reload. Si cambiaste la estructura de la aplicación agregando o eliminando componentes individuales, o incluso grandes secciones de tu aplicación, eso toma un poco más de tiempo... 6-8 segundos en la mayoría de las condiciones. Genial, ¿no?

**4.Una elección perfecta para la interfaz de usuario avanzada**

Flutter representa todas las partes de la interfaz utilizando el motor gráfico interno llamado Skia, el mismo que se utiliza en Google Chrome, Mozilla Firefox y Sublime Text 3. Esta pieza de software rápida y bien optimizada permite a Flutter comportarse de manera diferente a la mayoría de los otros marcos de desarrollo móvil. ¡genial!

**5.Lenguaje DART**

Flutter utiliza Dart, un lenguaje de programación optimizado para el cliente para aplicaciones en varias plataformas. Una de las mayores ventajas aquí es que el código Dart se puede compilar de tres maneras diferentes:

El primero es verdaderamente nativo, antes de tiempo (AOT) compilado código de máquina ejecutable que no requiere ninguna interpretación. Y puede compilar ejecutables no solo para Android e iOS, sino también para Windows, Mac y Linux. Pero, por supuesto, tendrá que compilar una vez para cada plataforma individual, ya que cada una utiliza un tipo diferente de ejecutable.
En segundo lugar, Dart se puede compilar justo en el tiempo (JIT). Y aquí tenemos el "Hot-Reload" que se mencionó anteriormente.
En tercer lugar, Dart se puede compilar de una manera que da como resultado JavaScript. Esto le permite a Flutter hacer algo verdaderamente increíble. Le permite poner la misma aplicación que escribió para el móvil y el escritorio en un navegador web.

**6.Fucsia**

Es un sistema operativo de código abierto que actualmente está siendo encabezado por Google. Utiliza un micro-kernel llamado Zircon, y está diseñado para ser capaz de ejecutar todo, desde el marco de imagen más simple hasta los dispositivos móviles más sangrientos. ¿Por qué se menciona aquí? sencillo. En primer lugar, Flutter impulsa la interfaz de usuario para todo el sistema operativo Fuchsia. En segundo lugar, esto significa que podrás usar Flutter para escribir aplicaciones para todo tipo de dispositivos IoT, desde refrigeradores hasta despertadores y mucho más.

Más información sobre el uso práctico de algunas de estas cosas que se pueden encontrar en este artículo de un desarrollador de Android que está compartiendo sus pensamientos sobre Flutter después de haber reconstruido su aplicación de Java a Dart. Aquí sólo menciono el número de archivos/líneas de código antes de la reconstrucción (para la aplicación construida en Java) – 179/12176, y después de él (para la aplicación reconstruida en Dart) – 31/1735. Como ves, los números hablan por sí solos.

**¿Inconvenientes?**

Como de costumbre, hay algunas cosas para las que deberías estar listo si vas con Flutter:

**1.Aprender el lenguaje DART**

Como todas las aplicaciones flutter están escritas en Dart, usted debe entender que no hay manera de escapar de este idioma si usted está considerando Flutter para construir su aplicación. Sin embargo, este lenguaje reactivo parece familiar si ha trabajado con lenguajes como Java o JavaScript. Y la experiencia con lenguajes orientados a objetos también será útil. Aún así, definitivamente tendrá que pasar algún tiempo entendiendo todo el azúcar sintáctico.

**2.Todo en Flutter es un widget**

Los diseños son widgets, la tipografía es un widget, el color es un widget, el botón es un widget. Incluso la propia aplicación es un widget completo. Y esto podría tomar algún tiempo acostumbrarse.

No es intuitivo para nadie empezar, pensar que "widgetly" :). Puede tomarte hasta un mes para sentirte cómodo con Flutter. Agregar márgenes, rellenos y otros atributos no es intuitivo al principio. Además, deberá dedicar algún tiempo a comprender las restricciones de Box.

Sin embargo, una vez que llegues allí, verás que valió la pena el dolor.

**3.Un tamaño apk más grande**

No te sorprendas si ves que tu aplicación de Flutter recién salida del horno es más grande en tamaño que su contraparte nativa en un 50-60%. Como las aplicaciones hechas por Flutter se utilizan con widgets incorporados y no widgets de plataforma, su tamaño parece ser generalmente grande. Actualmente, la aplicación más pequeña posible que se puede hacer con Flutter no puede pesar menos de 4 MB.

**4.Flutter no es un sistema operativo**

Esto significa que no tiene acceso directo a cosas como cámaras, Bluetooth, GPS y otro hardware. Así que si la aplicación se comunica con cualquier hardware a través de Bluetooth, por ejemplo, entonces tendrías que desarrollar estas características por separado para iOS y Android e integrarlas en Flutter después. En este caso, uno de los principales puntos de venta de desarrollo multiplataforma (es decir, el tiempo), no será mucho beneficioso, ya que terminaría pasando tiempo creando estas características de forma nativa para ambas aplicaciones.

**5.Flutter no tiene una comunidad de apoyo muy grande**

Flutter todavía es relativamente nuevo y no tiene una comunidad tan grande como otras soluciones multiplataforma como React Native o aplicaciones nativas puras, por lo que necesitará algún tiempo para hacer crecer la red de seguidores.

Así que si usted es alguien que tiene miedo de la documentación (todavía, no puede dejar de mencionar que la documentación de Flutter es realmente buena) este punto podría convertirse en un inconveniente para usted.

**Conclusión**

Por lo tanto, en la medida en que no hay otro dialecto tentador por el momento que le permite construir su interfaz de usuario mediante la configuración de widgets, Flutter se ve muy interesante de hecho. Por supuesto, inicialmente puede parecer difícil, pero más adelante, reduce la cantidad de codificación, ahorra tiempo, y se ve mejor, todo gracias al poder del soporte de widgets.

Flutter facilita el desarrollo de aplicaciones móviles de mayor rendimiento. Este SDK le guía además con lógica, desarrollo reactivo y composición. De cara al futuro, esto paga las ganancias a medida que su aplicación se hace más grande.

También hay que tener en cuenta las ventajas del lenguaje Dart que pueden aumentar la productividad en los tiempos. Puedes lanzar la aplicación a seis plataformas mientras necesitas un solo equipo para escribir el código. También piense en lo que significaría si sólo tuviera que preocuparse por mantener una base de código, en lugar de seis. Aún así, usted (o su equipo) definitivamente pasará un poco de tiempo extra para aprender Dart.

Sin embargo, no importa qué tecnología se utilice, las aplicaciones multiplataforma siguen estando muy por detrás de las aplicaciones nativas en términos de rendimiento. Así que si usted tiene el presupuesto para configurar dos equipos diferentes para iOS y Android, creemos que usted debe considerar ir nativo.

Por otro lado, con Flutter obtendrás tu aplicación más rápido, y un desarrollo más rápido te ahorra dinero (lo que es bueno de todos modos), y permite validar tu idea más rápido.

Así que independientemente del número de individuos en su grupo o cuál es su objetivo, Flutter es una buena alternativa al menos para intentarlo. Así que da una puñalada en la codificación dart durante algún tiempo y comprueba si te gusta.

¡Gracias por leer!