Diese Seite ist für Ihren Browser nicht optimiert. Bitte nutzen Sie einen aktuelleren Webbrowser.

Michael Moers

Über App-Typen und App-Entwicklung

Autor: Michael

“Guten Tag. Wir wollen eine App haben!”. Viele Angebotsanfragen zum Thema App-Entwicklung beginnen genau mit diesem Anfangssatz. Und so gilt es zunächst heraus zu finden, welche Art „App“ angedacht bzw. notwendig wird, da hier viele verschiedene Verständnisformen herrschen. Das Thema “Vorbereitende Gedanken zur App-Entwicklung” ist bewusst recht breit gefasst und keinesfalls innerhalb eines Betrags abdeckbar. Neben einer Vielzahl konzeptioneller und strategischer Gedanken (auf die in späteren Artikeln näher eingegangen wird) kann ein gewisses technisches Verständnis zur Unterscheidung von App-Typen nicht schaden. Daher versucht dieser Beitrag, wesentliche technische Unterscheidungsmerkmale von “Apps” auf eine möglichst nicht-technische Art zu beschreiben.

Bekanntlich hat der Begriff „App“ in Freizeit und Arbeitsumfeld eine Vielzahl von Bedeutungen. Als neues Spiel auf dem Smartphone, der Terminkalender auf dem Tablet oder als Anwendungsprogramm auf dem Desktop-Betriebssystem – immer hat man es mit Apps zu tun. „App“ steht dabei als Abkürzung für „Applikation“, wobei es sich konkret um eine Anwendersoftware handelt, die zur Lösung von spezifischen  Nutzerproblemen entwickelt wurde. Sie dient der Umsetzung von nicht betriebssystemrelevanten Funktionalitäten, ist also im konzeptionellen Kern ein Werkzeug zur nutzerorientierten Problemlösung. (siehe auch https://de.wikipedia.org/wiki/Anwendungssoftware) Dies schließt auch alle mobilen Apps mit ein, auf die sich im deutschen Sprachraum bei der Bezeichnung oft beschränkt wird, geht aber im IT-Universum über dieses enge Korsett weit hinaus.

Der folgende Vergleich soll sich bei der App-Entwicklung auf 3 verschiedene technische Ansätze konzentrieren, mit denen sich verschiedenste Anwendungsfälle umsetzen lassen:

 

1. Die Web-App-Entwicklung

HTML5 Web-App Technologie

Moderne PCs, Laptops und Mobilgeräte verfügen über leistungsstarke Web-Browser. Diese können zur Darstellung sogenannter „Web-Apps“ (Web-Applikationen) verwendet werden. Die App-Entwicklung findet dabei häufig auf Basis von HTML, JavaScript und CSS statt. Web-Apps stützen sich damit bei ihrer Funktionalitäten auf die Leistungen des Web- Browsers, um dem User die gewünschten Inhalte abzubilden. Durch die mobile Optimierung dieser Web-Apps, z.B. durch die App-Entwicklung im responsiven Design, werden sie auch in jedem mobilen Browser auf unterschiedlichen Geräte-Klassen optimal angezeigt. Ist die Web-App dann automatisch eine mobile App? Nicht im engeren Sinne, denn auch wenn sie mobil optimiert dargestellt werden kann, bleibt sie eine webbasierte App (also eine browsergestützte Anwendung) und ist von nativen mobile Apps zu unterscheiden. Mehr dazu weiter unten.

Der Entwicklungsansatz der Web-App folgt idealerweise dem Nutzungsprinzip „Barrierefreier Zugang für Alle“: Eine Installation der einzelnen Apps über einen Store ist nicht notwendig, alle Aktualisierungen an der App erreichen den Nutzer unmittelbar beim nächsten Aufruf der Website, auf der die App zu finden ist. Dabei ist zwingend eine Internetverbindung für den Browserzugriff notwendig. Bei der App-Entwicklung bzw. beim App-Publishing ist kein aufwendiger Zulassungsprozess durch den Anbieter eines App-Stores notwendig und Web-Apps lassen sich ebenso in größere Systeme wie Website-CMS integrieren.

Da die Web-App einen Browser als Container zur Darstellung nutzt und dabei nur indirekt auf die Soft- und Hardware des genutzten Gerätes zurückgreift, fallen bei der App-Entwicklung von Web-Apps auch keine zusätzlichen Programmieraufwände für jede App-Plattform (also Geräte-Betriebssystem-Kombination) an. Lediglich die Cross-Browser Funktionalität sowie im Falle einer responsiven App die optimale Darstellung auf verschiedenen Geräte-Größen, muss beider App-Entwicklung von Web-Apps berücksichtigt und sauber getestet werden.

Umgekehrt ist es Browsern (z.B. aus Sicherheitsgründen) beispielsweise nicht immer möglich, sog. „native“ Funktionen anzusteuern, also Funktionen des Gerätes selbst  anzusprechen. (z.B. Nutzung von Push-Notifications). Die Nutzung z.B. der GPS-Funktion des mobile Gerätes hingegen kann auch über Web-Apps und damit über den Browser erfolgen. Als Einschränkung bei der App-Entwicklung von Web-Apps ist z.B. die begrenzte Ressourcenkapazität zu nennen, die vom Browser oder der Internetverbindung zur Verfügung gestellt wird und damit auch schwanken kann. Aufwendige grafische Elemente wie 3D- Renderings oder andere leistungsintensive Anwendungen wie komplexere Spiele sind daher nur bedingt sinnvoll abbildbar. Hier sind teilweise zusätzliche Plugins (z.B. Unity) notwendig, um eine hohe Performance zu sichern.

Übrigens ist auch jede in Facebook integrierte sog. “Facebook-App” eine Web-App. Hierbei agiert Facebook selbst als ein App-Container und übernimmt die Funktionen eines “Semi-Browsers”, der zwischen Web-App und echtem Browser hängt.

Zusammenfassend lässt sich für die App-Entwicklung von Web-Apps festhalten:

Web Apps  liefern für den passenden Anwendungsfall maximale Kompatibilität für alle Geräte bei überschaubarem Entwicklungsaufwand und stellen somit eine moderne und sehr kosteneffiziente Form der App-Entwicklung dar.

2. App-Entwicklung von nativen Apps

Native Apps sind das, was man im Allgemeinen unter einer Mobile App versteht. Vor allem bei komplexeren, ressourcenhungrigen Anwendungen wird bei der App-Entwicklung auf native Applikationen zurückgegriffen, um eine optimale Nutzererfahrung zu ermöglichen. Im Gegensatz zu Web-Apps ist die App-Entwicklung von nativen Apps im Kontext von nachhaltigen, leistungsintensiven Anwendungsfällen die erste Wahl.

Durch die betriebssystemnahe Konzipierung und App-Programmierung können sich native Apps auf mobilen Geräten an vielen vom System zur Verfügung gestellten Funktionen bedienen. Zudem können sie eine höhere Rechenleistung und Speicherkapazität des genutzten Gerätes nutzen. So werden bezüglich der Grafik- oder Prozessorleistung aufwendige Anwendungen möglich. Auch die Integration von Handysensoren und Systemfunktionen (z.B. Barometer, Fingerabdruck-Sensoren, NFC, Adressbuch, Push-Notifications oder Bluetooth) in den Anwendungsfall machen eine native App notwendig. Native Apps sind offline verfügbar und alle Modifikationen an der App werden über ein Store-Update integriert.

Um solch eine App zu entwickeln, muss sie auf jede OS-Plattform (iOS, Android, Blackberry, Windows Phone etc.) einzeln adaptiert werden. Dies setzt voraus, dass bereits in der Konzeptionsphase vor der eigentlichen App-Entwicklung alle gewünschten Systeme definiert werden und führt mit jedem zusätzlichen System zu einem extra Entwicklungsaufwand.

Ist die App-Entwicklung abgeschlossen, geht es um das gezielte App-Marketing und den Vertrieb der App. Hierbei gibt es einige Besonderheiten zu beachten: Native Apps können für die breite Masse nur über den jeweiligen App-Store der Plattform installiert werden. Hierbei sollte u.a. auf die Wirkung guter Bewertungen und spezielle mobile Anzeigen (z.B. App-Install-Ads) geachtet werden. In der fortgeschrittenen Phase der App-Entwicklung gilt es zu beachten, dass sich App-Stores teilweise die Prüfung und separate Zulassungsrunden vorbehalten, um die Qualität des Angebots zu verifizieren. Ein entsprechendes Slot für diesen Prozess muss im Projekt daher unbedingt reserviert werden.

Zusammenfassend lässt bei der App-Entwicklung für native Apps folgendes festhalten:

Für bestimmte Anwendungsfälle, vor allem für die Nutzung von systemnahen (nativen) Funktionen und bei einer nachhaltigen Anwendungsstrategie sind native Apps eine gute Grundlage für ein App-Projekt. Neben den vielen Vorteilen sollte man die höheren Entwicklungskosten (für jede Plattform separat zu betrachten), die plattformspezifischen Anforderungen sowie die speziellen Marketing- und Promotion-Prozesse im Auge behalten.

 

3. Hybrid App-Entwicklung

Bei der App-Entwicklung einer sog. hybriden Applikation (kurz: Hybrid-App) können viele Vorteile von Web-App und nativer App kombiniert werden. Man spricht häufig auch von Cross-Platform Mobile Development. Hierbei wird der Content auf Basis von Web- Technologie (HMTL5 / JS) in einen nativen App-Container (z.B. Phonegap) eingebettet. Mit diesem Matching werden mehr Funktionalitäten und Ressourcen verfügbar, als in einem losgekoppelten Web-Browser. Bei der hybriden App-Entwicklung erhält man darüber Zugriff auf Systemressourcen des mobilen Gerätes. Die App-Entwicklung von Hybrid-Apps erfolgt plattformübergreifend. Beim App-Publishing durchlaufen sie aber auch entsprechende Prüfszenarien seitens der App-Store-Betreiber, genau wie es bei nativen Apps der Fall ist. Durch die web-nahe Entwicklungsumgebung können wechselnde Inhalte durch den Anbieter online direkt in die Hybrid-App eingespielt werden. Die Aufwände für die hybride App-Entwicklung sind durch die synergetischen Entwicklungskonzepte für Hybrid-Apps in der Regel geringer als bei nativen Apps, da die Plattformunterschiede der mobile Geräte durch die Nutzung verschiedener Frameworks kompensiert werden können.

4. Fazit

Der Überblick für verschiedene Ansätze zur App-Entwicklung sollte verdeutlicht haben, dass es je nach Anwendungsgebiet und Anforderungsspektrum verschiedene Herangehensweisen an das Thema App-Entwicklung gibt. Jede eingesetzte Technologie ist abhängig vom Use-Case zu evaluieren und bringt seine ganz eigenen Vor- und Nachteile mit. Die Wahl des richtigen Entwicklungsansatzes ist demnach immer von der Idee und den Zielen einer „App“ abhängig.

Entsprechend sollte bereits frühzeitig in einem ersten konzeptionellen Schritt und noch vor der eigentlichen App-Entwicklung evaluiert werden:

  1. Welche Anwendungsszenarien und Nutzer-Cases habe ich?
  2. Wie technisch anspruchsvoll ist die Umsetzung der Idee?
  3. Über welche Wege soll die Anwendung letztendlich zugänglich gemacht werden?
  4. Welches Budget steht dafür zur Verfügung?

Hierfür bietet sich eine professionell begleitete Anforderungs- und Konzeptionsphase für die App-Entwicklung an, in der unter Hilfestellung von Experten auf diese und weitere Fragen eingegangen werden kann. So findet sich für jede App-Idee und jedes Anwendungsgebiet letztlich die passende technologische Plattform. Diese Aufgabe sollte jeder professionelle technische Dienstleister forcieren, bevor er in eine transparente Budget und Projektplanung mit Ihnen einsteigt. 

 

Wir von SMA Development haben uns ganz im Sinne eines möglichst flexiblen Ansatzes zur App-Entwicklung auf die hybriden Apps spezialisiert. Durch die Kombination unseres eigenen Frameworks mit der Phonegap-Technologie bieten wir ein umfassendes Technologie-Stack für hybride Einsatzgebiete sowie Multi-Channel Anwendungen. Ob diese Technologie für das gewünschte Projekt die richtige ist, wird in den ersten Gesprächen mit dem Kunden bzw. in einer Konzeptionsphase evaluiert.  Für die App-Entwicklung von nativen Anwendungen können wir im Rahmen unseres Netzwerks Towerbyte e.G. sowie über die Kollegen vom “Mobile Cluster Mitteldeutschland” jederzeit auf die passenden Spezialisten zurückgreifen.