Configuración de dependencias en Android Studio

Clase 3 de 20Curso de Patrones MVVM en Android

Resumen

Para comenzar a desarrollar una aplicación en Android, es crucial configurar adecuadamente las librerías y dependencias que utilizarás a lo largo de tu proyecto. Este paso no solo es esencial para asegurar que todas las funciones sean ejecutables, sino también para mantener el proyecto organizado y evitar errores inesperados. En esta guía, repasaremos cómo puedes realizar esta configuración inicial en Android Studio.

¿Qué son las librerías y dependencias en un proyecto Android?

En el desarrollo de aplicaciones Android, las librerías son colecciones de código preescrito que puedes incluir en tu proyecto para realizar tareas específicas más fácilmente, como la carga de imágenes o la persistencia de datos. Por otro lado, las dependencias son vías mediante las cuales incluyes estas librerías en tu proyecto. Aquí están algunas de las librerías populares que puedes necesitar:

  • Coil: librería para carga de imágenes.
  • Android Lifecycle: necesaria para manejar view models.
  • Navigation Compose: utilizada para la navegación en Compose.
  • Hilt: para inyección de dependencias.
  • Moshi, Retrofit y OKHTTP: librerías para llamadas de red y serialización de JSON.
  • Room y KSP: para persistencia de datos.

¿Cómo agregar librerías a tu proyecto?

Para comenzar, debes localizar el archivo libs.version.toml en la carpeta Gradle de tu proyecto. En este archivo, definirás las versiones de las librerías que vas a utilizar:

[versions]
coil = "1.2.2"
lifecycle = "2.3.1"
navigationCompose = "2.4.0-alpha07"
hilt = "2.35"
moshi = "1.12.0"
retrofit = "2.9.0"
okhttp = "4.9.1"
room = "2.3.0"
ksp = "1.5.10"

Posteriormente, agrega las librerías dentro de tu build.gradle.kts del proyecto raíz y de la aplicación:

Plugins en el archivo raíz:

plugins {
    id("com.google.dagger.hilt.android") version "2.35" apply false
    id("com.google.devtools.ksp") version "1.5.10" apply false
    id("androidx.room") version "2.3.0" apply false
}

Integración de librerías en la aplicación:

plugins {
    id("com.google.dagger.hilt.android")
    id("com.google.devtools.ksp")
    id("androidx.room")
}

dependencies {
    implementation("io.coil-kt:coil:${libs.versions.coil.get()}")
    implementation("androidx.lifecycle:lifecycle-viewmodel-compose:${libs.versions.lifecycle.get()}")
    implementation("androidx.navigation:navigation-compose:${libs.versions.navigationCompose.get()}")
    implementation("com.squareup.retrofit2:retrofit:${libs.versions.retrofit.get()}")
    implementation("com.squareup.okhttp3:okhttp:${libs.versions.okhttp.get()}")
    implementation("com.squareup.moshi:moshi-kotlin:${libs.versions.moshi.get()}")
    implementation("androidx.room:room-runtime:${libs.versions.room.get()}")
    ksp("androidx.room:room-compiler:${libs.versions.room.get()}")
}

¿Cómo sincronizar el proyecto con los archivos de Gradle?

Una vez hayas configurado tus librerías y dependencias, es necesario sincronizar tu proyecto para asegurarte de que todo está correctamente configurado. Haz esto mediante la opción Sync Project with Gradle Files en Android Studio. Esta acción actualizará las configuraciones de tu proyecto para reflejar los cambios recientes que has realizado en los archivos de configuración de Gradle.

¿Qué hacer frente a advertencias de versión de Android?

Android Studio puede mostrar advertencias si tu proyecto no está configurado para apuntar a la última versión disponible de Android. Para resolver este problema y evitar potenciales conflictos, actualiza tu compileSdkVersion y targetSdkVersion a la versión recomendada.

android {
    compileSdkVersion(35)
    defaultConfig {
        targetSdkVersion(35)
    }
}

Esta guía te proporcionará una base sólida para comenzar la configuración de las librerías en Android Studio. A medida que avanza el desarrollo de tu proyecto, puedes añadir más librerías según las necesidades específicas de tu aplicación. ¡Ahora estás listo para comenzar a construir funcionalidades con estas herramientas esenciales!