Informe de experiencia sobre Flutter

Hoy, quería hablar sobre mi experiencia con Flutter. Después de más de 10 años de desarrollo backend y frontend sin tocar el desarrollo móvil, tuve la oportunidad de trabajar en un proyecto móvil.
Antes que nada, un poco de contexto.
Con Jean-Baptiste Sagot y Valentin Tabary, quisimos crear un proyecto en torno a la IA. Tras varias ideas y un bootcamp memorable, surgió la idea de ayudar a los padres a retomar la lectura nocturna con sus hijos, permitiéndoles contar historias de forma inmersiva y personalizada. Así nació TaleMe.
Pensando en el uso, pronto nos dimos cuenta de que la aplicación debía ser móvil. De hecho, ¿qué hay mejor que contar una historia junto a la cama de su hijo o en el sofá del salón? La experiencia de usuario tenía que ser óptima y, para eso, era crucial tener una aplicación móvil en lugar de una webapp.
Volvamos ahora a Flutter.
¿Qué es Flutter ?
Flutter es un SDK/framework creado por Google para producir aplicaciones multiplataforma. ¡Puedes desplegar en web, escritorio y móvil, nada menos!
Para desarrollar con Flutter, debemos usar Dart, un lenguaje de programación creado por Google. Uno de los primeros objetivos del lenguaje era ofrecer una alternativa a JavaScript, pero no tuvo éxito en la comunidad. Finalmente, el lenguaje se orientó más hacia su capacidad de compilarse para múltiples plataformas (En realidad, está claramente impulsado por Flutter :D ). Si conoces lenguajes tipados como TypeScript o Java, te sentirás como en casa. ¿Y cómo se traduce en el código? Pues dispondremos de componentes (llamados widgets) que se anidarán en cascada. (como en React)
Lo más importante a retener es que nos acercamos a verdaderas aplicaciones móviles nativas, fluidas y con buen rendimiento.
La primera impresión
La primera impresión es importante, y con Flutter fue amor a primera vista. (perdón)
Hablando en serio, la documentación, el ecosistema, la comunidad, todos esos indicadores son importantes antes de lanzarse al desarrollo de un proyecto, incluso si es un PoC.
En el panorama, se ven principalmente react-native y kotlin multiplatform. Mi reflexión fue la siguiente :
- React-native está bien, ya conozco parte del tooling y los conceptos. Pero como se basa en JS, me da pereza lidiar con 100 alternativas de paquetes para hacer la misma p*ta cosa. No quiero cambiar de librería cada dos por tres.
- Kotlin multiplatform, prometedor, pero un poco demasiado joven y sin suficiente perspectiva. Kotlin me inspira menos que Dart, cuestión de gusto.
- Flutter, es la buena opción intermedia. Es un framework que ha demostrado su valía, usado por muchas empresas serias (si nos fiamos de las demostraciones en el sitio) y es bastante maduro. Aunque la comunidad es mucho más pequeña que la de JS, sigue siendo muy activa. (tuvimos la flutter conf 2024 hace unos días )
Algunos puntos fuertes, sin orden particular :
- La documentación está muy bien hecha.
- La instalación de Flutter y del tooling móvil es clara (configuración de xcode/android studio, los emuladores, el inspector …. )
- una necesidad = un paquete 🙏
- El hot reload, es vida. Es una ganancia de tiempo increíble. Haces una modificación, presionas r o maj-r y listo, se aplica. Es una verdadera maravilla.
- El sistema de componentes (widget) se domina al instante si ya has trabajado con React.
- Rendimiento nativo: compilamos verdaderas apps nativas (Las aplicaciones Flutter se compilan directamente a código máquina, ya sean instrucciones Intel x64 o ARM)
Logros
Como se mencionó más arriba, mi experiencia en desarrollo móvil nativo es nula.
¿Qué herramientas usar? ¿Cómo compilar una app? ¿Cómo desplegarla en las tiendas? ¿Cómo gestionar las versiones? ¿Las actualizaciones? ¿los crashes? ¿los analytics? ¿las pruebas? ¿gestión de los diferentes entornos? ¿las notificaciones? ¿los permisos? ¿las compras in-app y las suscripciones? ... En fin, tenía todo que aprender.
Me tomó 4 semanas desplegar una primera versión de la app (tiempo de validación incluido) y 1 mes adicional para añadir funcionalidades como notificaciones, compras in-app y suscripciones.
La idea aquí no es juzgar mis habilidades, sino mostrar que Flutter es un framework que se aprende rápidamente, con un camino lo suficientemente marcado para que podamos concentrarnos en lo más importante : entregar una app funcional y de calidad, de forma rápida y sencilla.
Si este retorno de experiencia te ha interesado, tengo varias cosas que proponerte :
- Probar TaleMe y darme feedback sobre tus impresiones https://talemeapp.com ;
- Deja un comentario en la tienda para ayudarnos a darnos a conocer ;
- Dejar un comentario en esta publicación ;
No dudes en seguirme si te interesa aprender más sobre Flutter y nuestro recorrido en TaleMe.
Fuentes
Comentarios
Cargando...