Cómo convencer a un cliente o empresa para que use Flutter

Hola Habr! Te presento la traducción del inglés. Lanzando Flutter a su empresa o artículos de clientes (autor Wm Leler )

Ha pasado más de un año desde la publicación del artículo What's Revolutionary about Flutter (y este material sigue siendo relevante). Cuando escribí ese artículo, solo unos pocos desarrolladores móviles escucharon sobre Flutter, pero desde entonces mucho ha cambiado. Ahora no tengo tiempo para seguir la corriente de nuevos artículos y videos que aparecen en esta comunidad activa y en constante evolución . Los desarrolladores descubrieron Flutter , y están locos por eso . Aquí hay una aplicación de ejemplo de Reflectly creada con Flutter :


Aplicación Smart Reflectly Diary

A menudo escucho de los desarrolladores lo difícil que es convencer a los gerentes de las empresas, o clientes, si estamos hablando de una agencia o un profesional independiente, para que prueben Flutter. Los tomadores de decisiones no están listos para cambiar a la última tecnología solo porque es de vanguardia. Como regla, entienden el problema, pero la pila de tecnología es solo una parte de su trabajo. Es importante que sepan que el uso de nuevas herramientas ayudará a su empresa a tener más éxito en el mercado, por ejemplo, atraer nuevos consumidores o reducir riesgos.

Este artículo está destinado a:

  • desarrolladores que desean explicar los beneficios del uso de Flutter para la gestión de la empresa. Incluso si está familiarizado con este marco, necesitará argumentos convincentes a su favor;
  • desarrolladores que están pensando en crear su propio producto en Flutter.

Este artículo también discutirá las razones por las cuales Flutter puede no ser adecuado para una aplicación en particular, lo que lo ayudará a tomar una decisión informada.

¿Qué es el aleteo?


Slogan Flutter (conciso y hablando):
¡Crea aplicaciones nativas estéticas en tiempo récord!

Este eslogan consta de cuatro partes, cada una de las cuales debe considerarse por separado:

  1. Creación de aplicaciones
  2. Estética
  3. Natividad
  4. Fechas de registro

1. Crear una aplicación


Ahora Flutter está encarcelado por el desarrollo de aplicaciones móviles para iOS y Android. Pero la forma en que se ve a largo plazo, se destaca en el contexto de los marcos móviles existentes: Flutter no es solo un marco, es un SDK completo para crear aplicaciones que usan la pantalla. Esto significa que Flutter tiene todo lo que necesita para crear una interfaz de usuario, incluida una herramienta de visualización y elementos que requieren representación (widgets en la terminología de Flutter).

Flutter tiene mucho en común con los motores de juegos como Unity o Unreal , que también proporcionan sus propias herramientas de visualización. La diferencia es que Flutter se usa para crear aplicaciones , no juegos.

El hecho de que Flutter sea un SDK completo significa que se puede portar a casi cualquier dispositivo que tenga una pantalla. El renderizador de Flutter usa Skia, un popular motor de gráficos de código abierto utilizado en todas las plataformas.


Flutter en el escritorio y Raspberry Pi

Si bien nos centramos en las aplicaciones móviles de Google, varias compañías trasladaron Flutter a computadoras de escritorio (macOS, Windows, Linux y otras), televisores (aquí puede ver cómo funciona Flutter en Nvidia Shield TV ) y también en Raspberry Pi. Flutter incluso se usa en la construcción de interfaces de usuario para Fuchsia .

Poco a poco, las aplicaciones aparecerán fuera de los teléfonos móviles. El acceso a las aplicaciones en varios dispositivos a la vez será familiar: incluidos los asistentes domésticos (Google Home Hub, Lenovo Smart Display, etc.), pantallas interactivas en automóviles, electrodomésticos (como refrigeradores), accesorios (relojes, ropa) y otros IoT -dispositivos.

Ya en 2017, se registraron en línea 8.400 millones de dispositivos de este tipo, y según el pronóstico de International Data Corporation , para 2020 su número superará los 30.000 millones (en relación con 5.000 millones de teléfonos móviles). Sin embargo, muchos de estos dispositivos tendrán pantallas interactivas. La arquitectura Flutter tiene todos los ingredientes para crear interfaces de usuario hermosas y funcionales para nuevos dispositivos.


En todas partes pantallas!

Y, por supuesto, Flutter es completamente gratuito y de código abierto.

2. Estética


¿Puede garantizar el éxito de su aplicación móvil si compite con 3.8 millones de aplicaciones en Google Play Store y 2 millones en Apple App Store ? Incluso si logra convencer al usuario de que descargue su aplicación, ¡la posibilidad de que la use activamente 30 días después es solo del 3%! Empresa de consultoría Gartner Inc. declaró que solo el 0.01% de todas las aplicaciones publicadas tienen éxito financiero. En tal situación, la ayuda no será superflua.

Según la investigación, tener un diseño atractivo juega un papel muy importante . Si observa las aplicaciones móviles más populares de los últimos años, verá que cada una de ellas tiene un diseño estético único. Además, las aplicaciones hermosas ganan premios y ganan fama, lo cual es especialmente valioso.


Alibaba (izquierda) y Topline (derecha)


2Dimensiones

Los principales ejemplos de aplicaciones Flutter incluyen aplicaciones de Alibaba (la compañía de comercio electrónico más grande del mundo), la aplicación de grabación de audio Abbey Road Studios Topline y una demostración de la increíble aplicación 2Dimensions para crear animaciones en tiempo real .

Cada vez más empresas se esfuerzan por garantizar que sus aplicaciones móviles coincidan con su marca corporativa, al igual que su sitio web o sus aplicaciones web. Esto, a su vez, requiere un alto nivel de personalización .

Al final, los diseñadores a menudo ofrecen ideas creativas que están muy erosionadas en el momento en que se implementan debido a las limitaciones de las herramientas. Gracias a Flutter, puede implementar cualquier diseño para su aplicación.

Se pueden encontrar otros ejemplos en el sitio web oficial de Flutter, así como en It's All Widgets . Entre ellos encontrará la aplicación de diario Reflectly , que cité como ejemplo al comienzo del artículo. Le recomiendo que se familiarice con esta aplicación inusual descargándola a su teléfono inteligente Android o Apple desde la tienda de aplicaciones. Además, asegúrese de leer un artículo sobre su experiencia de cambiar a Flutter .

3. Natividad


Este artículo debe ser desconcertante para los desarrolladores móviles. En el desarrollo móvil, el término "aplicación nativa" a menudo se usa para referirse a una aplicación que accede a la API de la plataforma directamente usando lenguajes específicos. Y para confundir completamente a todos, en marcos como React Native y Xamarin, el término "nativo" significa que pueden usar widgets de plataforma.

En otras áreas de desarrollo, este término no se aplica como en el móvil. Por ejemplo, puede instalar Linux en computadoras que ejecutan Windows o macOS (y muchas otras), pero no llamará a Windows o macOS "nativo", y Linux un sistema operativo "multiplataforma" o "híbrido". Tomamos Linux tan nativo como Windows o macOS, porque lo es .

Una definición más precisa de "nativo" en el desarrollo se ve así:
Destinado o integrado en el sistema especificado, especialmente en el significado del lenguaje asociado con este procesador, computadora o compilador, así como los programas escritos en él.
Las aplicaciones Flutter se compilan en código de máquina nativa ( ARM ) inmediatamente en iOS y Android.

Las ventajas de usar aplicaciones nativas son más que suficientes: se ejecutan más rápido y, lo más importante, funcionan de manera más estable y sufren menos retrasos o frenadas (la congelación es fea). Además, las aplicaciones nativas le dan al desarrollador más control sobre el comportamiento de su aplicación.

Para obtener todos los beneficios de las aplicaciones nativas, los desarrolladores móviles generalmente escribieron dos aplicaciones separadas usando conjuntos separados de herramientas e idiomas. A menudo, dos equipos de desarrollo separados que tienen que coordinarse entre sí tienen que trabajar en tales proyectos. Este enfoque aumenta significativamente los costos de desarrollo, aumenta los riesgos y empuja la fecha límite del producto. Flutter, por otro lado, permite a los desarrolladores unir esfuerzos para escribir una única base de código, unir equipos de desarrollo, reducir riesgos y acelerar el tiempo de lanzamiento de la aplicación en el mercado, todo esto combinado con las ventajas de la aplicación nativa.


¿Cuál de estas aplicaciones es nativa? Ambos!

¿Pero qué hay de los widgets? Debido al hecho de que Flutter opera con sus propios widgets , puede parecer que las aplicaciones escritas en él se verán diferentes a las aplicaciones escritas en widgets y herramientas de plataforma.

La animación GIF anterior muestra cómo se ve la ventana de configuración escrita en iOS en comparación con la interfaz similar escrita en Flutter. A pesar de las pequeñas diferencias en el nivel de píxeles, Flutter simplifica enormemente la creación de pantallas que se ven y se sienten como las nativas.

No debemos olvidar que incluso una aplicación nativa generalmente se ve diferente dependiendo de la versión del sistema operativo. En esencia, Flutter no necesita ser "píxel perfecto".

Los widgets Flutter se adaptan a la plataforma de destino, proporcionando a la aplicación el aspecto correcto, incluidos iconos, paleta de colores, diseño, fuentes, comportamiento de desplazamiento y más. La tarea principal de Flutter es crear aplicaciones fáciles de usar que también cumplan con los principios de diseño de una plataforma específica.

La representación de alta calidad de las aplicaciones escritas en Flutter está garantizada por el hecho de que se muestran directamente en el lienzo de la plataforma. Esto es posible debido al hecho de que Flutter tiene la funcionalidad de un SDK completo. Por lo tanto, su aplicación no depende de cambios en widgets, fuentes y otros elementos de la plataforma.



El uso de Flutter elimina el uso de bibliotecas de soporte . Por ejemplo, esta aplicación Flutter que se ejecuta en un teléfono con el sistema operativo Android Jelly Bean (4.1.2) utiliza widgets de un diseño de material, aunque el teléfono se lanzó dos años antes de que apareciera . Por supuesto, el teléfono no tiene widgets incorporados de diseño de materiales. Sea como fuere, su aplicación Flutter funcionará igual que en un dispositivo más moderno y se verá increíble.

Si no fuera por Flutter, tendría que resolver estos problemas por su cuenta. Esto significa la necesidad de realizar pruebas más exhaustivas en versiones anteriores del sistema operativo y encontrar soluciones para plataformas que no proporcionan acceso a los elementos utilizados en la aplicación. Constantemente escuchamos de los desarrolladores que Flutter simplifica increíblemente el proceso de prueba.

Además de las ventajas de las aplicaciones nativas, Flutter tiene otras ventajas:

  • Las aplicaciones escritas en Flutter también se ejecutarán en versiones anteriores del sistema operativo de cualquier plataforma. En particular, si está probando su aplicación Flutter en una nueva versión de Android, se verá exactamente igual en versiones anteriores. Esto permite que dichas aplicaciones funcionen bien en teléfonos más antiguos y ahorra tiempo durante las pruebas.
  • Las nuevas versiones de los sistemas operativos no podrán romper su aplicación (esto es extremadamente raro y, por regla general, es un error dentro de Flutter y no en su aplicación).
  • Su aplicación no estará sujeta a cambios debido a modificaciones del sistema operativo por parte del fabricante o proveedor (el ejemplo más común es cambiar la fuente predeterminada).
  • Lo más importante es que Flutter le brinda control total sobre cómo se ve su aplicación en todas las plataformas y sistemas operativos, hasta el último píxel .
  • Si lo desea, puede hacer que su aplicación Flutter se vea diferente en iOS y Android. Incluso si no lo hace, los widgets de Flutter se ajustarán a los principios de diseño de cada plataforma.


Flutter te permite hacer todo esto usando una única base de código para ambas plataformas. O puede agregar código nativo para cada plataforma en una aplicación Flutter si lo desea.

4. Registrar fechas


Finalmente, Flutter también es bueno porque te permite desarrollar mejores aplicaciones aún más rápido . La característica más popular (y exagerada) de Flutter es el reinicio activo con estado. Impresiona no solo con la velocidad (toma menos de un segundo), sino también con la preservación del estado, es decir, si cambia el código en profundidad en la aplicación, luego de la recompilación no tiene que recrear manualmente el último estado de la aplicación para ver el resultado.


Reinicio con estado!

Tal reinicio fue posible gracias a la tecnología de compilación avanzada (desarrollada por los creadores de los compiladores V8 para JavaScript y Strongtalk para Smalltalk), así como al hecho de que Flutter es nativo y se basa en vistas actualizadas de forma reactiva.

Además de acelerar los procesos, muchos desarrolladores notan que Flutter está cambiando seriamente su estilo de trabajo: pueden crear nuevos diseños en dos cuentas y hacer los cambios necesarios en presencia de los clientes.

También vemos un efecto positivo en el trabajo de los diseñadores que obtienen exactamente lo que necesitan. Entonces, pueden jugar con diferentes parámetros hasta que encuentren la opción perfecta. De hecho, los diseñadores que usan CSS en aplicaciones web afirman que es bastante fácil para ellos descubrir cómo hacer cambios de diseño en Flutter.

Para obtener más información sobre cómo funciona Flutter, consulte este registro de desarrollo de aplicaciones en tiempo real. También puede participar en el hackathon para ver qué tan rápido puede aprender Flutter y crear una aplicación que funcione en él.

Como se mencionó en el párrafo anterior, las aplicaciones de Flutter requieren menos pruebas, lo que significa que puede agregar una nueva funcionalidad mucho más rápido. Esto es lo que dice JD.com sobre su experiencia con Flutter:
Logramos crear la misma funcionalidad, utilizando solo la mitad del equipo de desarrollo. Con el mismo número de ingenieros, podemos agregar más funciones en una sola versión.

Alibaba también señala que el uso de Flutter ha reducido el tiempo promedio que lleva agregar nuevas funciones de un mes a dos semanas.


Aplicación Hamilton

Hablando de registros. ¡En la aplicación Hamilton, los desarrolladores hicieron un cambio importante en la noche en la víspera del lanzamiento sin ninguna duda sobre su estabilidad! Y esta aplicación, escrita en unos tres meses, se presentó en ambas tiendas de aplicaciones. Además, Flutter facilita enormemente la incorporación regular de nuevas funciones para estimular el interés del usuario.

Y así se crea una aplicación móvil exitosa.


Flutter hace que la actualización de widgets sea tan rápida y fácil como crear y modificar aplicaciones. A menudo escuchamos temores de que Flutter será difícil mantenerse al día con las actualizaciones de widgets de la plataforma. Sin embargo, cuando Apple anunció su nuevo iPhone X con su famoso recorte en la pantalla, Flutter logró agregar soporte para este recorte incluso antes del inicio de las ventas.

Y esto se aplica no solo a iOS. Cuando Google anunció un diseño de material sustancialmente rediseñado para I / O 2018, Flutter ya había recibido una actualización para incorporar completamente nuevas ideas. Fue la habilidad de Flutter para personalizar rápidamente lo que hizo esto posible.

Regularmente recibimos comentarios de desarrolladores que afirman que gracias a Flutter comenzaron a trabajar 2-3 veces más eficientemente, y sus aplicaciones en su conjunto se volvieron más exitosas.

Riesgos y limitaciones.


No hay soluciones intransigentes, y Flutter no es una excepción. Aquí hay algunas razones por las que Flutter podría no ser la mejor herramienta para una aplicación en particular.

Debido al hecho de que las aplicaciones de Flutter contienen widgets de Flutter y su propia herramienta de visualización, son un poco más grandes que las aplicaciones que utilizan herramientas integradas en la plataforma. Hasta hace poco, el tamaño mínimo de una aplicación Flutter era de 6.7 MB, pero ahora el tamaño se ha reducido a 4 MB . Planeamos llevar a cabo una mayor optimización en el futuro.

Una de las ventajas más importantes de Flutter es la capacidad de usar una sola base de código al desarrollar aplicaciones para ambas plataformas móviles (Flutter también es adecuado para crear aplicaciones para una plataforma). Sin embargo, hay aplicaciones vinculadas a una plataforma en particular o que actúan como un contenedor para la presentación proporcionada por la plataforma. Un ejemplo es una aplicación que se ejecuta en el hilo de fondo para mostrar notificaciones. Dichas aplicaciones también se pueden escribir en Flutter, pero esto no dará ventajas especiales.

A menudo se nos pregunta si Flutter se mantendrá en el mercado. Hay muchas razones por las cuales declaramos con confianza: . En primer lugar, Google es un usuario fiel de Flutter, tanto en el desarrollo de aplicaciones de consumo como en programas internos, en particular, la aplicación móvil Google Ads recientemente lanzada (anteriormente llamada AdWords) fue escrita en Flutter. Google es totalmente compatible con Flutter y hace todo lo posible para que tenga éxito.

En segundo lugar, debido al hecho de que las aplicaciones grandes generalmente se desarrollaron para dos plataformas no relacionadas, las compañías consideraron que era menos riesgoso, por ejemplo, lanzar primero una aplicación para iOS y crear una aplicación de Android más tarde si existe una demanda. Con Flutter, puede lanzar simultáneamente aplicaciones para ambas plataformas . Por lo tanto, no solo reduce los riesgos debido a la identidad de su funcionalidad, sino que también expande el mercado potencial para su aplicación. Android se beneficia enormemente de esto.

Hay otro problema potencial: Flutter es un marco relativamente nuevo. Naturalmente, Flutter necesitará algo de tiempo para crear las herramientas necesarias, expandir la funcionalidad y desarrollar la comunidad.Las plataformas de hoy tienen una funcionalidad que Flutter aún no ha implementado. Al mismo tiempo, Google trabaja constantemente para agregar nuevas funciones a Flutter.

Si quieres profundizar en Flutter, puedes usar los artículos What's Revolutionary about Flutter y Why Flutter usa Dart . También puede ver los resultados de nuestra encuesta de usuarios de Flutter más reciente.

Por donde empezar


Si decides probar Flutter, aquí hay algunos consejos útiles:

  1. Esta guía lo ayudará a instalar Flutter, configurar el editor y crear la primera aplicación de prueba.
  2. Mira estos videos de Flutter .
  3. , Android , iOS , React Native Xamarin .
  4. , : Building Layouts in Flutter , Add Interactivity , A Tour of the Flutter Widget Framework ( ).
  5. Flutter , FAQ .
  6. It's All Widgets . , . Flutter-.
  7. Flutter, Flutter Weekly .
  8. Google Codelabs Flutter , , , Flutter Udacity.
  9. .

Únase a la comunidad Flutter en Twitter , Gitter y Stack Overflow . Recomiendo suscribirse a la lista de correo de Flutter Dev . Alternativamente, puede encontrar su Flutter Meetup o Study Jam local y averiguar si hay algún hackatón de desarrollo móvil cercano en el que pueda participar.

Conclusión


Por lo tanto, Flutter permite el desarrollo de aplicaciones de alta velocidad, lo que aumenta su productividad y lo ayuda a crear aplicaciones de mejor calidad. Este es un conjunto de herramientas expresivo, extremadamente flexible y altamente personalizable que le da al desarrollador control total sobre su producto. Flutter crea aplicaciones nativas rápidas y estables para iOS y Android usando una sola base de código.

Flutter le ahorra dinero y reduce el riesgo. Es gratis y de código abierto. Con esto, Flutter te ayuda a ganar más dinero. Esto es posible porque ingresa a dos mercados a la vez: aplicaciones Android e iOS, y crea mejores aplicaciones en menos tiempo.

Quizás la respuesta más halagadora de los desarrolladores es que el desarrollo móvil con Flutter es divertido! Esto es increíble: el 92% de los desarrolladores que usan Flutter dicen que satisface completamente sus necesidades. ¡No olvide que esta encuesta se realizó antes del lanzamiento de la versión 1.0, y el número de usuarios satisfechos está en constante crecimiento!

Finalmente, Flutter está orientado al futuro. Esta es la única herramienta de desarrollo móvil nativa que admite vistas reactivas. Este es un paradigma de programación que lo ayuda a crear mejores aplicaciones utilizando características increíbles como el reinicio con estado súper rápido. Y, debido al hecho de que Flutter es un SDK completo, conservará su relevancia durante mucho tiempo junto con el desarrollo de nuevas plataformas.

Source: https://habr.com/ru/post/es433456/


All Articles