Android Clean Architecture: Mit Kotlin nachhaltige Apps entwickeln

Quelle: Trismegist san / Shutterstock.com

Digitalisierung ohne Apps? Undenkbar. Ob im Einzelhandel, in der Finanzbranche oder im Smart Home: Für zahlreiche Anwendungen gibt es mobile Anwendungen- nicht selten im Zusammenspiel mit einer ganzheitlichen IoT-Lösung. Kein Wunder also, dass immer mehr App-Dienstleister wie Pilze aus dem Boden schießen. Den richtigen zu finden – etwa im Android-Umfeld – ist daher gar nicht so leicht.

So lassen sich funktional nur selten Unterschiede ausmachen. Ein guter Ratgeber kann indes die Frage nach der Software-Architektur und der verwendeten Programmiersprache sein. Denn dieses Pärchen spielt für die Nachhaltigkeit einer App eine wesentliche Rolle.

Anzeige

Wer auf die Suche nach dem passenden App-Dienstleister geht, steht in aller Regel vor der berühmten Qual der Wahl. Denn die gibt es inzwischen wie Sand am Meer. Zudem kommen auf den ersten Blick meist mehrere Kandidaten in Frage – zumindest, wenn es um den Funktionsumfang geht. Der alleine ist jedoch längst nicht ausreichend, wenn es darum geht, eine nachhaltige App zu entwickeln. Denn die sollte neben dem hohen funktionalen Abdeckungsgrad vor allem auch gut wartbar und flexibel erweiterbar sein. Das gelingt vor allem dann, wenn die Geschäftsregeln einer Anwendung unabhängig von technischen Rahmenbedingungen zu pflegen sind und der Testaufwand bei Änderungen niedrig ist. Zeitgemäße Features verpackt in wenig Code – könnte die Zusammenfassung lauten.

Effizienz dank klarem Softwaredesign mit Kotlin

Ratsam ist es daher, nach der Software-Architektur und Programmiersprache zu fragen. Denn die spielen hierbei eine herausragende Rolle. So gilt: Je klarer das Softwaredesign, desto besser die Code-Struktur und desto einfacher und kosteneffizienter sind Änderungen in den unterschiedlichen Phasen eines App-Lebenszyklus realisierbar. Das gelingt vor allem dann, wenn die unterschiedlichen Ebenen voneinander unabhängig sind bzw. ihre Kommunikation klaren Regeln folgt. Dieser Ansatz ist als Clean Architecture bekannt und umfasst drei Ebenen (vgl. Bild 1): Die (1) Datenschicht (z. B. Netzwerkkommunikation), die (2) Domänenschicht (Geschäftslogik in der Form von Anwendungsfällen) und die (3) Präsentationsschicht (UI oder API-Oberfläche für Bibliotheken).

Ein solch effizientes App-Design lässt sich mit verschiedenen Programmiersprachen umsetzen. Im Umfeld von Android-Lösungen kommt immer häufiger Kotlin zum Einsatz. Mit der noch recht jungen Programmiersprache lässt sich einerseits die beschriebene, klare Trennung der Zuständigkeiten der Architekturschichten umsetzen und potentielle, zukünftige Änderungen lassen sich isolieren. Andererseits helfen sogenannte Factory-Funktionen, Abhängigkeiten zwischen Business Rules bzw. Use Cases vor höheren Architekturschichten zu verstecken und einfache Unit Tests zu erstellen.

Einfache Änderungen und Updates

Ein Beispiel: Eine Android-Bibliothek – die Funktionalitäten zusammenfasst – greift über REST API auf ein IoT-Gateway zu, das die Lampen in einem Haus kontrolliert. Mit Hilfe von Kotlin und dem Clean Architecture-Ansatz lässt sich die Bibliothek-API von den Abhängigkeiten der Anwendungsfälle aus der Domänenschicht isolieren. Schließlich fungiert die API-Schicht als eine Art Vertrag zwischen der Bibliothek und deren Nutzer, die nicht geändert werden darf. Oder anders ausgedrückt: Der Vertrag muss auch dann erfüllt werden, wenn sich die innere Struktur (also die Implementierungsdetails) der Bibliothek ändern. Durch die Isolation dieser Schicht ist im beschriebenen Anwendungsfall z. B. die Gateway-Kommunikation von HTTP auf Bluetooth leicht umstellbar. Die Gateway-API lässt sich folglich leicht austauschen, ohne die API-Schicht der Bibliothek anfassen zu müssen. Zudem sichern automatische Unit-Tests konsistente Qualität und eine hohe Zuverlässigkeit der API, auch wenn sich Implementationsdetails ändern.
 

Android Clean Architecture Grafik

Bild 1: Der Android Clean Architecture-Ansatz garantiert schnell umsetzbare Änderungen und Tests. (Quelle: grandcentrix) 
 

NL Icon 2
Jetzt die smarten News aus der IT-Welt abonnieren! 💌

Mit Klick auf den Button “Zum Newsletter anmelden” stimme ich der Datenschutzerklärung zu.

Auf die Softwarearchitektur kommt es an

Für gute App-Entwickler ist der Ansatz der Clean Architecture kein Fremdwort. Denn eine effiziente, durchdachte Softwarearchitektur stellt sicher, dass Tests und künftige Änderungen leicht und schnell umsetzbar sind. Wer bspw. eine Android-App plant, ist nicht nur gut beraten, nach der Programmiersprache, sondern auch nach dem Architekturansatz zu fragen. Denn Kotlin und Clean Architecture gelten in diesem Zusammenhang als unschlagbares Paar – als Garant für die Entstehung nachhaltiger Apps.  

Lukasz Kalnik

grandcentrix -

Android Entwickler

Anzeige

Artikel zu diesem Thema

Weitere Artikel

Jetzt die smarten News aus der IT-Welt abonnieren! 💌

Mit Klick auf den Button “Zum Newsletter anmelden” stimme ich der Datenschutzerklärung zu.