Devrais-je mettre en cache les objets générés par Retrofit ou est-il recommandé de créer à la volée?Est-ce une bonne pratique de conserver les instances Retrofit en mémoire?
Je commence une migration progressive d'un ancien framework de réseau à Retrofit qui a démarré avec une logique très basique pour mettre en cache les instances créées par Retrofit. Cela est dû à notre architecture qui utilisera différents critères d'évaluation dans différentes activités/Fragments, cette méthode sera appelée comme la visite d'utilisateur différentes parties de l'application:
static public <T> T getApi(Class<T> apiInterface) {
validateInitialization("getApi()");
if (!mApis.containsKey(apiInterface.getSimpleName())) {
mApis.put(apiInterface.getSimpleName(), retrofit().create(apiInterface));
}
return (T) mApis.get(apiInterface.getSimpleName());
}
Cependant, comme nous continuons de migrer nos schémas à utiliser Rénovation, cette carte augmente en taille (actuellement environ 20 interfaces/API différentes peuvent être créées) et contient parfois des instances qui ne sont plus utilisées.
singleton avec dagger2 et injecter si nécessaire. Est-ce que https://github.com/googlesamples/android-architecture-components/blob/master/GithubBrowserSample/app/src/main/java/com/android/example/github/di/AppModule.java aide? – Raghunandan