Instalación de la App Android
Configura tu entorno de desarrollo para trabajar con la aplicación iMirly Android
Prerrequisitos
-
Instalar Android Studio
Descarga e instala Android Studio Ladybug o una versión más reciente desde el sitio oficial de Android.
-
Instalar JDK 17
El proyecto requiere Java 17. Verifica tu instalación:
Terminaljava -version # Debería mostrar: openjdk version "17.x.x" -
Clonar el Repositorio
Clona el código fuente de iMirly:
Terminalgit clone "https://github.com/yourusername/imirly.git" cd imirly/frontend
Configuración del Proyecto
1 Configurar Gradle
El proyecto utiliza Kotlin DSL para la configuración de Gradle. Archivos clave:
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
}
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"
}
buildFeatures {
compose = true
}
}
dependencies {
// Jetpack Compose
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.activity.compose)
// Retrofit para llamadas API
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.9.0")
// Navigation
implementation("androidx.navigation:navigation-compose:2.8.0")
// ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4")
// Material Icons Extended
implementation("androidx.compose.material:material-icons-extended")
}
2 Sincronizar Proyecto
Después de abrir el proyecto en Android Studio:
Sincronizar Gradle
Haz clic en File → Sync Project with Gradle Files o en el botón de sincronización en la barra de herramientas.
Descargar Dependencias
Gradle descargará todas las dependencias necesarias. Esto puede tardar varios minutos en la primera ejecución.
Verificar Build
Revisa la ventana de Build para verificar que no hay errores.
Configurar Conexión al Backend
Actualizar Base URL
Edita RetrofitClient.kt para apuntar a tu servidor backend:
package com.imirly.app.network
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import okhttp3.OkHttpClient
object RetrofitClient {
// Para Android Emulator, usa 10.0.2.2 para acceder a localhost
private const val BASE_URL = "http://10.0.2.2:8080"
// Para dispositivo físico, usa la IP de tu computadora:
// private const val BASE_URL = "http://192.168.1.100:8080"
private val okHttpClient = OkHttpClient.Builder()
.addInterceptor { 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()
val apiService: AuthApiService by lazy {
Retrofit.Builder()
.baseUrl(BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(AuthApiService::class.java)
}
val catalogService: CatalogApiService by lazy {
Retrofit.Builder()
.baseUrl(BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(CatalogApiService::class.java)
}
// Servicios adicionales...
}
10.0.2.2mapea a localhost en tu máquina de desarrollo- Para dispositivos físicos, usa la dirección IP local de tu computadora
- Asegúrate de que tu backend esté ejecutándose y sea accesible
Ejecutar la Aplicación
-
Crear AVD
Abre
Tools → Device Managery crea un nuevo dispositivo virtual:- Dispositivo: Pixel 5 o más reciente
- Imagen del Sistema: Android 13 (API 33) o superior
-
Iniciar Emulador
Haz clic en el botón de play junto a tu AVD para lanzar el emulador.
-
Ejecutar App
Haz clic en el botón Run (icono de play verde) en la barra de herramientas de Android Studio.
-
Habilitar Opciones de Desarrollador
En tu dispositivo Android:
- Ve a
Configuración → Acerca del Teléfono - Toca Número de compilación 7 veces
- Regresa a Configuración y abre Opciones de Desarrollador
- Ve a
-
Habilitar Depuración USB
En Opciones de Desarrollador, activa Depuración USB.
-
Conectar Dispositivo
Conecta tu dispositivo vía USB y autoriza la computadora cuando se te solicite.
-
Actualizar BASE_URL
Cambia el BASE_URL en RetrofitClient.kt a la IP local de tu computadora:
RetrofitClient.ktprivate const val BASE_URL = "http://192.168.1.100:8080" -
Ejecutar App
Selecciona tu dispositivo del menú desplegable de dispositivos y haz clic en Run.
Verificar Instalación
Después de ejecutar la app, deberías ver:
- Pantalla de Onboarding con la marca iMirly
- Botones de Login/Registro
- Sin errores de red en Logcat
Revisar Logcat por Errores
Abre View → Tool Windows → Logcat y filtra por:
package:com.imirly.app
Busca errores de RetrofitClient o ViewModel.
Solución de Problemas
Build falla: 'minSdk version should not be declared'
Asegúrate de usar la versión de Android Studio Ladybug o más reciente. Limpia y reconstruye el proyecto.
Error de red: Unable to resolve host
Verifica que el backend esté ejecutándose y que la BASE_URL sea correcta. Para emulador usa 10.0.2.2, para dispositivo físico usa la IP de tu red local.
Retrofit: Unable to create call adapter
Verifica que tienes la dependencia de Gson converter correctamente añadida en build.gradle.kts.
JWT token no persiste
Asegúrate de que TokenManager esté correctamente implementado con SharedPreferences o DataStore.