
Configurar Retrofit en un proyecto Android con Koin
1
2
Configura Koin
Crea un módulo donde se configurará Retrofit para realizar las solicitudes HTTP.
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.create
val retrofitModule = module {
// API retrofit
single {
Retrofit.Builder()
// Se configura la URL del servicio REST
// La IP 10.0.2.2 hace referencia la ip del host del emulador
.baseUrl("http://10.0.2.2:8080"")
// Se configura la serialización con JSON
.addConverterFactory(GsonConverterFactory.create())
.build()
}
}
3
Actualiza la clase Application para que use el módulo de Retrofit
import android.app.Application
import org.koin.android.ext.koin.androidContext
import org.koin.core.context.startKoin
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
startKoin() {
androidContext(this@MyApp)
modules(
appModule,
retrofitModule
)
}
}
}
4
Configura AndroidManifest.xml
Por defecto, Android no permite las comunicaciones no encriptadas. Para poder comunicarnos con la API REST tenemos dos opciones:
Habilitar las comunicaciones no encritpadas, añade la entrada usesCleartextTraffic
<application android:name=".MyApp" android:usesCleartextTraffic="true" android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" .... >
Además, hay que añadir el siguiente permiso antes de application
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:name=".MyApp"
...
>
Última actualización
¿Te fue útil?