Effizienzsteigerung in der App-Entwicklung durch spezialisierte, wiederverwendbare Libraries

3. Juni 2024 - von Maximilian Lemberg

Editor's Note: Im Rahmen seines Studiums in iCompetence (Informatik, Design & Management) an der Fachhochschule Nordwestschweiz FHNW hat unser iOS-Entwickler Maximilian Lemberg über den Einsatz von Libraries bei der Entwicklung von nativen Apps geschrieben. Im Folgenden stellen wir den Artikel - minimal editiert und ergänzt - der Allgemeinheit zur Verfügung. Er gibt einen kurzen Überblick über die Chancen und Herausforderungen beim Einsatz von Libraries, also wiederverwendbaren und modular einsetzbaren Teilen von Code in der App-Entwicklung. Wenn du zu diesem oder anderen Themen der App-Entwicklung Fragen oder spannende Inputs hast: Wir haben stets offene Ohren, respektive Inboxen dafür.

Und jetzt viel Spass bei der Lektüre!

Abstract

Die stetige Nachfrage nach effizienten und innovativen Softwarelösungen stellt App-Entwickler*innen vor enorme Herausforderungen. Dieser Beitrag untersucht die Bedeutung spezialisierter, wiederverwendbarer Libraries in der App-Entwicklung. Der Artikel beschreibt die Ausgangslage bei der Firma Apps with love und die aktuellen Herausforderungen in der Softwareentwicklung, insbesondere bei wiederkehrenden Funktionalitäten. Dabei wird erläutert, wie Libraries durch ihren modularen Aufbau die Code-Wiederverwendbarkeit fördern, die Wartung vereinfachen und die Kosten reduzieren können. Weiterhin wird dargelegt, wie eine bereits vorhandene Authentifizierungs-Library die Anzahl der zu schreibenden Codezeilen in Projekten signifikant reduziert hat, wodurch Zeit und Ressourcen eingespart werden konnten.

Bedeutung von Effizienz in der App-Entwicklung

Effizienz in der Softwareentwicklung, besonders bei mobilen Apps, ist ein entscheidender Erfolgsfaktor. Entwickler*innen müssen die stetig steigenden Anforderungen an Funktionen und Qualität erfüllen, während Ressourcen wie Zeit und Budget oft begrenzt sind. Ein effektiver Ansatz zur Bewältigung dieser Herausforderungen ist der Einsatz spezialisierter, wiederverwendbarer Libraries. Sie beschleunigen Entwicklungsprozesse und sorgen für höhere Qualität und Wartbarkeit der Anwendungen.

Die Herausforderungen wiederkehrender Funktionen in App-Projekten

Viele App-Projekte erfordern wiederkehrende Funktionen, die jedoch trotzdem oft von Grund auf neu implementiert werden müssen. Ein klassisches Beispiel dafür sind Logins oder die Funktion zur Wiederherstellung eines Passwortes - im Grundsatz erfüllen sie immer die gleiche Funktion, aufgrund von spezifischen Anforderungen müssen sie aber trotzdem of massgeschneidert entwickelt werden. 

Das führt zu redundanter Arbeit und einem hohen Mass an geteiltem Code. Entwickler*innen sind gezwungen, sich mit ähnlichen Aufgaben zu befassen, anstatt sich auf innovative Features konzentrieren zu können. Diese wiederkehrenden Aufgaben mindern die kreative Freiheit und reduzieren die Effizienz. 

Die Nutzung von standardisierten, wiederverwendbaren Libraries hilft, einige dieser wiederkehrenden Aufgaben zu vereinfachen, damit nicht jedes Mal ganz «bei Null» angefangen werden muss.

Was macht spezialisierte, wiederverwendbare Libraries aus?

Spezialisierte, wiederverwendbare Libraries sind Sammlungen von Routinen oder Funktionen, die bestimmte Aufgaben effizient lösen. Sie bieten standardisierte, bewährte Methoden zur Lösung wiederkehrender Probleme, ohne dass Code für jedes Projekt neu geschrieben werden muss. In einem untersuchten Paper werden wichtige Prinzipien für die Entwicklung von Libraries hervorgehoben:

  • Generalisierung und Variabilität: Libraries sollten so entwickelt werden, dass sie generelle Anwendungsfälle abdecken und flexibel genug bleiben, um spezifische Anforderungen zu unterstützen.

  • Designprinzipien: Klare Designprinzipien gewährleisten Effizienz und Wartbarkeit der Libraries. Dazu gehören beispielsweise ein konsistentes und aussagekräftiges Namensgebungsschema für Funktionen, Klassen und Variablen. Präzise Dokumentation und standardisierte Schnittstellenkonventionen sind ebenso entscheidend, um die Nutzungsfreundlichkeit einer Library zu gewährleisten.

Weitere Arbeiten betonen jedoch auch die Herausforderungen bei der Wiederverwendung:

  • Schlechte Pflege oder unklare Dokumentation: Dies führt oft dazu, dass Libraries nicht verwendet werden. Entwickler*innen sollten eine sorgfältige Überprüfung vornehmen, um Re-Implementierung zu vermeiden.

  • Komplexe Abhängigkeiten: Diese führen dazu, dass Entwickler*innen zögern, Libraries zu verwenden. Daher sollten Libraries modular und einfach gehalten werden.

Effizienzsteigerung durch standardisierte Libraries

Die Wiederverwendung von Code durch spezialisierte Libraries spart Entwicklungszeit und minimiert Fehler. Durch Verwendung der Libraries wird die Entwicklungsdauer erheblich reduziert und gleichzeitig die Qualität gesteigert. Zusätzlich verbessern Libraries die Skalierbarkeit und Wartung von Anwendungen durch standardisierte Methoden für wiederkehrende Funktionen. Die daraus resultierende Kosteneffizienz führt zu deutlich reduzierten Gesamtkosten. Natürlich unter der Voraussetzung, dass bei der Entwicklung der Libraries, die oben genannten Prinzipien berücksichtigt werden.

Einsatz von Authentifizierungs-Libraries bei Apps with love

Das Entwicklungsteam von Apps with love hat zum Beispiel eine spezialisierte Authentifizierungs-Library entwickelt, um den Authentifizierungsprozess zu vereinfachen. Diese Library wurde konzipiert, um wiederkehrende Login-Prozesse zu standardisieren und zu optimieren, was eine zuverlässige und sichere User Experience gewährleistet. Die grafische Darstellung zeigt, dass diese Library die Anzahl der zu schreibenden Codezeilen in Projekten deutlich reduziert, indem sie wiederverwendbare Routinen bereitstellt, die nicht in jedem Projekt neu geschrieben werden müssen.

Grafik, die auf der y-Achse die Durchschnittliche Anzahl geschriebener Codezeilen mit und ohne Libraries, auf der x-Achse die Anzahl Projekte zeigt
Grafik, die auf der y-Achse die Durchschnittliche Anzahl geschriebener Codezeilen mit und ohne Libraries, auf der x-Achse die Anzahl Projekte zeigt

Strategische Entwicklung zukünftiger Libraries

Apps with love  plant die Entwicklung zusätzlicher Libraries, die bestimmte wiederkehrende Aufgaben optimieren. Eine geplante Error-Handling-Library soll Fehlerprotokollierung und -management standardisieren. Eine ausgebaute Lokalisierungs-Library wird die Verwaltung und Aktualisierung mehrsprachiger Inhalte zentralisieren, um das Handling von Übersetzungen zu vereinfachen. Solche Libraries können den gesamten Entwicklungsprozess reibungsloser und skalierbarer machen, indem sie konsistente Fehlerbehandlung und Lokalisierung für alle Projekte gewährleisten.

Die Standardisierung und Vereinfachung welche durch die strategische Entwicklung von Libraries erreicht werden kann, soll es den Entwickler*innen möglich machen, sich vermehrt auf die Entwicklung von innovativen Features zu konzentrieren, die die Alleinstellungsmerkmale der Apps hervorheben.

Gesamteinsparungen durch wiederverwendbare Libraries

Der gezielte Einsatz wiederverwendbarer Libraries hat bei Apps with love die Effizienz erheblich gesteigert. Durch die Reduktion redundanter Codezeilen und die Wiederverwendung modularer Bausteine können Entwickler*innen ihre kreative Energie auf anspruchsvolle Funktionen und Innovationen konzentrieren. Dies unterstreicht die strategische Bedeutung spezialisierter Libraries in modernen Entwicklungspraktiken, da sie die Kosten reduzieren, die Skalierbarkeit verbessern und die Entwicklungsprozesse optimieren.

Herausforderungen und Grenzen

Trotz der offensichtlichen Vorteile sind Libraries nicht ohne Einschränkungen. Herausforderungen umfassen spezifische Projektanforderungen, die Komplexität grosser Libraries und die Abhängigkeit von veralteten oder schlecht gewarteten Tools. Zudem können Kompatibilitätsprobleme mit bestehenden Systemen oder Abhängigkeitskonflikte die Flexibilität einschränken. Die sorgfältige Evaluierung der Libraries sowie deren strategischer Einsatz sind daher entscheidend. Eine weitere Herausforderung besteht darin, sicherzustellen, dass die Libraries regelmässig aktualisiert werden und nicht veralten. Entwicklungsteams müssen eine Balance zwischen der Nutzung etablierter Libraries und dem Vermeiden von Abhängigkeiten finden, die das gesamte Projekt einschränken könnten.

Die Zukunft spezialisierter Libraries in der App-Entwicklung

Spezialisierte, wiederverwendbare Libraries sind Schlüsselwerkzeuge in der modernen Softwareentwicklung. Sie bieten unmittelbare Vorteile wie Effizienzsteigerung und Kostenreduktion, ermöglichen aber auch eine nachhaltige und zukunftsfähige Entwicklungspraxis. Die Zukunft der App-Entwicklung wird durch eine zunehmende Spezialisierung dieser Libraries geprägt sein. Entwicklungsfirmen wie Apps with love können so schneller auf Marktanforderungen reagieren und qualitativ hochwertige Produkte ausliefern.

Quellen

1. «Principles for writing reusable libraries», ACM SIGSOFT Software Engineering Notes.

2. A. Lampropoulos, «Mobile Application Development with reusable code».

3. «Why reinventing the wheels? An empirical study on library reuse and re-implementation», Empirical Software Engineering, Jan. 01, 2019.  

4. «Code reuse», Wikipedia

5. «Library (computing)», Wikipedia

Wir haben grad gemerkt, dass du mit Internet Explorer surfst. Unsere Webseite sieht damit leider nicht so schön aus.

Du willst erfahren warum das so ist?
Wir haben darüber geschrieben.

Zum Blog

Du brauchst Hilfe bei der Umstellung?
Melde dich. Wir helfen gern.

Kontakt

Einen neuen Browser installieren?
Hier gibt es Auswahl.

Browser