Este es un proyecto de Android diseñado para gestionar y visualizar información cultural, demostrando la implementación de un flujo de navegación moderno utilizando las mejores prácticas de desarrollo, incluyendo MVVM Architecture, Material Design 3, View Binding, Jetpack Compose y Navigation Component.
- Arquitectura MVVM: Separación clara entre la lógica de negocio (
ViewModel), el estado de la UI y la vista (Fragment/Composable). - Autenticación con Firebase: Gestión de usuarios segura y escalable utilizando Firebase Auth.
- Navegación Anidada (Nested Navigation): Implementación de un flujo de subnavegación dentro del Home mediante un BottomNavigationView y un grafo de navegación independiente (
nav_home.xml). - Validación en Tiempo Real: Formularios de Login y Registro con validaciones dinámicas.
- Single Activity Architecture: Utiliza una única actividad principal (
MainActivity) que gestiona el flujo de fragmentos. - Navigation Component (Safe Args): Implementación robusta de navegación con paso de argumentos seguro entre pantallas.
- Material Design 3: Interfaz de usuario moderna y adaptable con componentes avanzados de Material.
- View Binding & Data Binding: Acceso seguro y eficiente a las vistas XML.
- Jetpack Compose: Integración de componentes de UI modernos y declarativos.
- Carga de Imágenes con Coil: Carga eficiente de imágenes desde URLs.
- Kotlin: Lenguaje principal de desarrollo.
- Firebase Auth & Analytics: Para autenticación y análisis de uso.
- Navigation Component: Gestión de rutas y transiciones.
- Jetpack Compose: Para la creación de interfaces modernas.
- Coil: Librería de carga de imágenes.
- Coroutines & Flow: Manejo de asincronía y flujos de datos reactivos.
- View Binding: Vinculación de vistas segura.
Antes de comenzar, asegúrate de tener instalado:
- Android Studio (versión reciente recomendada).
- JDK 17 o superior.
- Android SDK (API 34+).
-
Clonar el repositorio:
git clone https://github.com/pablocelva/portalcultural.git
-
Importar en Android Studio:
- Abre Android Studio.
- Selecciona File > Open.
- Navega hasta la carpeta del proyecto y haz clic en OK.
-
Configurar Firebase:
- Crea un proyecto en Firebase Console.
- Añade una aplicación Android con el package name
com.celvadev.portalcultural. - Descarga el archivo
google-services.jsony colócalo en la carpetaapp/.
-
Sincronizar Gradle:
- Haz clic en "Sync Project with Gradle Files".
app/src/main/
├── java/com/celvadev/portalcultural/
│ ├── data/ # Repositorios y fuentes de datos (Firebase)
│ ├── domain/ # Lógica de negocio y casos de uso
│ ├── model/ # Modelos de datos (Noticia, Convocatoria, etc.)
│ ├── ui/ # Componentes de Jetpack Compose y Temas
│ ├── validation/ # Lógica de validación de formularios
│ ├── view/ # Capa de presentación (Fragments y Activity)
│ │ └── home/ # Subnavegación del Home (Welcome, Product, Graph)
│ ├── viewModel/ # ViewModels (Login, Register, etc.)
│ └── MainActivity.kt # Actividad principal
├── res/
│ ├── layout/ # Diseños XML
│ ├── menu/ # Definición del Bottom Navigation
│ ├── navigation/ # Grafos de navegación (nav_graph, nav_home)
│ └── values/ # Colores, Strings y Estilos
└── AndroidManifest.xml
Si deseas contribuir:
- Haz un Fork del proyecto.
- Crea una rama para tu mejora (
git checkout -b feature/Mejora). - Haz un Commit (
git commit -m 'Añade funcionalidad'). - Haz Push (
git push origin feature/Mejora). - Abre un Pull Request.
Este proyecto está bajo la Licencia MIT.











