Rick & Morty AI Chat es una aplicación móvil que permite a los usuarios tener conversaciones impulsadas por inteligencia artificial con los icónicos personajes de la serie Rick & Morty.
- Autenticación: Los usuarios pueden registrarse, iniciar sesión y recuperar su contraseña de forma segura utilizando Firebase Authentication.
- Chats: Los usuarios pueden ver todas sus conversaciones en la pantalla "HomeChats" y chatear individualmente con un personaje en la pantalla "IndividualChat".
- Contactos: Los usuarios pueden ver una lista de personajes de Rick & Morty con los que pueden iniciar una conversación en la pantalla "ContactList".
- Personalidades únicas: Cada personaje tiene una personalidad única generada por Vertex AI de Firebase, basada en su información de la API de Rick & Morty.
- Almacenamiento de datos: Los datos de los usuarios, chats y personajes se almacenan de forma segura en Firebase y en una base de datos local (ROOM).
- Jetpack Compose: Para crear una interfaz de usuario declarativa y reactiva, lo que simplifica el desarrollo y mejora la capacidad de mantenimiento.
- Navigation Compose: Gestión eficiente y efectiva de la navegación en la aplicación.
- Kotlin: Lenguaje de programación principal, que ofrece concisión, seguridad y características modernas para un desarrollo eficiente.
- Coroutines & Flow: Para manejar operaciones asíncronas y flujos de datos de manera efectiva.
- Android Architecture Components (ViewModel, LiveData, Room): Para implementar el patrón MVVM y gestionar el ciclo de vida, los datos y la persistencia local de manera estructurada.
- Hilt (Dagger): Para la inyección de dependencias, facilitando la modularidad y la testabilidad del código.
- Retrofit: Para realizar solicitudes de red y consumir la API de Rick & Morty.
- Firebase: Para la autenticación de usuarios, el almacenamiento en la nube (Firestore) y el acceso a Vertex AI para generar las personalidades de los personajes.
- Kotlinx Serialization: Para la serialización y deserialización de datos JSON.
- Coil: Para la carga y manejo optimizado de imágenes, incluyendo soporte para imágenes SVG.
- Extended Icons de Material Design: Proporciona una vasta colección de iconos para mejorar la interfaz de usuario.