Android Architecture Components
Als Android Entwickler baut man sehr unterschiedliche Dinge, doch in der Basis hat jeder Entwickler die identische Aufgabe. Eine App zu bauen die auf dem Android System stabil und schnell läuft. Die Funktionen selbst unterscheiden sich gravierend, doch dies dürfte logisch sein. Um die Standards zu erfüllen, sowohl was die allgemeinen Aufgaben, wie auch was die speziellen Funktionen angeht, muss man unter anderem oft Daten speichern, transferieren, verwalten und natürlich anzeigen. Das Ganze sollte entsprechend des Android Lifecycles erfolgen, denn sonst rennt man früher oder später in Probleme. Diese ganzen Schritte zu verbinden ist oft nicht leicht und normalerweise nutzt man diverse Libraries, um z.B. Netzwerkdaten mit den eigentlichen Modellen zu verbinden und zusätzlich müssen die Daten natürlich auch mit der UI synchronisiert werden. Hierfür gibt es die allgemeinen Bibliotheken, die vermutlich jeder kennt und die eine oder andere spezielle, die der jeweilige Entwickler bevorzugt. Da es sich hier aber um allgemeine Probleme handelt, hat auch das Android Team selbst nun eine Lösung für die Probleme vorgestellt. Auf den Namen Android Architecture Components hört die neue Sammlung von Komponenten.
Die erste ist Lifecycles, welche eine einfache Synchronisation zwischen dem Android Lifecycle und euren Komponenten erlaubt. Diese ist die Basis für die folgenden Komponenten. Die nächste ist LiveData, welche eine direkte Verbindung zwischen euren Daten und der UI erlaubt. Man nutzt Observables, diese hören auf Änderungen von Daten und bilden diese automatisch auf eure gewählte UI ab. Weiter geht es mit ViewModel. Hier separiert man die eigentlichen Daten vom Lifecycle, was diverse Probleme aus der Welt schafft. Außerdem ermöglicht man hiermit die Kommunikation zwischen Fragments, ohne z.B. über die Parent-Activity gehen zu müssen. Komplettiert wird das Ganze von Room, einem Abstraction Layer für SQLite. Hiermit will man den direkten Zugriff auf SQLite vereinfachen, z.B. durch die Compile-Time Quer Verification, was unglaublich praktisch ist. Außerdem gibt es diverse Annotations, welche das Erstellen und Verwalten der Datenbankobjekte massiv vereinfachen. Diese Sammlung ist in der Version 1.0 verfügbar und für den produktiven Einsatz gedacht. Ich selbst werde das Ganze auf jeden Fall bei meinem nächsten Android Projekt testen und bin gespannt wie es mit den vorhandenen Libraries mithalten kann. Ich finde dies ist auf jeden Fall ein sehr guter und wichtiger Schritt zur Vereinheitlichung und Stabilisierung von Android Apps. In der Zukunft könnt ihr weitere Beiträge zu diesem Thema im Blog erwarten.