Un peu d’histoire Apache HTTP Client • Android 1.0 • API très vieille • Buggé • Peu évolué HttpUrlConnection • Android 1.0 • TRÈS buggé ( ≠ bugs sur ≠ versions)
OkHttp Introduction en mai 2013 par Square Flexible (non dépendant de la plateforme) API Moderne et utilisant les dernières technos Mise en place d’une compatibilité avec les API legacy Intégration OkHttp à AOSP avec Android 4.4
Okio Est le socle des streams de OkHttp Complémentaire et compatible avec les packages java.io et java.nio Seulement des bytes ! 2 types de données : ByteString et Buffer 2 types de stream : Source et Sink API simple et efficace (md5, sha256, base64, utf8, hex, …) {KILLER FEATURES}
OkHttp, c’est moderne Support de HTTP/2 et SPDY Utilisation transparente de GZIP Cache pour les réponses très efficace Capacité à récupérer silencieusement des problèmes de connections Consommation des adresses alternatives (data center) Implémentation moderne pour le TLS (SNI et ALPN)
OkHttp, c’est testable Introduction de MockWebServer Mockito like dans le fonctionnement Tout est testable (Header, Code, Caching, Réponse, …) Sous forme de queue
OkHttp, c’est extensible Retrofit Créé en 2010 par Bob Lee (Lead core Android, CTO Square, créateur Guice, Guava, Dagger, Lead JSR 330) Rendu public en mai 2013 Maintenu par les mêmes personnes qu’OkHttp “Un client REST type-safe”
Retrofit - Bilan Déclaratif Type-safe Encapsulation Agnostique Suppression boilerplate Facilement testable Riche en fonctionnalités Moderne grâce à OkHttp {KILLER FEATURES}