Referencia
App mobile
Arquitectura y estructura de la aplicación móvil de ServiciosApp
App mobile
La aplicación móvil de ServiciosApp está disponible para Android e iOS y está construida con Expo + React Native.
Stack tecnológico
| Componente | Tecnología |
|---|---|
| Framework | Expo 54 |
| UI | React Native 0.81 |
| Lenguaje | TypeScript |
| Estilos | NativeWind (Tailwind CSS) |
| Navegación | Expo Router (React Navigation) |
| Estado global | Zustand |
| Validación | Zod |
| HTTP | Axios |
| Mapas | react-native-maps |
| Gestos | react-native-gesture-handler |
| Animaciones | react-native-reanimated |
| Almacenamiento | AsyncStorage + SecureStore |
Estructura de directorios
src/
├── app/ # Rutas y pantallas (Expo Router)
│ ├── (tabs)/ # Navegación con pestañas
│ │ ├── index.tsx
│ │ ├── explore.tsx
│ │ ├── services.tsx
│ │ ├── favorites.tsx
│ │ ├── company.tsx
│ │ └── user.tsx
│ ├── login.tsx
│ ├── register.tsx
│ └── ...
├── controllers/ # Coordinadores de UI por pantalla
├── components/ # Componentes reutilizables
├── services/ # Lógica de negocio y HTTP
├── schemas/ # Esquemas de dominio y API
├── mappers/ # Transformaciones DTO ↔ dominio
├── hooks/ # Lógica de datos reutilizable
├── stores/ # Estado global (Zustand)
├── helpers/ # Utilidades
└── config/ # Configuración global
Arquitectura en capas
Capa de presentación (Controllers + Components)
Los controllers coordinan la UI de cada pantalla y se comunican con hooks y servicios. Los componentes son reutilizables y no contienen lógica de negocio.
Capa de servicios
Los servicios se encargan de:
- Realizar peticiones HTTP al backend
- Validar las respuestas con Zod (wrapper
{ status, message, data }) - Transformar los datos mediante mappers
Capa de mapeo
Los mappers transforman los DTOs de la API en modelos de dominio y viceversa, asegurando que cada capa trabaje con sus propios tipos.
Capa de dominio
Los esquemas de dominio (src/schemas/domain/) definen los tipos y validaciones que utiliza toda la aplicación.
Pantallas principales
| Pantalla | Ruta | Descripción |
|---|---|---|
| Inicio | (tabs)/index | Pantalla principal con acceso rápido |
| Explorar | (tabs)/explore | Búsqueda de servicios con filtros |
| Servicios | (tabs)/services | Listado y detalle de servicios |
| Favoritos | (tabs)/favorites | Servicios guardados |
| Empresa | (tabs)/company | Gestión de perfil empresarial |
| Usuario | (tabs)/user | Perfil de usuario y configuración |