Woraus besteht eine App und kann man die selbst programmieren?


Das Programmieren einer App kann kompliziert werden

Viele träumen davon, eine eigene App auf den Markt zu bringen und stellen sich die Frage, ob man diese selber machen kann oder doch besser von einem Profi entwickeln lässt. Um einschätzen zu können, welchen Entwicklungsumfang eine App hat, muss man zunächst verstehen, wie eine App auf Smartphone, Tablet oder Computer funktioniert.

Im Folgenden erkläre ich, worauf es bei der App-Entwicklung ankommt und wie eine App aufgebaut ist. Ich zeige Ihnen, wie es unter der App-Motorhaube aussieht. So können Sie besser entscheiden, ob Sie selbst zum Entwickler werden oder doch lieber den Profi beauftragen.

Selbst machen oder machen lassen?

Haben Sie so etwas Verführerisches schon einmal gelesen: «Eine App selbst programmieren, in nur fünf Minuten». Oder vielleicht etwas Derartiges hier: «Mit wenigen Klicks eine App erstellen - ohne Programmierung». Auf diese oder ähnliche Weise umwerben Anbieter von App-Entwicklungsprogrammen vor allem Laien, damit diese ihre eigene App mit Hilfe von einfach gestrickten Entwicklungsumgebungen oder App-Baukästen selbst erstellen.

So verlockend sich diese Versprechen auch anhören, eine Welt, in welcher jede Person in der Mittagspause einen Toaster erfinden kann oder über das Wochenende eine Weltraumrakete bauen, erscheint wenig realistisch. Eine professionelle App, also eine solche, die durch eine Softwarefirma umgesetzt wird, nimmt in der Regel mindestens einen Monat Entwicklungszeit in Anspruch - je nach Umfang und Komplexität auch mehr. Der Laie aber soll eine App per Baukastensystem einfach in ein paar Minuten zusammenklicken können?

Wie Sie sich denken können, entpuppt sich die zunächst erwartete Leichtigkeit beim Selbermachen einer App oft als Trugschluss und das ganze Vorhaben als komplizierter und komplexer als angenommen. Von der anfänglichen Begeisterung für ein baukastenmässiges App-Entwicklungs-Programm - insbesondere wegen der theoretisch phänomenalen Sparmöglichkeiten - bleibt am Ende nicht viel übrig.

Das Grundgerüst der App steht zwar mit einem App-Baukasten bereits nach kurzer Zeit. Sobald es jedoch um Detailfragen geht, kommen die meisten Leute ins Stocken und verwerfen die Idee des «Selbstbauens per einfachem Programm in wenigen Minuten» wieder.


Ohne App-Baukasten hat man mehr Gestaltungsfreiheit

Natürlich haben App-Baukästen durchaus ihre Berechtigung. Ein Verein, der sich mit einer App lediglich präsentieren möchte, die Anwendung also quasi nur als Visitenkarte nutzen möchte, findet in einem Baukasten-System eine sehr günstige Alternative zum professionellen Software-Entwickler. Wenn es jedoch um komplexere Anwendungen geht, sollte man die Kenntnisse eines Entwicklers in Anspruch nehmen.

Ausserdem gibt es Unternehmen, in denen die Faktoren Sicherheit und Datenschutz bei der Erstellung einer App einen zentralen Platz einnehmen. Teilweise wollen Firmen auch wichtige Erkenntnisse für ihre Geschäftsentscheidungen aus dem Nutzungsverhalten der App-User gewinnen. Diese Unternehmen sind gut beraten, die Planung und Umsetzung der App zusammen mit einem Fachmann vorzunehmen.

Das Fundament der App ist die Softwarearchitektur

Werfen wir nun einen Blick unter die «Motorhaube» einer App. Aus welchen Bestandteilen besteht sie und wie greifen die einzelnen «Zahnräder» ineinander, um dem Anwender eine einwandfreie Nutzererfahrung (User Experience) zu bieten?

Ähnlich wie bei Gebäuden spricht man auch im Zusammenhang mit der Entwicklung einer Software von einer architektonischen Leistung. Eine App muss geplant und aus mehreren Komponenten zusammengebaut werden. Die verschiedenen Teile der App müssen ausserdem zusammenarbeiten und miteinander kommunizieren.

Alle Softwarekomponenten haben eine klar abgegrenzte Funktion. Jedes der einzelnen Teile trägt zur Stabilität des Gesamtsystems bei. Die Komponenten sollten möglichst gut zusammenpassen und dabei dennoch flexibel kombiniert werden können.

Die Anforderungen an eine App unterscheiden sich teilweise stark. Beispielsweise kann eine sehr einfach gehaltene App, bei der nur ein geringer Datenaustausch verursacht wird, auf ein Backend, also eine Steuerzentrale im Hintergrund, verzichten. Dagegen benötigt ein grösseres Projekt, bei dem unter anderem eine höhere Anzahl Benutzer erwartet wird, nicht nur ein Backend, sondern sogar mehr als nur einen Server im Hintergrund.

Ein anderes Beispiel: Will man den Nutzern eine App mit Offline-Modus anbieten, müssen viele Funktionen im Frontend abgebildet werden, welche bei Apps ohne Offline-Modus eher auf dem Server angesiedelt wären.

Es setzt einige Erfahrung voraus, die richtige Architektur auszuwählen und schlussendlich die am besten zusammenpassenden Komponenten zu verbauen, damit diese ein möglichst gut funktionierendes, stabiles und benutzerfreundliches Gesamtsystem abbilden.

Die Benutzeroberfläche – sehen und fühlen

Wenn Sie eine App öffnen, erscheint auf dem Bildschirm die Benutzeroberfläche, auch User Interface oder kurz UI genannt. Mit der Benutzeroberfläche erzeugen Sie den ersten Eindruck beim Nutzer, der sich gleich zu Anfang entscheidet, ob sich die App gut oder schlecht «anfühlt».

Es gibt mehrere Kriterien, die für eine gute Benutzererfahrung und letztendlich für den Erfolg der App entscheidend sind:

- Visuell sollte sich die App von anderen Apps und Diensten abheben, jedoch trotzdem Bedienelemente anbieten, welche den meisten Nutzern vertraut und die leicht erkennbar sind.

- Die Bedienung und Navigation sollte so funktionieren, wie es der Benutzer von seiner jeweiligen Plattform her gewohnt ist - etwa Android, iOS oder dem Web.

- Die App sollte flüssig laufen und intuitiv aufgebaut sein.

Die Benutzeroberfläche stellt in Bezug auf das Design und die Nutzererfahrung einen der wichtigsten Teile der App dar und entscheidet wesentlich über Erfolg und Misserfolg der Anwendung. Gleichzeitig handelt es sich beim sogenannten Frontend aus technischer Sicht um den «dummen» Teil der App. Denn die Benutzeroberfläche nimmt nur die Eingaben des Nutzers entgegen und leitet diese dann an einen Server weiter. Innert Millisekunden werden die gewünschten Inhalte vom Server wieder an die App zurückgesendet und dem Benutzer über den Bildschirm angezeigt.

Die Benutzeroberfläche hat somit bis auf wenige Ausnahmen nicht viel mehr zu tun, als die eingegebenen Daten formell zu prüfen. Die hauptsächliche Arbeit der App geschieht im Hintergrund.

Es gibt aber auch Apps, bei welchen der Benutzeroberfläche mehr abverlangt wird. Das ist zum Beispiel der Fall, wenn umfangreiche Animationen abgespielt oder Videokommunikationen ermöglicht werden sollen.

Das Backend – hinter den Kulissen

Für den Betrieb einer App sind eine Vielzahl von Informationen nötig, die verwaltet werden müssen. Eine Lern-App kann beispielsweise aus Fragen und Antworten bestehen. Solche Daten verwaltet man im Backend und nur der Herausgeber der App hat Zugang zu diesem privaten Bereich.

Im Backend werden je nach App auch Daten wie Kundenadressen, Bestellinformationen, Gutscheinnummern, Kommentarmoderationen oder hochgeladene Bilder verwaltet.

Das Backend stellt also die Steuerzentrale für die gesamte Applikation dar. Man nennt es daher auch das «Dashboard» oder das «Cockpit». Im Backend wird mehr Wert auf die Funktionalität als auf das Design gelegt.

Der Server – Motor der App

Obwohl das Backend die Steuerzentrale der App darstellt, ist es im Grunde genommen auch nur eine Benutzeroberfläche, jedoch ausschliesslich für den Herausgeber, also den Betreiber der App. Alle Informationen werden auch hier auf einem Server geprüft, gespeichert, verwaltet und verarbeitet. Dazu wird eine Datenbank eingesetzt und eine serverseitige App genutzt.

Auf dem Server laufen alle Drähte zusammen. Dort befindet sich die eigentliche Applikation. Schreibt ein Nutzer in der App einen Kommentar, so wird das Geschriebene von der Anwendung über eine Programmierschnittstelle (API) an den Server weitergereicht. Soll die App eine Freundesliste anzeigen, wird diese vom Server verlangt. Auch die Versendung von Mails und Pushnachrichten geht von dort aus. Die Programme, welche auf dem Server laufen, bilden meistens den wichtigsten Teil der App.


Ein Serverraum

Externe Komponenten nutzen

Das Rad muss nicht immer neu erfunden werden. Oft sind bestehende Dienste und Programmierroutinen vorhanden, welche in einer neu zu erstellenden App effizient genutzt werden können. Solche externen Komponenten finden in viele Apps Eingang, etwa um Landkarten anzuzeigen, Zahlungen abzuwickeln oder Bilder zu klassifizieren.

Die Anbieter stellen ihre Dienste meist als «Software-as-a-Service» (SaaS) zur Verfügung. Die App kommuniziert dann über eine Programmierschnittstelle mit den jeweiligen Diensten, um die benötigten Informationen auszutauschen.

Die App – ein Wunderwerk der Technik

Hinter einer App steckt also sehr viel mehr Arbeit, als man auf den ersten Blick erkennt. Die Benutzeroberfläche ist nur ein kleiner Teil der App. Der grösste Teil spielt sich hinter den Kulissen ab. Im Backend verwaltet der Administrator die anfallenden Daten. Auf dem Server liegen diese Daten in einer Datenbank und es werden Programme ausgeführt, welche die gesamte App steuern. Dies sind die wichtigsten Komponenten, welche für die meisten Apps benötigt werden.

Mit steigenden Anforderungen werden die Applikationen zunehmend komplexer. Die Entwicklung einer App setzt daher oftmals ein breites Wissen aus verschiedenen Disziplinen voraus: Software-Architektur, Backend-Programmierung, Datenbank-Aufbau und Frontend-Entwicklung. Ein Baukastensystem zum Selbermachen kann diese Kompetenzen nicht ersetzen.

Ich hoffe, dass ich Ihnen einen kleinen Überblick darüber geben konnte, was sich alles hinter einer App verbirgt. Haben Sie Fragen zum Thema? Möchten Sie über einen bestimmten Punkt mehr erfahren? Hinterlassen Sie uns einfach einen Kommentar oder nehmen Sie mit uns Kontakt auf.