Migrar de Gson a Moshi en 2 minutos

gson moshi

Episodio 21 – Migrar de Gson a Moshi en 2 minutos

Primero de nada comentarte que Gson est谩 en desuso y Moshi en pleno auge. Esto por s铆 solo no es un motivo para hacer la migraci贸n. Por lo tanto, depende del proyecto en particular que quieras realizarla.

Lo que s铆 que puede ser un aliciente mayor para que te decidas, es que la biblioteca de Google usa Reflection. Esto tiene penalizaci贸n en tiempo de carga en ejecuci贸n para el usuario. La de Square, no tiene esta pega.

Moshi tiene mejor performance, es m谩s r谩pido y usa menos memoria.

Migrar de Gson a Moshi en 2 minutos

Para llevar a cabo esta migraci贸n, tienes que llevar a cabo estos…

5 pasos

Paso 1

A帽ade las dependencias en el build.gradle de tu m贸dulo de aplicaci贸n. Normalmente :app.

implementation("com.squareup.moshi:moshi:1.12.0") kapt("com.squareup.moshi:moshi-kotlin-codegen:1.12.0") implementation("com.squareup.retrofit2:converter-moshi:2.9.0")

Paso 2

Si tienes anotaciones @SerializedName, sustit煤yelas por @Json.

data class Foo(     @SerializedName("foo_x")     val fooX: String )
data class Foo(     @Json(name = "foo_x")     val fooX: String )

Paso 3

A帽ade la anotaci贸n @JsonClass(generateAdapter = true) a todos las data classes que vayas a usar para parsear info proveniente de JSONs. Tanto para hacer requests, como recibir responses.

@JsonClass(generateAdapter = true) data class Foo(     @Json(name = "foo_x")     val fooX: String )

Paso 4

Cambia las instancias de Gson a Moshi.

GsonBuilder().create()
Moshi.Builder().build()

Paso 5

Para finalizar, cambia el converter que uses en Retrofit de Gson a Moshi.

addConverterFactory(GsonConverterFactory.create())
addConverterFactory(MoshiConverterFactory.create())

隆Y ya lo tienes! 馃槑

Como disclaimer, comentarte que si quieres hacer cosas un poquit铆n m谩s elaboradas, tendr谩s que crearte tus propios adapters. El scope de esta entrada es transmitirte las partes b谩sicas de esta migraci贸n.

Quiz谩 te interese que te revisen el c贸digo de tu proyecto Android. O a lo mejor quieres tener feedback de una comunidad de gente comprometida.

Publicado: 2020-11-09 Actualizado: 2024-05-19