[JAVA] Résumé des bibliothèques qui semblent souvent utilisées dans le développement récent d'Android (2019/11)

J'ai commencé à développer sérieusement Android l'année dernière, mais il m'a fallu beaucoup de temps pour connaître les bibliothèques utilisées pour inspirer le développement de produits. Cet article résume les bibliothèques les plus populaires pour ceux qui débutent tout juste avec le développement Android.

«Communément utilisé» est complètement subjectif.

AAC

Abréviation pour Android Architecture Components, l'un des composants d'Android Jetpack

https://developer.android.com/jetpack?hl=JA

Voici quelques-unes des bibliothèques les plus fréquemment utilisées incluses dans AAC.

Data Binding Library

https://developer.android.com/topic/libraries/data-binding/?hl=JA

Une bibliothèque qui est littéralement utilisée pour la liaison de données. Je l'utilise souvent pour le développement avec MVVM. C'est très pratique car vous pouvez lier des objets à XML et une liaison de données bidirectionnelle avec LiveData, qui sera décrite plus tard.

Lifecycle

https://developer.android.com/topic/libraries/architecture/lifecycle?hl=JA

Gérez le cycle de vie des activités et des fragments. LifecycleObserver est très pratique car vous pouvez surveiller les événements du cycle de vie d'Activité et de Fragment dans d'autres classes.

LiveData

https://developer.android.com/topic/libraries/architecture/livedata?hl=JA

LiveData peut être lié au cycle de vie pour vous informer des changements de valeur. J'ai remplacé la partie qui utilisait Rx Subject pour notifier entre les couches avec LiveData. Il est également utile pour la liaison de données bidirectionnelle.

Room

https://developer.android.com/topic/libraries/architecture/room?hl=JA

Room fournit une interface qui vous permet d'utiliser SQLite en douceur. Je ne peux rien dire parce que je ne l'ai pas utilisé si durement.

ViewModel

https://developer.android.com/topic/libraries/architecture/viewmodel?hl=JA

ViewModel peut gérer les données liées à l'interface utilisateur en relation avec le cycle de vie de l'activité et du fragment. Je pense que le contexte est un peu différent du soi-disant MVVM ViewModel, mais il est très utile pour le développement d'applications avec MVVM. Je l'utilise beaucoup.

Navigation

https://developer.android.com/topic/libraries/architecture/navigation.html?hl=JA

Les transitions de fragments peuvent être gérées en XML. En introduisant un plug-in appelé safeArgs, c'est pratique car vous pouvez facilement définir le passage des données entre les fragments.

Paging

https://developer.android.com/topic/libraries/architecture/paging/?hl=JA

Vous pouvez facilement (?) Implémenter la pagination à défilement infini habituelle.

Autre

Communication autour

Je vois souvent des configurations comme ʻokhttp + retrofit + RxJava (RxKotlin) + RxAndroid + moshi (gson) `. Récemment, je vois souvent des traitements asynchrones utilisant la coroutine.

Client HTTP

okhttp

https://github.com/square/okhttp

C'est le de facto. Je ne peux pas vivre sans ça.

retrofit2

https://github.com/square/retrofit

Une bibliothèque qui peut bien gérer REST. Souvent utilisé avec okhttp.

Analyseur JSON

Il semble que Jackson a été utilisé il y a longtemps?

gson

https://github.com/google/gson

Fabriqué par google. Je le vois souvent. J'utilise Deserializer pour des exigences complexes telles que lorsque je dois l'écrire moi-même.

moshi

https://github.com/square/moshi

Fait de carré. Récemment, je l'utilise exclusivement.

image

glide

https://github.com/bumptech/glide

Il est indispensable pour afficher des images. Je le vois souvent.

picasso

https://github.com/square/picasso

Je vois souvent celui-ci aussi. Il semble que la glisse soit plus utilisée physiquement.

Rx

RxJava

https://github.com/ReactiveX/RxJava

Vous pouvez écrire du code pour le paradigme de la programmation réactive. Le coût d'apprentissage est élevé, mais il est très pratique de s'en souvenir. Les gens ont tendance à le considérer comme une bibliothèque pour le traitement asynchrone. Récemment, je sens la tendance à le remplacer par d'autres technologies, mais il est toujours utilisé à divers endroits, et personnellement, c'est assez douloureux sans cela.

RxKotlin

https://github.com/ReactiveX/RxKotlin

Une extension Kotlin pour RxJava. Si vous utilisez Rx avec Kotlin, introduisons-le.

RxAndroid

https://github.com/ReactiveX/RxAndroid

Il est indispensable pour la communication asynchrone avec RxJava dans le développement Android.

RecyclerView

groupie

https://github.com/lisawray/groupie

C'est trop populaire ces jours-ci et j'ai peur. Mais c'est certainement pratique.

epoxy

https://github.com/airbnb/epoxy

Fabriqué par airbnb. Vous pouvez facilement créer un RecyclerView complexe. Il est facile à utiliser avec la liaison de données. Bonne compatibilité avec d'autres bibliothèques airbnb telles que MvRx.

Débogage lié

Alternative au journal

timber

https://github.com/JakeWharton/timber

Un wrapper pour android.util.Log. Personne ne me le dit, mais tout le monde l'utilise (subjectif). Vous pouvez changer de fonction en fonction du type de construction.

Gestion de la mémoire

leakcanary

https://github.com/square/leakcanary

Fabriqué en carré fiable et éprouvé. Détecte et vous avertit des fuites de mémoire dans votre application. Je sens qu'il est utilisé comme une évidence.

Autour du journal de communication

stetho

https://github.com/facebook/stetho

Si vous mordez dans okhttp, vous pouvez voir les journaux de communication, etc. dans Chrome. Très pratique.

flipper

https://github.com/facebook/flipper

Fabriqué par Facebook. Il peut également être utilisé sur des plates-formes autres qu'Android. Je n'ai jamais vu personne l'utiliser. Est-ce que c'est bon avec le stétho?

Autre

Hyperion-Android

https://github.com/willowtreeapps/Hyperion-Android

Vous pouvez faire différentes choses. Pour plus de détails, consultez cet article.

DI

Abréviation de Dependency Injection. C'est pris pour acquis ces jours-ci. Référence

dagger2

https://github.com/google/dagger

Fabriqué par google de square. Il est utilisé de manière insensée. Je pense que le coût d'apprentissage est assez élevé.

koin

https://github.com/InsertKoinIO/koin

Bibliothèque DI pour l'implémentation de kotlin. Je ressens l'élan à mesure que la reconnaissance du nom augmente. Je l'aime parce que c'est plus facile à comprendre qu'un poignard.

Autour du test

mockito

https://github.com/mockito/mockito

Un cadre moqueur. Il y a un sentiment de facto.

mockk

https://github.com/mockk/mockk

Une bibliothèque moqueuse pour l'implémentation de kotlin. Je suis venu le voir récemment.

truth

https://github.com/google/truth

Une bibliothèque d'assertions créée par Google. Il semble qu'il soit également adopté dans le document de test Android X.

Autre

ThreeTenABP

https://github.com/JakeWharton/ThreeTenABP

Une bibliothèque qui facilite la gestion des dates sur Android. Personne ne me le dit, mais c'est très pratique et beaucoup de gens l'utilisent.

Impressions

--Je ressens fortement le flux de Java-> Kotlin (comme koin) ――Dans le développement récent d'Android, il est nécessaire d'apprendre des choses avec des coûts d'apprentissage élevés tels que le poignard et le Rx, et je pense que le seuil pour commencer le développement est élevé. ――S'il vous plaît laissez-nous savoir si vous avez une bibliothèque comme «Tout le monde l'utilise!

Recommended Posts

Résumé des bibliothèques qui semblent souvent utilisées dans le développement récent d'Android (2019/11)
Résumé de l'ORM "uroboroSQL" qui peut être utilisé dans le Java d'entreprise
[Android] Je souhaite créer un ViewPager pouvant être utilisé pour les didacticiels
[Github] Résumé des commandes fréquemment utilisées pendant le développement
3 façons d'importer des bibliothèques dans Android Studio
CORBA semble avoir été supprimé dans Java SE 11. .. ..
Résumer le cycle de vie des objets Java à prendre en compte dans le développement Android
Il ne semble pas y avoir d'autre-si en java
Résumé du site qui sera utile dans Minecraft Modding 1.12.2
Résumé personnel des types souvent utilisés dans JUnit 4
Touches de raccourci pratiques pour Eclipse
Résumé du lien de développement Android
Un résumé concis des API de date / heure Java 8 susceptibles d'être utilisées fréquemment
Le cas où @Autowired n'a pas pu être utilisé dans JUnit5
Base de données Firebase-Realtime sur Android pouvant être utilisée avec copie
Introduction à Rakefile qui peut être effectuée en 10 minutes environ
Comment implémenter l'affichage sur une seule ligne de TextView dans le développement Android
Nouvelles fonctionnalités de Java 14 pouvant être utilisées pour écrire du code
Gemme souvent utilisée dans les rails
Résumé des problèmes auxquels je n'ai pas pu me connecter à Firebase
Notez que les propriétés système, y compris JAXBContext, ne peuvent pas être utilisées dans Java11
SwiftUI View qui peut être utilisé en combinaison avec d'autres frameworks
Il semble que Java 14 ajoutera des fonctions de type classe de données
Correctifs récents de la bibliothèque Java FF4J qui fournit des fonctionnalités de basculement