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:

bash
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

1

Sistema de Autenticación

Autenticación JWT segura con inyección automática de tokens

kotlin
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()
}
2

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

3

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
4

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

100%
Seguro

Configuración de Build

kotlin
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"
    }
}
Min SDK 26
Android 8.0+ (Oreo)
Target SDK 36
Android 16 (Baklava)

Próximos Pasos