10 bibliothèques que tous les développeurs Android devraient connaître

10 bibliothèques que tous les développeurs Android devraient connaître


En 2015, nous avons déjà publié un article sur les cinq principales bibliothèques que nous utilisions à l'époque. Cependant, la plate-forme Android s'est considérablement développée depuis lors. Comme vous le savez, dans un domaine en développement rapide comme le développement de logiciels, tout change et se développe à une vitesse fulgurante. C'est pourquoi nous avons décidé qu'il était temps de mettre à jour la liste des bibliothèques Android les plus efficaces.


Sans plus tarder, passons directement à notre liste. Tout d'abord, nous examinerons l'une des plus anciennes, mais à mon avis, l'une des bibliothèques Android les plus efficaces.


1. Rénovation


Retrofit est un client HTTP de type sécurisé qui vous permet de présenter votre API REST sous forme d'interface. Vous pourrez gérer les corps, les en-têtes, les paramètres des requêtes API et bien d'autres à l'aide d'annotations, ce qui rendra ce processus simple et compréhensible. Retrofit vous permet également d'effectuer des appels d'API synchrones et asynchrones.


interface ApiService { @GET("movie/{id}") fun getMovieDetails(@Path("id") id: String) : Call<MovieDetails> } 

De plus, Retrofit fournit un module Rx séparé. Si vous utilisez Rx, ce module retournera Observable lors de l'accès à l'API, ce qui vous permettra de l'associer au reste de votre application. Ce ne sont là que quelques-unes des nombreuses raisons pour lesquelles nous aimons et utilisons toujours Retrofit.


2. Moshi


Moshi est une bibliothèque pour convertir JSON en objets Java et Kotlin. Beaucoup perçoivent Moshi comme GSON 3.0. Cependant, cette bibliothèque est supérieure à GSON à plusieurs égards: elle est plus rapide , elle prend en charge Kotlin, elle se met à jour, génère des exceptions prévisibles et n'utilise pas l'adaptateur DateTime corrompu par défaut. De plus, en utilisant Moshi, le processus de conversion de JSON en objets Java (et vice versa) devient aussi simple et direct que possible.


 val moshi = Moshi.Builder().build() val jsonAdapter = moshi.adapter(Model::class.java) /* JSON to Model */ val model = jsonAdapter.fromJson(json) /* Model to JSON */ val json = jsonAdapter.toJson(model) 

Nous aimons également Moshi pour prendre en charge l'API JSON. L'API JSON est une spécification de construction d'API, et la plupart des API avec lesquelles nous travaillons sont écrites à l'aide de cette spécification. L'API Moshi JSON nous facilite la vie car l'API JSON est convertie en objets Java significatifs. Retrofit soutient toujours Moshi, et ensemble, ils fonctionnent très bien.


3. Mandrin


Chuck est un inspecteur HTTP pour Android qui vous permet de fouiller dans l'historique HTTP de votre application sur votre téléphone mobile. Le journal HTTP s'affiche sous forme de notification, qui peut être étendue pour se connecter à Chuck et voir des informations détaillées. L'utilisation de Chuck plaira incroyablement au service d'assurance qualité, car ils peuvent voir où se situe le problème: côté Android ou côté serveur. Cette bibliothèque peut parfois vous aider plus que logcat. En effet, votre historique HTTP sera préservé même si l'application se ferme de manière inattendue, tandis que logcat s'efface de temps en temps après un redémarrage.


Chuck


4. Glisse


Vous savez très probablement que le téléchargement d'images sur Android est très difficile. Même le redimensionnement d'une image peut être un désastre avec une OutOfMemoryException . Glide est une bibliothèque de téléchargement d'images qui fournit une API de qualité qui vous permet de modifier l'image à votre guise.


 GlideApp.with(context) .load(url) .centerCrop() .placeholder(R.drawable.ic_placeholder) .into(imageView) 

La bibliothèque vous permet de télécharger facilement une image distante sur ImageView, de définir des images stables, de mettre en cache et de redimensionner des images, etc. Essayez simplement de faire tout cela sans l'aide de Glide, et vous comprendrez immédiatement pourquoi il figure sur notre liste de bibliothèques de clés. Glide prend même en charge certaines modifications par défaut courantes, telles que la création d'une image circulaire.


5. ThreeTen


ThreeTen est une bibliothèque de date et d'heure pour Android. Il s'agit d'une version portée de JSR-310 qui a été incluse dans Java 8 en tant que package java.time.* Standard. Nous adorons cette bibliothèque car l'API Android Calendar standard transforme le travail en cauchemar.


 /* Current DateTime */ LocalDateTime.now() /* String to DateTime */ val localDateTimeString = "2011-12-03T10:15:30" val localDateTime = LocalDateTime.parse(localDateTimeString) 

ThreeTen est de loin inférieur à JodaTime en termes de nombre de méthodes et de taille binaire. L'API de cette bibliothèque est également plus petite que l'API JodaTime. Si vous utilisez déjà JodaTime, vous ne devriez probablement pas passer à ThreeTen. Cependant, je recommande fortement d'essayer ThreeTen si vous commencez tout juste à travailler sur un nouveau projet.


6. Bois


Timber est une bibliothèque de journalisation puissante mais simple construite au-dessus de la classe Android Log . Avec son aide, vous pouvez facilement activer et désactiver l'affichage des journaux. La bibliothèque offre également un excellent support pour la journalisation des chaînes formatées et des exceptions. Grâce à ces avantages, Timber est également inclus dans notre liste de bibliothèques clés que nous utilisons sur presque tous les projets Android.


 /* Log error */ Timber.e("Error happened") /* Log warning with params */ Timber.w("Your variable value is %s", variable) /* Log exception */ try { ... } catch (e: Exception) { Timber.e(e) } 

7. Chambre


Room est l'ORM officiel pour Android, et ce statut a plusieurs raisons. Cette bibliothèque possède une API conviviale similaire à Retrofit. Room s'appuie également fortement sur les annotations et la syntaxe SQL standard.


 @Dao interface MovieDao { @Query("SELECT details FROM movies WHERE id = :id") fun getMovieDetails(id: String): MovieDetails } 

De plus, Room inclut le support Rx et LiveData par LiveData , vous pouvez donc l'utiliser comme vous le souhaitez. Le principal avantage de Room sur divers ORM est la simplicité. De nombreux ORM ont une API beaucoup plus complexe, pour laquelle vous devrez étudier attentivement toute la documentation. Grâce à la syntaxe SQL standard, Room est extrêmement compréhensible, ce qui vous permet de démarrer immédiatement sans passer beaucoup de temps à lire la documentation.


8. RxJava


RxJava est une implémentation Java de l'API ReactiveX qui vous permet de lier des tâches et des événements asynchrones en séquences observables . Les utilisateurs s'attendent à ce que les applications modernes affichent des données en temps réel. En d'autres termes, ils souhaitent que les informations soient mises à jour automatiquement. C'est dans cet aspect que RxJava est utile.


Lors de la réception de données en temps réel, il devient extrêmement difficile de combiner plusieurs demandes d'API, de basculer les flux et de gérer les erreurs. C'est ici que RxJava se montre parfaitement, et c'est pour cette raison que nous avons commencé à utiliser cette bibliothèque. Je suis d'accord que RxJava peut sembler déroutant et difficile à apprendre, mais cette bibliothèque mérite certainement votre temps. Même après le passage à Kotlin, nous avons continué à utiliser RxJava en raison de ses avantages. Lorsqu'il est combiné avec l'API Kotlin, il s'améliore encore grâce à des fonctions d'extension supplémentaires.


 Single.zip( /* Execute first API call and retry twice if it fails */ apiService.getMovieActors(id).retry(2), /* Execute second API call and retry twice if it fails */ apiService.getMovieDetails(id).retry(2), /* Receive successful results and merge them into single model */ BiFunction<List<Actor>, MovieDetails, Movie> { actors, details -> Movie(details, actors) } ) /* Execute API calls on IO thread */ .subscribeOn(Schedulers.io()) /* Receive results on MainThread */ .observeOn(AndroidSchedulers.mainThread()) .subscribeBy( onError = { /* Handle error */ }, onSuccess = { /* Handle full movie data */ } ) 

Essayez de faire quelque chose de similaire à l'extrait ci-dessus à l'aide de Java simple. Allez.


9. Android KTX


Android KTX est un ensemble d'extensions de wrapper pour l'API Android de Kotlin qui le rendent plus convivial. L'objectif principal de cette bibliothèque est de rendre l'API Android plus pratique à utiliser. Il contient de nombreuses méthodes et de superbes nouvelles fonctionnalités Kotlin, telles que les paramètres nommés, les fonctions lambda et les paramètres par défaut.


 /* Display View */ view.isVisible = true /* Apply padding to all sides */ view.setPadding(padding) /* Update padding on any side */ view.updatePadding(left = newPadding, right = newPadding) /* Quick Toast */ toast("Display test toast") /* New way to create bundle */ bundleOf { "key1" to item1 "key2" to item2 } /* Better way to use SharedPreferences */ sharedPreferences.edit { putString("key1", "value1") putString("key2", "value2") } 

Android KTX se caractérise par la présence de nombreuses fonctions d'extension, et la seule façon de les découvrir est de plonger dans le code de la bibliothèque pour voir comment les fonctions ont amélioré l'API Android. Android KTX simplifie la façon dont vous utilisez l'API Android, et pour cette raison, cette bibliothèque devrait être le fondement de chaque application Android écrite en Kotlin.


10. Dague


Notre liste des 10 meilleures bibliothèques ne serait pas complète sans Dagger. Cette bibliothèque est un framework d'injection de dépendances complètement statique au moment de la compilation. Dagger, comme RxJava, est vraiment difficile à comprendre (j'ai dû passer un peu de temps à comprendre leur exemple CoffeeMaker), mais il mérite vraiment du temps et des efforts.


L'injection de dépendance est un moyen d'ajouter de petits composants à d'autres modèles avec un minimum d'effort. Par exemple, si vous avez un modèle de voiture, vous pouvez y ajouter des pneus et remplacer facilement l'implémentation de pneus à l'avenir - sans changer une seule ligne de code dans le modèle de voiture.


Lorsque vous développez des applications plus complexes, vous ne voudrez certainement pas effectuer vous-même des tâches d'injection de dépendance, car la quantité de code augmente rapidement et devient trop compliquée à prendre en charge. Dagger vous évite ce problème car il crée un graphique d'injection de dépendances au moment de la compilation via le traitement des annotations.


L'année dernière, Google a ajouté un module Android Dagger distinct qui vous permet d'écrire moins de code passe-partout et simplifie l'injection de dépendance.


Conclusion


La voici donc: notre liste des 10 meilleures bibliothèques Android en 2018. Dix excellentes bibliothèques qui rendront le processus de développement Android plus agréable pour quiconque décide de les utiliser. Vous voulez plus de bibliothèques? Il se trouve que dans notre entreprise, nous avons développé plusieurs de nos propres bibliothèques Android. Vous pouvez vous familiariser avec eux:


  • MjolnirRecyclerView - ajoute la prise en charge des composants d'en-tête, de pied de page, de vue vide et DiffUtils à RecyclerView;
  • Goldfinger - simplifie la mise en œuvre de l'authentification par empreinte digitale;
  • DBInspector - affiche et donne accès aux bases de données d'application;
  • Complexify est un moyen simple de vérifier la qualité du mot de passe d'un utilisateur;
  • Prince of Versions - Gère les mises à jour de l'application dans l'application.

Source: https://habr.com/ru/post/fr425397/


All Articles