
Im Jahr 2015 haben wir bereits einen Artikel über die fünf wichtigsten Bibliotheken veröffentlicht, die wir zu diesem Zeitpunkt verwendet haben. Die Android-Plattform ist jedoch seitdem erheblich gewachsen. Wie Sie wissen, ändert sich in einem sich so schnell entwickelnden Bereich wie der Softwareentwicklung alles blitzschnell. Aus diesem Grund haben wir beschlossen, die Liste der effektivsten Android-Bibliotheken zu aktualisieren.
Gehen wir ohne weiteres direkt zu unserer Liste. Zunächst werden wir uns eine der ältesten, aber meiner Meinung nach eine der effektivsten Android-Bibliotheken ansehen.
Retrofit ist ein typsicherer HTTP-Client, mit dem Sie Ihre REST-API als Schnittstelle präsentieren können. Mithilfe von Anmerkungen können Sie Körper, Header, Parameter von API-Anforderungen und viele andere verwalten, wodurch dieser Prozess einfach und verständlich wird. Mit Retrofit können Sie auch synchrone und asynchrone API-Aufrufe durchführen.
interface ApiService { @GET("movie/{id}") fun getMovieDetails(@Path("id") id: String) : Call<MovieDetails> }
Darüber hinaus bietet Retrofit ein separates Rx-Modul. Wenn Sie Rx verwenden, gibt dieses Modul beim Zugriff auf die API Observable zurück, sodass Sie es dem Rest Ihrer Anwendung zuordnen können. Dies sind nur einige der vielen Gründe, warum wir Retrofit immer noch lieben und verwenden.
Moshi ist eine Bibliothek zum Konvertieren von JSON in Java- und Kotlin-Objekte. Viele nehmen Moshi als GSON 3.0 wahr. Diese Bibliothek ist GSON jedoch in mehreren Aspekten überlegen: Sie ist schneller , unterstützt Kotlin, aktualisiert, generiert vorhersehbare Ausnahmen und verwendet standardmäßig nicht den beschädigten DateTime-Adapter. Darüber hinaus wird mit Moshi das Konvertieren von JSON in Java-Objekte (und umgekehrt) so einfach und unkompliziert wie möglich.
val moshi = Moshi.Builder().build() val jsonAdapter = moshi.adapter(Model::class.java) /* JSON to Model */ val model = jsonAdapter.fromJson(json) val json = jsonAdapter.toJson(model)
Wir lieben Moshi auch für die Unterstützung der JSON-API. Die JSON-API ist eine API-Konstruktionsspezifikation, und viele der APIs, mit denen wir arbeiten, werden unter Verwendung dieser Spezifikation geschrieben. Die Moshi JSON-API erleichtert uns das Leben, da die JSON-API in aussagekräftige Java-Objekte konvertiert wird. Retrofit unterstützt Moshi immer noch und zusammen funktionieren sie einfach großartig.
Chuck ist ein HTTP-Inspektor für Android, mit dem Sie den HTTP-Verlauf Ihrer Anwendung auf Ihrem Mobiltelefon abrufen können. Das HTTP-Protokoll wird als Benachrichtigung angezeigt, die erweitert werden kann, um sich bei Chuck anzumelden und detaillierte Informationen anzuzeigen. Die Verwendung von Chuck wird der QS-Abteilung unglaublich gefallen, da sie sehen kann, wo sich das Problem befindet: auf der Android-Seite oder auf der Serverseite. Diese Bibliothek kann Ihnen manchmal mehr als nur logcat helfen. Dies liegt daran, dass Ihr HTTP-Verlauf auch dann erhalten bleibt, wenn die Anwendung unerwartet geschlossen wird, während sich logcat nach einem Neustart von Zeit zu Zeit selbst löscht.

Sie wissen höchstwahrscheinlich, dass das Herunterladen von Bildern auf Android sehr schwierig ist. Selbst die Größenänderung eines Bildes kann mit einer OutOfMemoryException
eine Katastrophe OutOfMemoryException
. Glide ist eine Bild-Upload-Bibliothek, die eine Qualitäts-API bietet, mit der Sie das Bild nach Ihren Wünschen ändern können.
GlideApp.with(context) .load(url) .centerCrop() .placeholder(R.drawable.ic_placeholder) .into(imageView)
Mit der Bibliothek können Sie ganz einfach ein Remote-Bild in ImageView hochladen, stabile Bilder definieren, Bilder zwischenspeichern und skalieren usw. Versuchen Sie einfach, dies alles ohne die Hilfe von Glide zu tun, und Sie werden sofort verstehen, warum es auf unserer Liste der Schlüsselbibliotheken steht. Glide unterstützt sogar einige häufig verwendete Standardänderungen, z. B. das Erstellen eines kreisförmigen Bildes.
ThreeTen ist eine Datums- und Zeitbibliothek für Android. Dies ist eine portierte Version von JSR-310, die in Java 8 als Standardpaket für java.time.*
. Wir lieben diese Bibliothek, weil die Standard-Android-Kalender-API die Arbeit zu einem Albtraum macht.
LocalDateTime.now() val localDateTimeString = "2011-12-03T10:15:30" val localDateTime = LocalDateTime.parse(localDateTimeString)
ThreeTen ist JodaTime in Bezug auf Anzahl der Methoden und Binärgröße weit unterlegen. Die API dieser Bibliothek ist auch kleiner als die JodaTime-API. Wenn Sie JodaTime bereits verwenden, sollten Sie wahrscheinlich kein Upgrade auf ThreeTen durchführen. Ich empfehle jedoch dringend, ThreeTen auszuprobieren, wenn Sie gerade mit der Arbeit an einem neuen Projekt beginnen.
Timber ist eine leistungsstarke, aber einfache Protokollierungsbibliothek, die auf der Android Log
Klasse Log
. Mit seiner Hilfe können Sie die Anzeige von Protokollen einfach ein- und ausschalten. Die Bibliothek bietet auch hervorragende Unterstützung für die Protokollierung formatierter Zeichenfolgen und Ausnahmen. Dank dieser Vorteile ist Timber auch in unserer Liste der Schlüsselbibliotheken enthalten, die wir für fast alle Android-Projekte verwenden.
Timber.e("Error happened") Timber.w("Your variable value is %s", variable) try { ... } catch (e: Exception) { Timber.e(e) }
Room ist das offizielle ORM für Android, und es gibt mehrere Gründe für diesen Status. Diese Bibliothek verfügt über eine benutzerfreundliche API, die Retrofit ähnelt. Room stützt sich auch stark auf Anmerkungen und Standard-SQL-Syntax.
@Dao interface MovieDao { @Query("SELECT details FROM movies WHERE id = :id") fun getMovieDetails(id: String): MovieDetails }
Darüber hinaus bietet Room LiveData
und LiveData
Unterstützung, sodass Sie es nach LiveData
können. Der Hauptvorteil von Room gegenüber verschiedenen ORMs ist seine Einfachheit. Viele ORMs verfügen über eine viel komplexere API, für deren Verwendung Sie die gesamte Dokumentation sorgfältig studieren müssen. Dank der Standard-SQL-Syntax ist Room äußerst verständlich, sodass Sie sofort loslegen können, ohne viel Zeit mit dem Lesen der Dokumentation zu verbringen.
RxJava ist eine Java-Implementierung der ReactiveX-API, mit der Sie asynchrone Aufgaben und Ereignisse in beobachtbare Sequenzen binden können. Benutzer erwarten, dass moderne Anwendungen Echtzeitdaten anzeigen. Mit anderen Worten, sie möchten, dass die Informationen automatisch aktualisiert werden. In dieser Hinsicht ist RxJava nützlich.
Beim Empfang von Echtzeitdaten wird es äußerst schwierig, mehrere API-Anforderungen zu kombinieren, Flows zu wechseln und Fehler zu behandeln. Hier demonstriert sich RxJava perfekt, und aus diesem Grund haben wir begonnen, diese Bibliothek zu verwenden. Ich bin damit einverstanden, dass RxJava verwirrend und schwer zu erlernen erscheint, aber diese Bibliothek verdient definitiv Ihre Zeit. Auch nach dem Wechsel zu Kotlin haben wir RxJava aufgrund seiner Vorteile weiter verwendet. In Kombination mit der Kotlin-API wird es dank zusätzlicher Erweiterungsfunktionen noch besser.
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 */ } )
Versuchen Sie, etwas Ähnliches wie das obige Snippet mit einfachem Java zu tun. Komm schon.
Android KTX ist eine Reihe von Wrapper-Erweiterungen für die Android-API in Kotlin, die sie benutzerfreundlicher machen. Das Hauptziel dieser Bibliothek ist es, die Verwendung der Android-API komfortabler zu gestalten. Es enthält viele Methoden und großartige neue Kotlin-Funktionen, wie z. B. benannte Parameter, Lambda-Funktionen und Standardparameter.
view.isVisible = true view.setPadding(padding) view.updatePadding(left = newPadding, right = newPadding) toast("Display test toast") bundleOf { "key1" to item1 "key2" to item2 } sharedPreferences.edit { putString("key1", "value1") putString("key2", "value2") }
Android KTX zeichnet sich durch das Vorhandensein vieler Erweiterungsfunktionen aus. Die einzige Möglichkeit, dies herauszufinden, besteht darin, in den Bibliothekscode einzutauchen, um zu sehen, wie die Funktionen die Android-API verbessert haben. Android KTX vereinfacht die Verwendung der Android-API. Aus diesem Grund sollte diese Bibliothek die Grundlage jeder in Kotlin geschriebenen Android-Anwendung sein.
Unsere Liste der Top 10 Bibliotheken wäre ohne Dagger nicht vollständig. Diese Bibliothek ist ein vollständig statisches Framework für die Abhängigkeitsinjektion zur Kompilierungszeit. Dolch ist wie RxJava wirklich schwer zu verstehen (ich musste einige Zeit aufwenden, um das Beispiel der Kaffeemaschine zu verstehen), aber es verdient definitiv die Zeit und Mühe.
Die Abhängigkeitsinjektion ist eine Möglichkeit, anderen Modellen mit minimalem Aufwand kleine Komponenten hinzuzufügen. Wenn Sie beispielsweise ein Automodell haben, können Sie Reifen hinzufügen und die Reifenimplementierung in Zukunft problemlos ersetzen - ohne eine einzige Codezeile im Automodell zu ändern.
Wenn Sie komplexere Anwendungen entwickeln, möchten Sie auf keinen Fall selbst Abhängigkeitsinjektionsaufgaben ausführen, da die Codemenge schnell wächst und zu kompliziert für die Unterstützung wird. Dagger erspart Ihnen dieses Problem, da beim Kompilieren durch Anmerkungsverarbeitung ein Abhängigkeitsinjektionsdiagramm erstellt wird.
Im vergangenen Jahr hat Google ein separates Android Dagger-Modul hinzugefügt, mit dem Sie weniger Boilerplate-Code schreiben und die Abhängigkeitsinjektion vereinfachen können.
Fazit
Hier ist es also: Unsere Liste der 10 besten Android-Bibliotheken im Jahr 2018. Zehn großartige Bibliotheken, die den Android-Entwicklungsprozess für jeden, der sich für die Verwendung entscheidet, angenehmer machen. Willst du mehr Bibliotheken? So kam es, dass wir in unserem Unternehmen mehrere eigene Android-Bibliotheken entwickelten. Sie können sich mit ihnen vertraut machen:
- MjolnirRecyclerView - fügt RecyclerView Unterstützung für Kopf-, Fuß-, leere Ansichtskomponenten und DiffUtils hinzu;
- Goldfinger - vereinfacht die Implementierung der Authentifizierung per Fingerabdruck.
- DBInspector - zeigt Anwendungsdatenbanken an und bietet Zugriff darauf;
- Complexify ist eine einfache Möglichkeit, die Qualität des Kennworts eines Benutzers zu überprüfen.
- Prince of Versions - Behandelt Anwendungsaktualisierungen innerhalb der Anwendung.