Rehaciendo desde 0 un proyecto – «Android dream stack technologies»

En noviembre comencé el curso de Architect Coders. Me lo habían recomendado, pero tenía mis dudas sobre si me sería útil… sobre todo porque muchas de las cosas que incluía las tenía más que superadas (ya os he hablado en otro artículo sobre todos los cursos y formación que he hecho). Al final me decidí a hacerlo porque suponía revisar todo lo que me gustaría que tuviera el proyecto Android en el que querría trabajar…pero también por el enfoque que le estaban dando: se trata de pertenecer a una comunidad de desarrolladores Android, donde las buenas prácticas estén completamente interiorizadas.

Y la verdad es que está muy bien, no me he arrepentido. El curso tiene una parte práctica que te insta a aplicar en una app todo lo que vas aprendiendo, y yo decidí aplicar todo lo que pudiera a StartUp Fantasy. En cuanto he acabado el curso he visto que algunas cosas no las había podido practicar en este proyecto (el paso de MVP a MVVM, y después de MVVM a Clean architecture), y que lo mejor para aprovechar al máximo el curso sería comenzar de cero otro proyecto.

El proyecto

Tenía que hacer un proyecto, desde cero. Sencillo, pero que tuviera bastantes cosas como para poder implementar los aspectos más importantes del stack tecnológico que iba a utilizar… así que he retomado una vieja idea que ya lanzamos cuando empezábamos con GotSpots: «Menja’t Barna».

En este artículo os explico las decisiones más técnicas, pero dejo pendiente otro con todo el tema de definición y validación del producto utilizando Lean Canvas. Por ahora os basta con saber que se trata de un buscador de restaurantes, pero se busca por plato. Te indica que restaurantes cercanos tienen, por ejemplo, tortilla de patata, cocido madrileño, pizza barbacoa o unos nachos.

Bueno, tampoco vamos a entrar ahora en temas de diseño y marketing. Por ahora solo os digo que he hecho un rebranding y renaming. Ahora la app se llama Gula.

Vale, es lo que a lo mejor alguna vez me habéis escuchado definir como «una idea de 100 km». Son ideas que aparecen cada 100km, llevadas a cabo con mayor o menor éxito. He visto varias aplicaciones con enfoques similares a Gula, pero esta vez no se trata de ser el más innovador… se trata de coger una idea que me parece interesante (yo la usaría…la usaría mucho), que me sirva de ejemplo y como banco de pruebas para ir incluyendo lo que en otros proyectos no puedo.

El stack tecnológico

He usado Kotlin, aprovechando todo su potencial e intentando seguir los principios SOLID desde el principio.

He estructurado primero el proyecto con una arquitectura MVP. Luego lo he migrado a MVVM, he integrado algunas librerías de Jetpack (Room, Navigation, DataBinding), y luego lo he migrado a Clean Architecture.

También he usado inyección de dependencias con Dagger, y he implementado tests unitarios y de integración.

Para el backend he utilizado Firebase. Esta vez solo necesitaba la base de datos, firestore, pero pretendo utilizar el resto de recursos que ofrece firebase…y contároslo en otro artículo.

El código

Puedes ver el código en el siguiente repositorio: https://github.com/DiegoGargallo/Gula

Os adelanto que no es una app que podamos lanzar al Google Play así (le falta mucho), pero es un comienzo…un buen comienzo. Como podéis ver, no se trata de un MVP. Solo tiene un par de pantallas, y no ofrece muchas de las funcionalidades que realmente podrían hacer interesante la app para un usuario.

De hecho esas funcionalidades «interesantes» las tengo más o menos planteadas, pero habría que validar el modelo de negocio para comenzar a decidir cuáles implementamos primero.

¿Y ahora qué?

Pues ahora podría seguir desarrollando Gula… pero tengo otras cosas en marcha, y por ahora ha cumplido su cometido.

Según vaya necesitándolo, iré volviendo a este proyecto para utilizarlo de «conejillo de indias». Tengo varios artículos pendientes (validación de ideas de negocio, desarrollo de un MVP…), así que no creo que caiga en el olvido.

Si a alguien le interesa la continuidad de este proyecto, puede dedicarle tiempo y quiere que lo podamos lanzar… yo encantado de colaborar con lo que sea! Contactad conmigo y vemos cómo podemos hacerlo.

Deja una respuesta

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