Cuándo no utilizar Flutter: lista completa de casos

- Andrés Cruz

Flutter se está convirtiendo rápidamente en un nombre familiar en el mundo del desarrollo de aplicaciones móviles. Conocido por su capacidad para crear aplicaciones visualmente atractivas y funcionalmente ricas en varias plataformas, ha captado la atención tanto de desarrolladores como de empresas. ¿Pero es la solución milagrosa para todas las necesidades de aplicaciones móviles? Ésa es la pregunta que pretende abordar esta guía completa.

El propósito de este artículo no es solo sumergirse en los paisajes donde Flutter brilla intensamente sino también explorar las sombras donde puede que no sea la opción ideal. Es fundamental comprender que ningún marco de desarrollo puede ser una solución única para todos, y Flutter no es una excepción. También tiene sus pros y sus contras.

Cuándo no utilizar Flutter y sus desventajas
Flutter ofrece numerosas ventajas, pero también es fundamental ser consciente de las circunstancias en las que podría no ser la mejor opción. Estar informado sobre sus limitaciones garantiza que podrá tomar una decisión integral para su proyecto.

1.Limitaciones de la plataforma

Dispositivos portátiles: es posible que no puedas aprovechar toda la potencia y eficiencia de Flutter al diseñar dispositivos portátiles, especialmente para Apple Watch.
Smart TV, Android TV: la creación de plataformas como Android TV requiere un replanteamiento significativo en términos de lógica de control. Android TV se basa predominantemente en la entrada del control remoto, mientras que Flutter está diseñado para pantallas táctiles y movimientos del mouse. Esta brecha se traduce en tiempo de desarrollo adicional y posibles inconsistencias en la experiencia del usuario.
Aplicaciones instantáneas en Play Market: las aplicaciones instantáneas deben ser ágiles. Sin embargo, el tamaño inherente de las aplicaciones Flutter, incluso cuando están optimizadas, a menudo supera a las aplicaciones nativas. Dado que Google establece un límite estricto de 10 MB, las aplicaciones de Flutter con una gran cantidad de funciones o paquetes pueden tener dificultades para cumplir con esta restricción.

2. Consideraciones de tamaño

Tamaño de la aplicación mayor que el nativo: uno de los inconvenientes más citados de Flutter es el tamaño de las aplicaciones que produce. Dado que Flutter no es nativo, requiere la inclusión de bibliotecas adicionales para su funcionalidad. Estas bibliotecas, aunque son cruciales, aumentan el tamaño de la aplicación. Por contexto, la aplicación Flutter más pequeña comienza con más de 4 MB. En comparación, las aplicaciones nativas de Java y Kotlin pesan 539 KB y 550 KB respectivamente. En escenarios donde cada byte cuenta, esto puede ser una desventaja importante.

3. Problemas técnicos y de conectividad

Dificultades con Bluetooth: la conexión a dispositivos de hardware a través de Bluetooth usando Flutter a veces puede presentar desafíos. Dado que Flutter no utiliza directamente las capacidades Bluetooth nativas del dispositivo, los desarrolladores pueden encontrar problemas de conectividad y rendimiento. Hace que el proceso de desarrollo sea más desafiante que con los marcos nativos, pero no imposible.
Desafíos del desarrollo web: la introducción de Flutter para Web generó entusiasmo, pero todavía tiene pequeñas ineficiencias con la velocidad de carga y el SEO. Además, la compatibilidad limitada con WebView de Flutter puede ser un problema para los desarrolladores que buscan interacciones web matizadas.
Manejo de nuevas funciones del sistema: a medida que las plataformas de sistemas operativos evolucionan, introducen funciones novedosas que los desarrolladores de aplicaciones pueden aprovechar. Sin embargo, el ciclo de Flutter en la integración de estas funciones está notablemente retrasado en comparación con sus homólogos nativos del SDK. Un ejemplo de ello: el modo oscuro para iOS tardó más de dos años en ver una introducción a medias en Flutter, después del lanzamiento del iOS 13 habilitado para el modo oscuro. De manera similar, lograr paridad de rendimiento con las pantallas de más de 120 Hz en los teléfonos inteligentes modernos. sigue siendo esquivo con Flutter.
Uso de código nativo: ciertos elementos nativos de la interfaz de usuario deben recrearse en Flutter, lo que requiere el uso de lenguajes nativos como Kotlin o Swift. Por ejemplo, las implementaciones del reproductor de video en Flutter pueden desviarse visualmente de las del sistema, especialmente en iOS.

4. Desafíos del lenguaje y el desarrollo

Limitaciones del lenguaje Dart: Dart, el lenguaje principal detrás de Flutter, ofrece una simplicidad que puede ser tanto una bendición como una pesadilla. Si bien su simplicidad puede ser una ventaja para los principiantes, los desarrolladores experimentados pueden encontrar que carece de complejidad cuando se compara con lenguajes robustos como Kotlin o Swift. La escritura dinámica de Dart puede introducir imprevisibilidad. Además, ciertas características avanzadas como la metaprogramación estática y la serialización JSON madura están notoriamente ausentes, lo que representa un desafío para los desarrolladores acostumbrados a estas funcionalidades.

5. Mayores costos de desarrollo:

El desarrollo de Flutter a menudo puede ser más costoso que el desarrollo nativo. Esto se debe a la necesidad de experiencia especializada y a las complejidades que implica la creación de aplicaciones multiplataforma con una apariencia consistente. Además, encontrar desarrolladores senior de Flutter puede ser un desafío. Si bien la comunidad está creciendo, todavía es relativamente nueva y hay una gran demanda de expertos experimentados en el campo, lo que puede aumentar los costos.

¿Para qué es más adecuado Flutter?

El ascenso de Flutter a la fama no es sin razón. Proporciona a los desarrolladores un amplio conjunto de herramientas y un marco sólido para crear aplicaciones impresionantes. Analicemos las áreas en las que Flutter realmente se destaca:

1. Comercio electrónico y venta minorista

Desde tiendas en línea con experiencias de navegación fluidas hasta programas de fidelización que garantizan la retención de clientes, Flutter puede manejarlo todo. Su capacidad para crear una interfaz de usuario intuitiva y mantener un rendimiento constante en todos los dispositivos lo convierte en la mejor opción tanto para los gigantes minoristas como para las nuevas empresas.

2. Bancos y fintechs

Las aplicaciones financieras exigen una combinación de seguridad de primer nivel, procesamiento en tiempo real e interfaces fáciles de usar. La arquitectura de Flutter se adapta bien a estos requisitos, lo que la convierte en la mejor opción para las innovaciones fintech.

3. Grandes empresas/empresas

Las grandes corporaciones tienen un conjunto diverso de necesidades. Desde la organización de procesos internos hasta centros de contacto, logística y más, la versatilidad de Flutter permite a las empresas crear soluciones personalizadas que se adapten a sus desafíos únicos.

4. IoT y sistemas integrados

El mundo de IoT se está expandiendo rápidamente y Flutter está listo para satisfacer sus demandas. Puede integrarse sin problemas con sistemas integrados, proporcionando una experiencia coherente entre dispositivos inteligentes e interfaces de usuario.

5. Creación de prototipos y desarrollo de MVP

Cuando necesitas llevar tu idea al mercado rápidamente o probar un concepto, Flutter es tu aliado. Su rápido ciclo de desarrollo y sus componentes prediseñados permiten a las empresas emergentes implementar MVP en un tiempo récord.

6. Desarrollo de juegos 2D sencillos

Si bien Flutter no es principalmente una plataforma de desarrollo de juegos, su motor gráfico es lo suficientemente potente para juegos 2D simples. Esto lo convierte en una opción factible para aplicaciones de juegos básicas con animaciones ricas.

7. Aplicaciones web progresivas (PWA)

Flutter no se limita sólo a los dispositivos móviles. Con sus capacidades web, crear aplicaciones web progresivas que parezcan nativas y tengan una gran capacidad de respuesta es muy sencillo.

8. Desarrollo de aplicaciones de escritorio

El alcance de Flutter se extiende al ámbito del escritorio. Ofrece una experiencia consistente en plataformas móviles y de escritorio, lo que facilita el mantenimiento y la actualización de las aplicaciones.

9. Aplicaciones de una o varias páginas

Ya sea una aplicación concisa de una sola página o un gigante de varias páginas, la arquitectura basada en widgets de Flutter garantiza que las aplicaciones sean modulares, mantenibles y escalables.

En particular, marcas globales como Uber, AirBnB y Alibaba han recurrido a Flutter para sus necesidades de desarrollo de aplicaciones móviles, lo que subraya sus capacidades y la confianza que se ha ganado en la industria. Descubra qué otras aplicaciones están creadas con Flutter en nuestro artículo detallado Principales aplicaciones famosas creadas con Flutter.

Entonces, ¿Flutter es una buena opción para el desarrollo de aplicaciones móviles?

¡Absolutamente! Sin lugar a dudas, Flutter brilla en una multitud de escenarios:

Proporciona una experiencia de desarrollo unificada, capacidades de iteración rápida y ha sido la base de algunas aplicaciones de alto rendimiento en el mercado.
Para las empresas emergentes y las empresas que buscan crear un producto visualmente consistente tanto en iOS como en Android sin duplicar los esfuerzos de desarrollo, Flutter puede cambiar las reglas del juego. Su rica biblioteca de widgets, complementada con sus fundamentos de rendimiento Dart, garantiza que las aplicaciones se vean y se sientan hermosas mientras mantienen una experiencia de usuario ágil.
Sin embargo, como comentamos en este artículo, existen situaciones y nichos en los que Flutter podría no ser la opción más óptima. Los proyectos que requieren integraciones profundas de plataformas específicas, aquellos dirigidos a dispositivos portátiles, televisores inteligentes o aplicaciones instantáneas, y aquellos que dependen en gran medida de ciertas bibliotecas de terceros, pueden encontrar obstáculos con Flutter.

Por tanto, es fundamental analizar el alcance del proyecto, las plataformas a las que se dirige, la experiencia de usuario deseada y los requisitos técnicos. Considere factores como el mantenimiento, la longevidad y la posibilidad de necesitar cambiar a una solución diferente en el futuro.

Artículo original: https://medium.com/@flutterwtf/when-not-to-use-flutter-complete-list-of-cases-510ce5d57c2e

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.