La comunidad de desarrolladores está entusiasmada con el lanzamiento Beta de Flutter, el marco de interfaz de usuario móvil gratuito y de código abierto de Google para crear interfaces nativas de alta calidad en iOS y Android. Incluso he estado siguiendo las actualizaciones de este marco a medida que madura. En primer lugar, estamos hablando de Google. En segundo lugar, ¿quién no ama a Hamilton (su aplicación móvil se creó con Flutter)? Bien bien. Me estoy adelantando. Calmémonos todos y veamos los pros y los contras, uno a la vez.
Entonces, como todos sabemos, no hay una sola manera de desarrollar una aplicación. Existe un desarrollo nativo en el que utiliza las herramientas y los idiomas proporcionados por Google o Apple para sus respectivas plataformas. Aquí el nivel de dificultad es alto y el código es difícil de manejar. Y luego está el 'modo Columbus' en el que exploras y descubres lo que funciona para ti. Las opciones son muchas y todo depende de su nivel de experiencia y comodidad con una herramienta o idioma. Eso es bueno, pero también puede ser increíblemente caótico.
Flutter, un marco multiplataforma, tiene como objetivo abordar esta dicotomía. Paul Miller escribe en Verge: “Flutter es el monstruo de Frankenstein de varios proyectos de Google. Está basado en el propio lenguaje de programación Dart de Google… Tiene un motor de renderizado basado en la Skia Graphics Library, el mismo que usa Chrome para dibujar píxeles en una pantalla. Hay un IDE de IntelliJ para Flutter, al igual que Google tiene con Android Studio. Y Google también está utilizando Flutter en su próximo sistema operativo Fuchsia, por lo que todo el equipo está en la mezcla ". Interesante. Profundicemos un aspecto a la vez.
Construido con Dart
Dart es el propio lenguaje de programación de Google que se lanzó en 2011 como un competidor directo de JavaScript. La adopción interna de Dart en Google ha sido extensa con los equipos de AdWords, AdSense y Google Fiber usándola para escribir sus aplicaciones web orientadas al cliente. Externamente, la adopción ha sido lenta hasta ahora. Pero es probable que eso cambie con la introducción de Flutter. Por lo que escuché, Dart es fácil de usar, muy parecido a C. Dru Keppel, que trabaja en Summit Projects como ActionScripter, dice: "Dart es el reemplazo de JavaScript de Google ... la intención general es proporcionar las mismas herramientas que JavaScript, solo que como herramientas poderosas". Explica que Dart tiene muchas características orientadas a objetos con las que el programador típico de JavaScript no estará familiarizado, pero que son esenciales para un desarrollo serio. En otras palabras, Google siente que JavaScript no está preparado para la tarea de ser un lenguaje de programación "real", y Dart va a llenar ese vacío evidente.
Pros: fácil de aprender, bueno para aquellos que son buenos en C, pueden hacer mucho trabajo pesado en la programación.
Contras: No mucha gente conoce a Dart. Por tanto, formar un equipo puede ser un desafío. Vale la pena señalar que las personas con experiencia en JavaScript (incluido Typecript, que agrega la aplicación de tipo como lo hace Dart) tendrán más facilidad para adaptarse.
¡Recarga caliente!
Flutter ofrece un desarrollo rápido. Su sitio web promete "Recarga en milisegundos para que tu aplicación cobre vida". Whoa Milisegundos? ¿Cómo?
Verá, los marcos multiplataforma como Javascript deben atravesar un puente para comunicarse con el código nativo. Además, React Native funciona en dos reinos: primero, el reino nativo de Objective-C o Swift, y segundo, el reino de JavaScript. Utiliza JavaScript para acceder a los widgets OEM en el ámbito nativo.
Aquí se encuentra una de las claves principales para comprender el rendimiento de React Native. Cada reino por sí mismo es increíblemente rápido. El cuello de botella en el rendimiento a menudo ocurre cuando nos movemos de un reino a otro. Para poder diseñar aplicaciones React Native con rendimiento, debemos mantener los pases por el puente al mínimo. Wm Leler, ingeniero de software sénior en Google, explica además: "Normalmente se accede a los widgets con bastante frecuencia (hasta 60 veces por segundo durante las animaciones, transiciones o cuando el usuario "desliza" algo en la pantalla con el dedo) para que esto pueda causar problemas de rendimiento ".
Créditos: Flutter.io
Flutter soluciona este problema al inyectar los archivos de código fuente actualizados en la máquina virtual Dart en ejecución (VM). La VM actualiza las clases con las últimas versiones de campos y funciones. A continuación, el marco Flutter reconstruye automáticamente el árbol de widgets. Esto permite a los desarrolladores ver los cambios que han realizado al instante. Obviamente, he estado acostumbrado a esperar durante horas para que la mayoría de las plataformas de desarrollo implementen y prueben una aplicación en un dispositivo. La detección instantánea de cambios multiplicaría la productividad, reduciría los costos y reduciría el tiempo de desarrollo. Entonces, la función de recarga en caliente de Flutter es un gran sí para mí.
Pros: mayor productividad
Contras: ninguno!
Desarrollo de aplicaciones unificadas
El desarrollo nativo generalmente tiene un gran costo asociado con la codificación y el soporte continuo. Además, debe hacerlo al menos dos veces: una para la plataforma de su elección (Android o iOS) y luego la otra también (¡porque alguien en su equipo siempre querrá la otra plataforma!). En algunos casos, los equipos también tienen que codificar por tercera vez, para la web. El proceso es tedioso, lento y costoso.
Con Flutter, puede crear aplicaciones móviles, no aplicaciones de Android o aplicaciones de iOS. Esa es solo otra forma de decir que con Flutter, construyes solo una vez, desde una única base de código. Flutter hace su propia representación usando Skia.
Esto permite a los desarrolladores escribir la interfaz de usuario y la navegación solo una vez y simplemente compartirla en iOS y Android. Además, el 60% del código se reutiliza entre Flutter y la web.
Dean Chalk, entusiasta y desarrollador de Google Flutter dice: "Un factor clave para el éxito de la aplicación es el costo (en términos de dinero y tiempo) de llevar una aplicación a las tiendas. Aquí es donde realmente brilla Flutter. Ofrece una oportunidad genuina de escribir una vez e implementar en todas partes ".
Pros: mayor productividad
Contras: ninguno!
Widget, widgets y más widgets
Los widgets son críticos para la vista y la interfaz de una aplicación. Deben verse bien y naturales, independientemente del tamaño de la pantalla. Deben funcionar rápidamente, deben ser extensibles y también personalizables. Flutter lo hace todo posible al proporcionar sus propios widgets.
Créditos: dartlang.org
Verás, Flutter tiene un widget para todo. Profundice más y encontrará que cada widget está hecho de widgets más pequeños. Esos widgets a su vez están hechos de widgets aún más pequeños. En efecto, está programando con widgets, lo que de nuevo es un refuerzo de productividad. David DeRemer, de Posse, afirma: "El enfoque de Flutter de "todo es un widget" nos facilitó la creación de interfaces de usuario personalizadas a partir de un amplio conjunto de bloques de construcción proporcionados por el marco. Y, debido a que Flutter se ejecuta tanto en iOS como en Android, pudimos pasar nuestro tiempo creando hermosos diseños en lugar de portar la interfaz de usuario. "
Pros: mayor productividad
Contras: ninguno
Sigue avanzando con Aptude
Aptude es su propia firma personal de servicios profesionales de TI. Brindamos a nuestros clientes recursos de primera clase de manera continua y con costos reducidos.
Nuestros servicios de soporte liberarán a su personal superior de TI de la abrumadora carga de los problemas de mantenimiento diarios. Ya tendrán tiempo de lanzar esos nuevos proyectos y aplicaciones que estabas esperando. En pocas palabras, podemos liberar sus recursos y contener sus costos. Tengamos una conversación rápida para discutir nuestros servicios exclusivos.

¿Todo bien?
Por lo que he entendido, diseñar con Flutter es una experiencia totalmente refrescante en comparación con lo que ha vivido el desarrollador hasta ahora. Además de las ventajas enumeradas anteriormente, hay algunas más. Por ejemplo, se ejecuta desde la línea de comandos. Por lo tanto, puede usarlo con cualquier IDE y la configuración del proyecto se simplifica. Además, hay complementos para Intellij, Android Studio y VS Code. Lo más importante es que Flutter es el bebé de Google. Tener un gran nombre y sus seguidores que lo respalden es una gran ventaja en términos de mayor desarrollo y soporte. Entonces, ¿dónde está el truco?
Manchas difíciles
Cabe señalar que no todos los productos o plataformas de Google tienen éxito; El ejemplo perfecto es la adopción masiva del lenguaje Dart, al que se suma. En segundo lugar, a diferencia de la plataforma Ionic y React Native, Flutter es solo para aplicaciones móviles. Por lo tanto, no hay soporte para ejecutar en un navegador web. Esto podría ser un factor importante para la toma de decisiones si está buscando una mayor flexibilidad específica para el dispositivo. Finalmente, Flutter está en Beta, y recientemente pasó de Alpha a Beta. Así que todavía hay tiempo para que Flutter madure y esté listo para la producción.
¿Veredicto?
Todo lo nuevo es un territorio desconocido y trae consigo su cuota habitual de imprevisibilidad. Sin embargo, todo dicho y hecho, Flutter, para mí, parece un enorme avance prometedor en el desarrollo de aplicaciones. La aplicación de Hamilton, por ejemplo, se desarrolló y lanzó en solo tres meses. Mientras que Firebase, la plataforma de desarrollo móvil de Google se utilizó para backend e infraestructura, el front-end se desarrolló utilizando Flutter.
¿En que estas trabajando?
¿Busca soluciones tecnológicas inteligentes? ¿Busca consulta sobre sus próximos proyectos? ¿Necesitas un presupuesto de servicios? Póngase en contacto con Aptude's equipo ejecutivo directamente. Es asombroso cuánto un pequeño correo electrónico puede acelerar rápidamente su productividad.
Sigue avanzando con Aptude
Aptude es su propia firma personal de servicios profesionales de TI. Brindamos a nuestros clientes recursos de primera clase de manera continua y con costos reducidos.
Nuestros servicios de soporte liberarán a su personal de TI senior de la abrumadora carga de los problemas diarios de mantenimiento. Ahora tendrán tiempo para lanzar esos nuevos proyectos y aplicaciones que has estado esperando. En pocas palabras, podemos liberar sus recursos y contener sus costos. Tengamos una conversación rápida para discutir nuestros servicios exclusivos.