Estoy decidiendo si usar Moshi por cuadrado o Gson para serializar y deserializar los datos del modelo.
Una cosa que siempre no me gustó de Gson es que creo que usa la reflexión, que puede ser lenta en Android. ¿Moshi también usa la reflexión?
¿Cuáles son algunos de los pros y contras de moshi vs Gson?
Los veo similares. Tomemos, por ejemplo, esta declaración que crea unatypeAdapter:
class CardAdapter {
@ToJson String toJson(Card card) {
return card.rank + card.suit.name().substring(0, 1);
}
@FromJson Card fromJson(String card) {
if (card.length() != 2) throw new JsonDataException("Unknown card: " + card);
char rank = card.charAt(0);
switch (card.charAt(1)) {
case 'C': return new Card(rank, Suit.CLUBS);
case 'D': return new Card(rank, Suit.DIAMONDS);
case 'H': return new Card(rank, Suit.HEARTS);
case 'S': return new Card(rank, Suit.SPADES);
default: throw new JsonDataException("unknown suit: " + card);
}
}
}
y para usarlo, regístrelo como en gson:
Moshi moshi = new Moshi.Builder()
.add(new CardAdapter())
.build();
Supongo que las ventajas serían la anotación que se usa en typeAdapter. Estoy buscando averiguar si hay alguna mejora en el rendimiento si cambio a Moshi.