Actualizar App de Flutter 1.x a 3.x sin morir en el intento

existen aplicaciones hace más de un año y de repente la tenés que actualizar a la última versión de platter [Música] Hola gente bienvenidos al Canal nuevamente en el episodio de hoy vamos a estar trabajando en actualizar una aplicación que hice hace más de dos años a la última versión de flutter para esta ocasión lo que vamos a hacer es trabajar con esta aplicación de see you here que era una aplicación que hice para un vídeo donde mostraba Cómo usar Google Maps para poder crear un evento y hacer que la gente mande sus ubicaciones para llegar a él y reunirnos en un en un mismo punto me encontré ahora que quiero hacerle algunas mejoras a esta aplicación sin embargo la versión de flutter con la que hice esta aplicación es muy vieja la hice hace más de dos años y ya estamos por flutter 3.0 las dependencias ya cambiaron y las plataformas en las que podemos ejecutar la aplicación también es por eso que hoy vamos a tratar de hacer andar esta aplicación nuevamente en Android con la última versión de flutter como primer paso voy a tomar el código y lo vamos a clonar para empezar desde cero vamos a pegar a hacer un Clon de nuestro repositorio y vamos a abrir el estudio visual Studio code para poder empezar a trabajar ahora que ya tenemos el código lo que vamos a hacer es ver un poquito de qué se trataba esta aplicación teníamos definido que íbamos a usar la biblioteca de Google Maps y vamos a usar firebase como pueden ver las dependencia de farbase son bastante viejas 014 para la base de datos y 018 para el tema de autenticación Si vemos la página oficial de flutterfire que son los plugins de Fire para flutter vemos que por ejemplo claust Cloud fire está por la versión 4 autentication por la versión 4.1 Sí Nuestras versiones están bastante desactualizadas Así que eso nos va a traer un problema por ahora no nos vamos a centrar en eso a nivel de código no eran mucho eran varias eran varias clases bastante feas bastante mal escritas no tienen ningún no tiene ningún manejo de Estados está todo escrito todo mezclado Eso es lo que quiero corregir lo que sí Twitter Pocket para obtener las dependencias y vamos a ver si este Comando corre y qué errores nos puede llegar a tirar como podemos ver nos tira un montón de errores primero no le coinciden el sdk de Dart que estamos corriendo con el sdk que tengo instalado porque estamos pidiendo mayor a uno como menor a dos con 12 y estamos con el 2,17 Así que lo primero que tenemos que hacer para poder salvar este paquete es ir resolviendo los errores lo que yo suelo hacer para que sea más fácil es tratar de ir resolviendo un error a la vez y no preocuparme por tratar de actualizar todo al mismo tiempo porque si queremos hacer eso lo más probable es que nos quedemos trabado en un mar de problemas si hacemos un flutter menos menos versión podemos ver que yo estoy trabajando ahora con la versión 305 no es la última última pero es la última que tengo instalada de canal estable al ejecutar el paquete vemos que tenemos un montón de error y acá lo que tenemos que tratar de identificar qué es lo que nos está causando el problema Si vemos empieza como porque test mayor a tanto requiere tal versión del sdk y así un montón de errores vemos Que esto no termina de resolver las dependencias y termina fallando cuando pasan estas cosas que tenemos así como que empezamos a ver problemas de versiones que alguien necesita algo más nuevo de lo que está instalado lo que suele estar pasando Es que tenemos alguna dependencia libre una dependencia libre es una dependencia a la que no le no le especificamos nunca una versión y lo que está tratando en este caso flutter es resolver siempre contra la última como nuestro código muy viejo la última versión de algo a lo que nosotros no le habíamos especificado seguramente cambió mucho de la versión que unos es otros utilizamos dos años atrás Es por eso que nos está dando este problema si nosotros vamos a ver nuestro código vamos a ver que por ejemplo nuestra dependencia de testing no tiene ninguna ningún número de versión por lo tanto Está tratando de usar la librería de testing de de flutter 3.0 pero esta aplicación está todo preparado con todas sus dependencias para un flutter uno coma algo no me acuerdo exactamente la versión una opción rápida es decir Bueno vamos a Eliminar todo por ahora Total no vamos a tratar de correr nada de esto después vemos como lo solucionamos esto lo vamos a querer activar después de nuevo pero por ahora vamos a tratar de compilar sin los test vamos a correr de nuevo y ver si tenemos una salida diferente y a ver si esto hizo alguna diferencia vemos que ahora cambia ahora ya no dice depende on test el primero de los errores ahora es el flutter Driver el que nos causa problemas y acá si tenemos otra vez el test con el Cloud files acá tenemos un Provider el cual no tenía versión Este es el que uno de los que no está fallando es este test Any malo en nuestra parte haberlo tenido así vamos a ver si estas que no tienen versiones no nos molestan y si nos molestan vamos a ver si podemos ubicar una versión la cual nos permita combinar ahí ahí se arregló todo flutter pudo resolver todas las dependencias me tira algunas cosas que están de precadas obviamente Hace dos años que este código se escribió así que por ahora vamos a decir que ya tenemos las dependencias cargadas Si vemos acá todo nuestro código se le fue todo lo rojo y ya deberíamos poder tratar de compilar para poder compilarlo vamos a elegir nuestro emulador donde lo vamos a correr Yo voy a elegir este Happy 30 y vamos a ver qué pasa si yo quiero ejecutar esta aplicación esto puede demorar un poco porque tiene que bajar todas las dependencias de Android pero Apenas termine continuamos con el vídeo termino de compilar tiro errores si vamos a fijarnos vemos que tenemos algunos errores acá en un archivo de grado dentro de la carpeta de la instalación de flutter nos avisa de algunas cosas que están de precaviter me dice que el location web not phone lizard day setting punto grave pero este proyecto no soportaba flutter web supuestamente entonces acá empiezan a ver cosas que ya nos empiezan a molestar lo primero que vamos a tratar de hacer es sacar el problema este de location web lo que está pasando es básicamente que flutter está utilizando este archivo que está dentro de flutter 3 que está preparado para utilizar para buscar paquetes o compilar aplicaciones que soportan plataformas de Android iOS web de texto pero nuestro código todavía no está preparado para tanta magia debido a que fue hecho en una versión donde solamente se soportaba Android y iOS si hacemos si hacemos una búsqueda rápida vamos a encontrar este artículo en stock overflow donde si nos vamos a la parte de las soluciones nos dice que podemos cambiar un poco nuestro settings punto grados y pegar este código esto nos conviene hacerlo por ahora una vez que estemos actualizado a flutter 3 nos conviene dejar la versión de flutter 3 de manera de que las cosas anden como se supone que deben andar vamos a buscar dentro de nuestra carpeta Android nuestro settings punto grado Y en lugar de utilizar esto que vamos a dejar comentado vamos a pegar lo que nos propone stackover Y si miramos también nos dice que deberíamos revisar en nuestro Bill punto grado y en el bit punto grados dentro de la aplicación no el que está afuera vamos a asegurarnos de que sea el mismo que nos está poniendo ahí esto es igual a eso y el fluttershy es igual bien ese debería estar viendo deberíamos necesitar cambiarlo ya cambiamos nuestro setting punto grados vamos a ver ahora sí tenemos suerte para compilar otra vez esto puede ir demorando Android no se caracteriza por ser rápido en compilar Así que hay que tener paciencia e ir resolviendo paso a paso Ya terminó de tratar de compilar nuevamente encontramos un error distinto lo cual es indica que vamos por el buen camino y ahora vemos que se queja algo de que este nulo key true no existe si hacemos clic acá en el link del archivo vemos Que Esto está en el dentro de la carpeta flutter svg que es una de mis dependencias y este nulo Ok seguramente tiene que ver con que esta librería antes no soportaba nullsong en flutter y ahora Necesitamos una versión que la soporte porque estamos ya corriendo en un flutter donde podemos tener valores con el muro para eso lo que deberíamos hacer es buscar flutter esbc y tomar la última versión disponible que seguramente ya soporta nullsong acá ya nos dice en el Label que si la soporta Y de esa manera deberíamos solucionar nuestro problema vamos a agregar eso en nuestro Power Spec punto y ahora sí vamos de nuevo a ejecutar la aplicación y ver si ahora con pila o si nos da otro error vamos progresando volvió a cambiar el error ahora básicamente el error es que esta aplicación usa fireways y dice que no está encontrando el archivo de configuración de Google Services Eso es porque yo cloné mi reto público y me repo público no tengo este archivo por una cuestión de que está ligado a mi cuenta y eso me puede generar un costo Así que lo que voy a hacer es ir a la consola de fireways dentro de esta consola voy a entrar al proyecto voy a ir a la configuración del proyecto voy a buscar acá donde tengo configurada mi aplicación de Android y me voy a bajar el archivo Google Services punto en este caso ya lo tenía bajado un par de veces así que ahora lo que voy a hacer es copiarlo dentro de la carpeta Android de nuestra aplicación ahí copié ya el archivo a mí por una cuestión de gusto me gusta ponerlo dentro de la carpeta app y no dentro de la carpeta Android en cualquiera de las dos funcionaría de hecho en cualquiera de estas ubicaciones debería funcionar y otra vez pasó tardó un poco más significa que estamos nuevamente por el buen camino y ahora tenemos que tratar de descifrar cuál fue exactamente el color en este punto entra mucho juego los conocimientos que tengamos sobre desarrollo Android si no si Ustedes empezaron con flutter y nunca se apoyaron Android nativo puede ser que estas partes del proceso les cueste más porque entender los errores de compilación de la parte de Android y Cómo resolver Y cómo reconfigurar nuestra aplicación Android para que compile puede ser un desafío simplemente apoyarse en Google y traten de ir Buscando los errores estas líneas que empiezan con Note en general las podemos ignorar no siempre pero no no suelen ser de ayuda las que queremos son estas que están con el E2 puntos Entonces ahora lo primero que me dice es que estoy compilando con una versión incompatible de kotling es el lenguaje con el que está hecha la parte nativa dice que la versión con la que está hecha la librería que que usa la aplicación está compilada con la versión 1.5.1 y que mi aplicación está usando la versión 1.1.15 súper vieja entonces lo que tenemos que hacer es actualizar nuestra configuración en la aplicación de Android para usar por lo menos la versión 1,5,1 de kotbit como hacemos eso vamos a ir de vuelta a la aplicación Android a la carpeta Android dentro vamos a buscar el archivo Bill punto grados y acá van a ver que tenemos la versión de codly de Por qué me estaba diciendo que estaba usando la 1.1 en realidad estaba usando la 1.3 pero lo que vamos a hacer acá es cambiar a la 1.5.1 que es la que me pedía el error Por las dudas vamos a ver que no tengamos ese settings en ningún otro archivo y No deberíamos vamos a compilar y ver qué pasa esta vez el error llegó rápido ahora vamos a ver el error y me dice que no puede encontrar el grade plugin 151 Eso es porque este no existe creo que es 150 el plano bien Ahí está con el 1.50 funcional no sé por qué decía 1 5 1 pero es 150 ahora lo que me está diciendo es que el gradle versión 562 no es compatible con esta versión del plugin entonces lo que nosotros necesitamos bajar es una versión de grave que sea mayor o menor mayor o igual a las 6,1 la versión de grave está en este archivo que se llama gravel roper dónde está en la carpeta Android grave grade rapper properties y acá en esta URL es donde tenemos Cuál es la versión si no saben que poner acá es cuestión de googlearlo poner distribución y URL grado 6.1 yo les voy a copiar y pegar directamente vemos que ahí después de esos últimos cambios ya la aplicación se ejecuta vamos a cerrar esto por ahora vemos que acá nos tira un error de que un splash es skins fue proveída que hay una migración para hacer de las playas screen a la nueva forma de que hacer las Plant screen pero en principio la aplicación ejecutado vamos a ver qué pasa si quiero entrar como anónimo ahí veo que estoy logueado en la aplicación como anónimo obviamente puedo recibir notificaciones puedo crear una fiesta acá ahora me está tirando errores debido a bien Ahora nos está tirando errores debido a que no tengo la Api de Google Maps entonces acá abajo debería aparecer el mapa pero no me está apareciendo eso Simplemente hay que ir a la consola de Google Y obtener la APK para usar Google Maps para eso pueden ver el vídeo original donde muestro cómo se configura y además Cómo se hace el Setup del payment porque esto está aquí tiene un cupo gratuito pero hay que dejar seteado una tarjeta de crédito Por si nos excedemos pero acá seguramente teatro Colón en lo que buscamos en el vídeo original puedo setear la ubicación Y seguramente Hay algún otro error porque no tengo lado bien Sí hay un error porque quiere actualizar el mapa el mapa no está actualizado porque no está la piquín entonces la aplicación explota voy a actualizar el apk y ahora vuelvo con ustedes ahí actualice ya Le agregué la picky en mi Android manifest para poder verlo vamos a ver si habrá cargar el mapa ahora tengo mapa voy a decir que quiero ir al teatro Colón me pone mi Market en el teatro Colón y así puedo crear este evento Ahora sí acá me deberían empezar a aparecer los update si ahí estoy yo que quiero ir al teatro Colón Yo estoy en el obelisco para ir al teatro Colón si quiero puedo cambiar esa ubicación vamos a ir a Puerto Madero Buenos Aires set Location ahí me actualiza el mapa Yo estoy en Puerto Madero y a donde quiero ir es el teatro color si hubiese otra gente me pondría los otros marker con sus iniciales Y a medida que se mueven iríamos viendo el tiempo real como como se mueve la gente Así que bueno gente eso va a ser todo por hoy en el próximo vídeo vamos a empezar a trabajar en esta aplicación ahora que ya la podemos compilar vamos a hacer lo mismo para iOS Aunque a mí me cuesta un poco más porque tengo poco conocimiento de la parte nativa pero vamos a hacer el intento y después vamos a tratar de actualizar las dependencias para poder usar esta aplicación también en flatter for web y en flaterford utilizando firebes como backen Y por último vamos a tomar el código y lo vamos a re factorizar optimizando Clean arquitecture para tener una aplicación modularizable testeable y que la podamos y que le Podemos agregar funcionalidad en el futuro de manera mucho más simple ya saben si les gustó el vídeo pueden suscribirse dejarme un comentario y dejarme un like que no cuesta nada Gracias y hasta la próxima [Música]

As found on YouTube

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *