
MyReads
MyReads es una app que te ayuda a gestionar y descubrir libros. Organiza tu lista de lectura en categorías como por leer, leyendo y leído, y encuentra nuevos títulos explorando por género.
Establece metas anuales de lectura y visualiza tu progreso a lo largo del año. Toda tu información se sincroniza entre dispositivos, para que siempre tengas acceso a ella estés donde estés.

Firebase
Autenticación

Los usuarios pueden iniciar sesión en la app usando su correo electrónico y contraseña, o mediante la autenticación con Google y Apple. Firebase Authentication gestiona el proceso de forma segura y eficiente, verificando las credenciales y manejando errores en tiempo real para asegurar una experiencia de acceso fluida.

Los nuevos usuarios pueden crear una cuenta con su correo y contraseña. Una vez registrados, sus datos se almacenan de forma segura en Firebase Authentication, lo que simplifica la gestión de usuarios e integra fácilmente con otros servicios de Firebase.
Google Books API
Acceso a datos


Al integrar la API de Google Books, permitimos a los usuarios buscar libros en tiempo real. Los resultados muestran detalles clave como la portada, el título y el autor. Esta información se extrae directamente de la API y se presenta en la interfaz de forma clara y organizada.
Cuando un usuario selecciona un libro, la app ofrece una vista detallada con información adicional proporcionada por la API de Google Books. Esto incluye el número de páginas, el idioma, la sinopsis completa y otros datos relevantes. La app procesa estos datos de forma eficiente para garantizar una experiencia completa y fluida para el usuario.
Firestore / AppStorage
Almacenamiento

Firestore se encarga del almacenamiento y la sincronización de los datos del usuario, como listas de libros y progreso de lectura. Permite actualizaciones dinámicas y mantiene la coherencia entre dispositivos, asegurando que la información esté siempre actualizada y accesible.

Para guardar la preferencia de tema, AppStorage almacena el modo de apariencia elegido (claro u oscuro). Este almacenamiento local garantiza que la elección del usuario se mantenga entre sesiones y se aplique automáticamente al volver a abrir la app.
MVVM
Arquitectura

La app sigue el patrón MVVM, separando la interfaz de la lógica de negocio. El ViewModel gestiona el flujo de datos entre la Vista y el Repositorio, que encapsula el acceso a Firestore a través del DataSource. Cada capa tiene una responsabilidad clara: la Vista muestra, el ViewModel procesa y el Repositorio obtiene los datos.
Esta separación permite modificar o ampliar cualquier capa sin afectar al resto. Cambiar la fuente de datos, ajustar la lógica de negocio o rediseñar la interfaz se convierte en algo predecible y seguro, facilitando la evolución de la app a largo plazo.
Próximos pasos
¿Qué sigue?
Desarrollar esta app ha sido una experiencia increíblemente enriquecedora, aunque debo admitir que tuvo un efecto inesperado: ¡ahora tengo más libros en mi lista que antes! La ironía de crear una herramienta para organizar la lectura ha provocado una avalancha de nuevos títulos. Así que estoy listo para volver a sumergirme en mis libros — no te preocupes, también iré leyendo algunos sobre SwiftUI para mantener el equilibrio.
La app aún tiene margen de mejora — a continuación me centraré en implementar tests para aumentar su robustez. El código está disponible en GitHub, y estoy abierto a sugerencias que me ayuden a seguir creciendo. Si tienes ideas o buscas a alguien para tu próximo proyecto, no dudes en contactarme.
