Despues de terminar el curso puedo decir esto: ¡Me ha fascinado Flutter (es como esos amores a primera vista)!.
Hay algunas puntos que creo pueden mejorar.
- UI y codigo en un mismo archivo, prefiero la separación que tiene en Android (en las carpetas res y java) esto lo es para tener una estructura más limpia y operable.
- Escoger entre Material o Cupertino, solo podemos utilizar Material Design o Cupertino como archivo base no hay de otra (en realidad sí, pero es duplicar código y llamarlo según el SO que se ejecute otra seria tener componentes de IOS dentro de Material pero corres el peligro de la incompatibilidad de algunos plugins nativos. PD: Puedes tener ambos diseños para cada SO, pero no lo recomiendo a menos que te guste por duplicado tu codigo mas que nada los archivos dentro de “lib”). La verdad no me molesta que el diseño sea lo uno ni lo otro ya que Flutter crea las vistas desde cero (bueno no tanto es mas como un motor gráfico que independiente del SO ejecutara un mismo diseño) gracias a esto podemos crear UI con mucha mas libertad. Pero tal vez a tu usuario final si le importe por lo cual ahora el dilema seria “ser o no ser”.
De nuevo solo son observaciones, ya veremos como mejora con el tiempo.
Comencemos con lo que me agrado flutter.
- Es la recarga en caliente de los diseños (gracias a Skia), ¡dios mio!, esto es como un sueño hecho realidad. Si lo comparo con el impacto que tuvo CSS Grid Layout (el curso de Leonidas) solo esta funcionalidad no se si lo iguala o lo supera pero no es grandioso. Esto a los mas veteranos seguro los flipa para aquellas personas que no vivieron en la época donde ejecutabas tu diseño. Tenias que cruzar los dedos para que no se caiga o cuelgue tu app más el tiempo de compilcación (cambio, compilar, otro cambio, compilar asi era era como una tortura) ahora simplemente “command + s” o “ctrl + s” y listo la magia.
- Tiempo de creación de apps muy facil, esto lo dire desde mi perspectiva ha sido la app más rapidad que he creado solo en 3 días en aprenderla y usarla (y eso que le dedique 2 horas por día a diferencia que en nativo fue, como un 3 meses y eso que soy optimista). Ojo una app decente. Traten de crear una app de estadísticas (mayormente son apps investigación) que requieren muchos gráficos y háganlo en nativo y verán lo que digo.
Continuando puedo decir abiertamente que tomare Flutter como camino (más facil que Xamarin y React ni que hablar del nativo). Y no lo digo yo lo dice el trending han visto la gráfica de como se disparo Flutter con respecto a otros.
Por ultimo mis conclusiones.
Si se preguntan cuando usar Flutter. Primero programar en en nativo siempre sera mejor (aunque el 90% del mercado lo hace en tenologias Híbridas y solo un 10% al 5% son apps nativas). Siempre y cuando tu app requiera especificaciones muy detalladas y un rendimiento máximo. No le veo el problema.
Pero háganse está pregunta cuantas personas son en su equipo. La App que van a desarrollar sera la próxima revolución. Por lo que se necesita que sea ultra especifico.
En la gran mayoría de casos puedo que no (notese el sarcasmo) y en caso que si bien por ti. Pero talvez te topes con muchos clientes que quieren digitalizar sus marcas esto llevara al desarrollo de aplicaciones mobiles.
Y muchas veces se necesitara versiones para Android y iOS (al día de hoy si no ven esto, puede significar 2 cosas que no están bien informados o tal vez se les ocurrió una idea de negocio en una semana. Pd: De nuevo sarcasmo).
Por lo que muchas veces se puede tener presupuestos muy ajustados y se requiere una App estéticamente agradable como funcional. En este punto pueden tomar 2 caminos uno es en hacerlo en nativo y sufrir (modelo de base de datos, shared preferences, nsUserDefault, SqLite, etc… Y eso que no entramos en como consumir un servicio web. Optaría por GraphQL como bono lo dejo), o simplemente optar por reactivo. Como lo es Flutter.
Bueno gracias si lo has leido todo. Se que me pase con la mini lectura. Pero son unos puntos que considero importantes.