Anzeige

Kotlin

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.

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.
 

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

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, Android Entwickler
Lukasz Kalnik
Android Entwickler, grandcentrix

Newsletter Anmeldung

Smarte News aus der IT-Welt

Sie möchten wöchentlich über die aktuellen Fachartikel auf it-daily.net informiert werden? Dann abonnieren Sie jetzt den Newsletter!

Newsletter eBook

Exklusiv für Sie

Als Newsletter-Abonnent erhalten Sie das Booklet „Social Engineering: High Noon“ mit zahlreichen Illustrationen exklusiv und kostenlos als PDF!

 

Artikel zu diesem Thema

Stonehenge
Okt 19, 2020

Der „tanzende Monolith“ ergänzt die moderne Microservices-Architektur

Microservices rangieren zurzeit weit oben in der Gunst der Software-Entwickler. Aber sie…
Softwareentwickler
Sep 18, 2020

Diese fünf Soft Skills zeichnen einen erfolgreichen Entwickler aus

Der Entwickler als Nerd der Informationsgesellschaft ist ein Stereotyp aus…
App-Entwicklung
Aug 25, 2020

App-Entwicklung rückt Sicherheit in den Mittelpunkt

Sicherheits- und Entwicklungsteams richten sich nach unterschiedlichen und oft…

Weitere Artikel

Home Office

Vier Herausforderungen bei der Softwareverteilung in Homeoffice-Zeiten

Das Ausrollen von Software, Updates und Patches stellt viele Unternehmen aktuell vor Probleme, weil sie nur eingeschränkt auf Rechner von Mitarbeitern im Homeoffice zugreifen können oder das Datenvolumen ihre Infrastruktur überfordert.
Kubernetes

Zerto stellt Beta-Version für Kubernetes vor

Zerto, Anbieter von Cloud-Datenmanagement und -schutz, kündigt das Beta-Programm für Kubernetes (Z4K) an. Z4K ist eine Erweiterung der Zerto-Plattform zur Unterstützung Cloud-nativer Anwendungen der nächsten Generation.
Dropbox

Dropbox enthüllt neue Features für virtuelle Teams

Dropbox hat die neueste Version seiner digitalen Arbeitsbereiche für die Zusammenarbeit, Dropbox Spaces, zusätzlich zu vielen neuen Features veröffentlicht, die Teams beim Organisieren von Inhalten und Zusammenarbeiten an jedem Standort unterstützen.

Die 3 Anforderungen kleiner Unternehmen an Unternehmenssoftware

Software ist für Unternehmen eines der wichtigsten Arbeitsmittel der heutigen Zeit: Mit ihrer Hilfe werden Unternehmensprozesse geplant, ausgeführt, ausgewertet und optimiert. Das würde auch oft kleinen Unternehmen helfen, obwohl diese das oft noch nicht…

Anzeige

Newsletter Anmeldung

Smarte News aus der IT-Welt

Sie möchten wöchentlich über die aktuellen Fachartikel auf it-daily.net informiert werden? Dann abonnieren Sie jetzt den Newsletter!

Newsletter eBook

Exklusiv für Sie

Als Newsletter-Abonnent erhalten Sie das Booklet „Social Engineering: High Noon“ mit zahlreichen Illustrationen exklusiv und kostenlos als PDF!