Warum kompliziert, wenn es auch einfach geht: Die besten Android-Librarys
Wer eine Android-App programmiert, auf ein Problem stößt und ein bisschen recherchiert, findet nicht selten Lösungen durch passende Librarys. Doch nicht für jedes noch so kleine Problem sollte zu Bibliotheken gegriffen werden. Denn das verursacht auch eine Abhängigkeit: vom Support der Library, da die immer aktuell gehalten werden muss, falls auch deine App auf dem neusten Stand bleiben soll. Außerdem bieten manche Programmierbibliotheken häufig mehr Features, als tatsächlich benötigt werden, und blasen eure App so mit überflüssigem Code auf. Ihr solltet euch also mehr als zweimal überlegen, ob das Problem mit ein paar selbstgeschriebenen Code-Zeilen besser gelöst werden kann.
Jedoch gibt es auch einige ausgereifte Bibliotheken, die nicht ohne Grund sehr weitverbreitet sind: Sie vereinfachen komplexe Probleme häufig immens und werden stets aktualisiert. Darunter beispielsweise Gson, das von Google selbst entwickelt wird. Wir stellen einige spannende Android-Libraries vor.
Daten abfragen, speichern und verarbeiten
Ohne Daten geht gar nichts. Auch nicht bei Android-Apps. Die passenden Bibliotheken für REST-API-Abfragen, Json-Parsing und SQLite-Alternativen findet ihr im folgenden Abschnitt.
Retrofit
Retrofit bietet eine elegante Lösung, um REST-API-Anfragen auszuführen. Abfragen werden einfach als Interface verfasst und die Methoden bekommen lediglich passende Annotations. So könnte ein entsprechendes Beispiel mit Retrofit aussehen:
public interface RestApiInterface {
@GET("/api/email")
User getEmail(@Query("email_id") int emailId, Callback callback);
}
// Die zugehörige URL der API muss gesetzt werden
RestApiInterface restApiInterface = new RestAdapter.Builder()
.baseUrl("https://example.com/").build()
.create(RestApiInterface.class);
// Email-Abfrage mit der ID 12345
restApiInterface.getEmail(12345, new Callback() {
@Override
public void success(Email email, Response response) { }
@Override
public void failure(RetrofitError retrofitError) { }
});
Gson
Wer mit API arbeitet, muss häufig Json-Dateien verarbeiten können. Die Library Gson hilft dabei, solche Dateien mit nur einem Aufruf in Objekte einer passenden Klasse umzuwandeln. Auch Retrofit verwendet Gson bereits und kann deswegen die REST-API-Abfragen direkt als passende Objekte abspeichern. Ohne Retrofit lässt sich das Parsing einer Json-Datei mit wenigen Zeilen Code realisieren:
String emailJSON = new Gson().toJson(email);
Email email = new Gson().fromJson(emailJSON, Email.class);
Room
Room ist eine von Android zur Verfügung gestellte Library, die SQLite abstrahiert und dabei die Gestaltung einer robusten Datenbank ermöglicht, wobei der Zugriff durch gewöhnliche SQL-Abfragen realisierbar ist. Wer mit eher kleineren Datensätzen arbeitet, sollte eher auf Room statt auf die beiden folgenden Bibliotheken Realm und Objectbox setzen.
Realm
Nicht bei jedem neuen Starten einer Activity sollten die benötigten Daten erneut mit langsamen Aufrufen abgefragt werden. Eine mögliche Lösung ist das Abspeichern der Daten in einer lokalen Datenbank. Realm ist dabei eine der beliebtesten objektorientierten Lösungen für dieses Problem – nicht zuletzt wegen der einfachen Nutzung und ausführlichen Dokumentation.
Objectbox
Mit Objectbox gibt es auf dem Markt noch eine ziemlich neue Alternative zu Realm. Vorteile sind eine einfache Implementierung und die Reduzierung von Code. Auch soll die Bibliothek deutlich performanter als SQLite sein.
Parceler
Soll ein Objekt beim Starten einer neuen Activity an diese weitergegeben werden, kommt häufig das Interface Parcelable zum Einsatz. Jedoch müssen für jede Klasse mehrere Methoden und ein passender Creator geschrieben werden. Das ist bei mehreren Klassen mühsam, zumal die Implementierungen nahezu identisch sind. Parceler reduziert den Aufwand stark, da nur noch eine Annotation und zwei einfache Methoden-Aufrufe benötigt werden:
@Parcel
public class Email {
public Email() { }
}
// So wird das Objekt übergeben...
Intent intent = new Intent(this, MyActivity.class);
intent.putExtra("email", Parcels.wrap(emailObject));
startActivity(intent);
// ...und so wieder ausgelesen
Email email = (Email) Parcels.unwrap(getIntent().getParcelableExtra("email"));
Picasso
Die folgende Library macht ihrem Namen alle Ehre. Es geht zwar nicht um Pablo Picasso und seine Gemälde, dafür aber vielmehr um eine modernere und digitale Möglichkeit, Bilder zu „erschaffen“: Wie können Bilder effizient heruntergeladen und gecached werden? Picasso nimmt sich des Problems an und kann eben genau das mit nur einer Zeile Code realisieren.
Picasso.get().load("https://example.com/image.png").into(imageView);
Android-Libraries fürs Auge
Android bietet von Haus aus einige einfache Views und Animationen, die auch den Richtlinien des Materialdesigns folgen. Wenn das nicht reicht, helfen folgende Bibliotheken weiter.
Lottie
Airbnb bringt mit Lottie Bewegung in deine Android-App. Denn mit der Library lassen sich Adobe-After-Effects-Animationen, die als Json-Dateien exportiert werden, ganz einfach in die App integrieren. Es gibt sogar eine Auswahl an kostenlosen Animationen.
Styleable-Toast
Styleable-Toast macht aus den langweiligen Android-Toasts farbenfrohe und einfach anpassbare Mitteilungen. Egal ob mit Icons, runden oder kantigen Ecken, buntem Hintergrund oder Text. Es muss lediglich ein passendes Design in der style.xml oder mit dem Builder-Pattern erstellt werden.
Transitioner
Apps vermitteln ein deutlich stimmigeres Erscheinungsbild, wenn die Übergänge beim Starten einer neuen Acitivity eine passende Animation haben. Passend heißt in dem Fall die Transformation von Layouts, die sich in veränderter Art und Weise in beiden Activitys wiederfinden. Die vernünftige Umsetzung mit den von Android zur Verfügung gestellten Mitteln ist jedoch ziemlich kompliziert. Transitioner vereinfacht das deutlich.
Tap-Target-View
Um die Funktionen deiner App vorzustellen und dem Nutzer beim ersten Start eurer mobilen Anwendung einen Überblick zu verschaffen, empfiehlt Google das Tap-Target-Feature. Eine Implementierung der Design-Richtlinie wird von Keepsafe mit der Library Tap-Target-View zur Verfügung gestellt.
Chat-Kit
Auch für die Integration eines Chat-Dienstes gibt es für die Benutzeroberfläche eine komplett eigene Library mit dem Namen Chat-Kit. Flexibel, individuell anpassbar und ein Datei-Management sind die zentralen Features.
Fazit
Es gibt unzählig viele Android-Bibliotheken auf Github mit den verschiedensten Funktionen. Darunter Android-Apps, die zu einem Großteil aus Bibliotheken bestehen. Das kann schnell zu einem riesigen Problem werden, wenn eine Library nicht mehr supportet wird oder nicht mit der aktuellsten Android-Version kompatibel ist. Aus diesem Grund sollte immer abgewogen werden, ob eine Library sinnvoll ist.
Dieser vom 8.4.2018 stammende Artikel wird regelmäßig aktualisiert.
Das könnte dich ebenfalls interessieren: So kommen die neuen Features von Android P in deine App
Moin, das Plural vom englischen Wort „library“ wird folgendermaßen geschrieben: libraries. Ansonsten guter Artikel. Mfg
Hallo,
im Englischen ist das absolut der Fall. Werden englische Wörter jedoch im Deutschen verwendet, so wird für die Pluralbildung -ys statt -ies verwendet.
Gerne kannst du das hier auch nochmal genauer nachlesen: https://www.duden.de/sprachwissen/newsletter/Duden-Newsletter-170409
Viele Grüße
Andreas
Hallo Andreas Domain,
danke für die Info. Wieder was gelernt :)
LG
Es heißt „libraries“ …
Hallo,
im Englischen ist das absolut der Fall. Werden englische Wörter jedoch im Deutschen verwendet, so wird für die Pluralbildung -ys statt -ies verwendet.
Gerne kannst du das hier auch nochmal genauer nachlesen: https://www.duden.de/sprachwissen/newsletter/Duden-Newsletter-170409
Viele Grüße
Andreas