Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Listicle

Warum kompliziert, wenn es auch einfach geht: Die besten Android-Librarys

(Grafik: Github/stfalcon-studio)

Librarys für die Android-Entwicklung gibt es zahlreiche. Doch nicht jede noch so kleine Bibliothek ist sinnvoll. Eine Sammlung der spannendsten Android-Librarys, die dein Projekt wirklich voranbringt.

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-Librarys 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.

Das Ergebnis der Open-Source-Benchmarking-App von Objectbox. (Grafik: Objectbox)
Das Ergebnis der Open-Source-Benchmarking-App von Objectbox. (Grafik: Objectbox)

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);

Bitte beachte unsere Community-Richtlinien

5 Reaktionen
Andreas Domin

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

Antworten
Hans Bratwurst

Moin, das Plural vom englischen Wort "library" wird folgendermaßen geschrieben: libraries. Ansonsten guter Artikel. Mfg

Antworten
Andreas Domin

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

Antworten
Klaus Krakauer, Bruder des Bratwursts

Hallo Andreas Domain,
danke für die Info. Wieder was gelernt :)
LG

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.