Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matanza
Android
Librerías
Agenda
Picasso
GSON
Retrofit
Picasso
Picasso
Si bien haremos el manejo de imágenes y requests HTTP con librerías, primero
es necesario comprender los problemas que estas resuelven.
Threads en Android
Background
AsyncTask
implementation 'com.squareup.picasso:picasso:2.71828'
Features interesantes:
● Formato JSON.
● GSON facilita la tarea de serializar y deserializar objetos en este formato.
● Para ello es necesario crear una clase Kotlin que se mapee con el modelo
que el JSON defina. Ejemplo: Artículo
GSON
implementation 'com.squareup.retrofit2:converter-gson:2.6.2'
@Throws(JsonParseException::class)
fun deserialize(json: JsonElement,
typeOfT: Type,
context: JsonDeserializationContext
): EstadoContacto {
return EstadoContacto.desde(json.asInt)
}
}
Retrofit
Retrofit
● Librería para realizar HTTP requests de forma segura, sin tener que lidiar
con AsyncTasks, complejidad de threading, parseo de entidades en el
main-thread y casos de error.
● Internamente maneja GSON y adaptadores de otros formatos (por
ejemplo, XML).
● Su simpleza radica en que permite mapear una API completa a una
interface Kotlin, que luego se instancia para utilizarse como métodos de
una clase común y corriente.
Retrofit
● Importar la librería
implementation 'com.squareup.retrofit2:retrofit:2.6.2'
Retrofit
@GET("items/{itemId}")
@GET("sites/MLA/search")
.addConverterFactory(GsonConverterFactory.create( Gson() ))
.baseUrl("https://api.mercadolibre.com/")
.build();
return retrofit.create(MercadoLibreAPI::class.java)
}
Retrofit: uso
class API {
getAPI().getArticle(id).enqueue(callback)
}
Retrofit: ejemplo de uso
API().getArticle("MLA644287324", object:Callback<Article> {
...
if (response.isSuccessful) {
}
})
¿Preguntas?
Práctica
Fin