
The Challenge
Hace años construimos una aplicación móvil en Ionic para un cliente que se conectaba al CRM que les habíamos construido y desde ella podían realizar tareas importantes en su negocio, una inmobiliaria, sin tener que estar en la oficina.
Durante estos años, este cliente ha ido creciendo rápidamente y llegado a este punto nos pidieron una nueva serie de funcionalidades. Pero cuando nos pusimos a analizarlas nos dimos cuenta de un stopper que teníamos. La versión de Ionic era muy antigua, y estaba obsoleta. Podríamos haber utilizado esta versión, pero nos pareció complicado y un problema grande el ir añadiendo funcionalidades sobre una tecnología antigua.
El primer pensamiento que tuvimos fue el de migrar la aplicación a una versión más moderna de Ionic, pero nos encontramos con otros problemas, como que algunas de las librerias que usabamos ya no existian. Sumado a que el cliente solo requiera la aplicación en Android y que en estos últimos años nuestro conocimiento y uso en Java y Android ha crecido, creímos que la mejor manera era migrar la aplicación entera al lenguaje nativo de Android.
The Solution
Para resolver este reto, primero de todo decidimos usar Copilot, y le pasamos todo nuestro código y le dimos un prompt bastante completo, indicando que queríamos migrar ese código a una aplicación nativa en Android. El resultado obtenido no fue especialmente bueno, contenía errores de compilación, faltaban funcionalidades y a parte no nos sentíamos cómodos con un código que no era nuestro.
Así que decidimos hacer un enfoque más técnico y estructurado. Para ellos seguimos el siguiente patrón de trabajo :
- Primero le dijimos a Copilot la aplicación que queríamos hacer, que la teníamos en Ionic, que le iríamos dando las pautas poco a poco, y que nos construyera un esqueleto de aplicación móvil con 4 tabs inferiores.
- El siguiente paso, fue poco a poco, irle dando todos los DTOs que necesitaba nuestra aplicación. Como los teníamos en Ionic fue muy fácil la conversión.
- Después pasamos a las llamadas API. Aquí también fue bastante fácil, puesto que las llamadas las teníamos definidas en Ionic.
- El siguiente paso fue ir pestaña a pestaña, primero de todo, pidiendole a Copilot que nos adaptara nuestro código en HTML a formato Android para las pantallas visuales, y luego ir haciendo la lógica de nuestra aplicación.
- Para ello le ibamos indicando función a función y paso a paso, lo que lógicamente tenía que hacer y le dabamos como ejemplo el código que teníamos en Ionic.
The Results
El resultado final ha sido una aplicación funcional en Android nativo, que replica a la perfección el funcionamiento de la aplicación que desarrollamos hace años.
Otro aspecto que queremos destacar es que, al haber utilizado este enfoque de paso a paso, tenemos mucho más conocimiento del código que hemos cocreado con Copilot, no es simplemente un código copiado, si no que en muchos casos había que adaptar ciertas cosas, esto nos da mucho conocimiento y facilidades para poder ampliar funcionalidades de la aplicación o para corregir bugs que puedan surgir en fases posteriores.
Como resultado, hemos tardado 60 horas de trabajo con Copilot en adaptar la aplicación y en añadir las nuevas funcionalidades.
En su momento la aplicación original la estimamos en 300 h, y las nuevas funcionalidades las estimamos en unas 15 h de trabajo de programación.
La aplicación aún no está acabada, faltan realizar más pruebas y poder corregir errores, pero calculamos que, como mucho, nos iremos a las 100h, siendo un beneficio muy grande.
The Learnings
¿Que hemos aprendido con este proyecto? Primero de todo, que si utilizamos la IA de forma inteligente y ética, podemos mejorar mucho nuestros tiempos de desarrollo. También hemos aprendido que, no sabemos si es por el proyecto o el código que nosotros teníamos, pero la IA no es suficientemente madura como para migrar un proyecto entero, aunque con la evolución que estamos viviendo esto puede cambiar en un periodo de tiempo muy corto.
- Inicie sesión o registrese para enviar comentarios