Visión General de la App Android
Guía completa de la arquitectura y características de la aplicación iMirly para Android, construida con Jetpack Compose y las mejores prácticas modernas de desarrollo.
Introducción
La aplicación iMirly para Android está construida con Jetpack Compose y sigue las mejores prácticas modernas de desarrollo Android utilizando la arquitectura MVVM. La app conecta usuarios con profesionales de servicios locales a través de una plataforma de marketplace segura y en tiempo real.
26+
Min SDK Support
100%
Kotlin
Real-time
Chat System
Arquitectura
Stack Tecnológico
La aplicación utiliza un stack tecnológico moderno y robusto para garantizar rendimiento, mantenibilidad y escalabilidad.
UI Framework
Jetpack Compose con Material 3 design system
Networking
Retrofit 2.9.0 con Gson converter
Navigation
Jetpack Navigation Compose 2.8.0
State Management
ViewModel con Kotlin Coroutines
Estructura del Proyecto
La aplicación sigue una estructura de paquetes modular organizada por funcionalidades:
com.imirly.app/
├── network/ // API services y data models
│ ├── RetrofitClient.kt
│ ├── AuthApiService.kt
│ ├── CatalogApiService.kt
│ ├── MensajeApiService.kt
│ ├── SolicitudApiService.kt
│ ├── UserApiService.kt
│ └── TokenManager.kt
├── ui/
│ ├── auth/ // Login y registro
│ ├── main/ // Pantalla principal
│ ├── catalog/ // Listados de servicios
│ ├── chat/ // Mensajería en tiempo real
│ ├── messages/ // Bandeja de entrada
│ ├── profile/ // Perfil de usuario
│ └── publish/ // Crear anuncios
└── MainActivity.kt // Navigation host
Características Principales
Sistema de Autenticación
Autenticación JWT segura con inyección automática de tokens
package com.imirly.app.network
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
object RetrofitClient {
private const val BASE_URL = "http://10.0.2.2:8080"
private val okHttpClient = OkHttpClient.Builder()
.addInterceptor(Interceptor { chain ->
val originalRequest = chain.request()
val token = TokenManager.jwtToken
val newRequest = if (token != null) {
originalRequest.newBuilder()
.header("Authorization", "Bearer $token")
.build()
} else {
originalRequest
}
chain.proceed(newRequest)
})
.build()
}
Catálogo de Servicios
Explora categorías y subcategorías con listados dinámicos
Categorías
Deporte, Belleza, Reparaciones, Clases, y más...
Búsqueda
Búsqueda de texto completo con filtros de ubicación y categoría
Favoritos
Guarda y gestiona tus proveedores de servicios favoritos
Chat en Tiempo Real
Sistema de chat basado en polling con tipos de mensajes especiales
PROPUESTA_PRECIO
Propuestas de precio
ACEPTAR/RECHAZAR
Aceptación/rechazo de contratos
COMPLETAR
Notificaciones de trabajo completado
RATING
Sistema de valoración
Pagos Seguros
Sistema de pagos en escrow que retiene fondos hasta la finalización del servicio
Protección de Pagos
Los fondos se liberan solo cuando el trabajo está completado
Configuración de Build
android {
namespace = "com.imirly.app"
compileSdk = 36
defaultConfig {
applicationId = "com.imirly.app"
minSdk = 26
targetSdk = 36
versionCode = 1
versionName = "1.0"
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
}