Maui es una aplicación móvil desarrollada con .NET MAUI, que sigue principios de arquitectura limpia, promoviendo el desacoplamiento de la interfaz de usuario, así como la reutilización de componentes visuales y lógicos.
Maui/
│
├── UI/ # Proyecto principal MAUI (UI y navegación)
│ ├── Views/ # Páginas específicas (Home, Auth, etc.)
│ ├── ViewModels/ # ViewModels por módulo
│ ├── Resources/ # Fuentes, estilos y recursos locales
├── Shared/ # Recursos compartidos entre vistas o ViewModels (componentes específicos de páginas o ViewModels)
│ └── App.xaml # Punto de entrada y configuración principal
│
├── Components/ # Biblioteca MAUI para componentes UI reutilizables y Genericos
│ ├── Components/ # Controles personalizados (botones, tarjetas, inputs)
│ ├── Themes/ # Temas globales (colores, estilos, modo oscuro/claro)
│ ├── Libs/ # Librerias internal o externas como (Font Awesome)
│ ├── Behaviors/ # Validaciones, efectos e interacciones personalizadas
│
├── Application/ # Capa de aplicación (servicios, base)
│ ├── Config/ # Configuraciones específicas de la aplicación
│ ├── Interfaces/ # Interfaces Repositorios y servicios comunes
│ ├── Services/ # Servicios como NavigationService, DialogService, etc.
│ └── Mappers/ # Mapeo de objetos (AutoMapper o manual)
│
├── Domain/ # Lógica de negocio pura
│ ├── Entities/ # Entidades del dominio (Usuario, Ruta, etc.)
│ └── Validators/ # Validaciones específicas del dominio
│
├── Infrastructure/ # Implementaciones técnicas (acceso a datos, APIs)
│ ├── Data/ # EF Core, SQLite, clientes REST
│ ├── Services/ # Integraciones externas (APIs, email, archivos)
│ └── Config/ # Constantes y configuraciones de entorno
│
├── Shared/ # Código compartido entre capas
│ ├── Models/ # Modelos comunes
│ ├── Enums/ # Enumeraciones globales
│ ├── Constants/ # Constantes generales
│ ├── Extensions/ # Métodos de extensión
│ └── Utils/ # Utilidades y helpers
- .NET 8 SDK
- MAUI workload instalado (
dotnet workload install maui) - Visual Studio 2022 o 2025 con soporte para MAUI
Desde la terminal:
dotnet build UI
dotnet run --project UIO abre el proyecto UI en Visual Studio y ejecuta en un emulador Android o simulador iOS.
Los diccionarios de recursos se encuentran en Components/Themes/ y se agregan en App.xaml.cs así:
Resources.MergedDictionaries.Add(new Colors());
Resources.MergedDictionaries.Add(new Styles());- Arquitectura basada en MVVM (Model-View-ViewModel)
- Inyección de dependencias configurada en
MauiProgram.cs - Separación clara entre UI, Infrastrutura y dominio
- Reutilización de UI mediante la librería
Components - Código compartido y utilidades centralizadas en
Shared