WorkHard / PlayHard .zone

STARTUP BLOG

Alles rund um Startups und Gründung sowie Tech und Coding!
Entrepreneur + Nerd = Entreprenerd

Native,Hybride, Web-App Entwicklung

Native App, Hybride- oder doch Web App? Ich zeige dir was du brauchst!

Andreas Klassen

6 Februar, 2019

Andreas Klassen, Unternehmer und Nerd, Entreprenerd

Mit der zunehmenden Beliebtheit von Smartphones nutzen auch immer mehr Menschen mobile Apps. Fast jeder nutzt die kleinen nützlichen Dienste und Anwendungen tagtäglich! Sei es zum Shoppen, Spielen, Social-Media, Streamen oder Nachrichten schreiben. Kaum ein anderes Medium bindet den User so, wie es das Smartphone mit seinen Apps tut!
Nicht nur beim User, aber auch bei Unternehmen sind Apps und die Entwicklung dieser, zur Pflicht geworden.

Die Komplexität der App Entwicklung wird allerdings sehr oft maßlos unterschätzt und am Ende hat man eine immens überteuerte App, die den Nutzer in keinster Weise zufrieden stellt! UI, UX, nativ, Cross-Plattform etc. sind Begriffe die bei den Corporates zu diesem Thema rumgeistern und für Verwirrung sorgen.

Der Teufel steckt bekanntermaßen im Detail und die Entscheidungen des Anfangs getroffen werden, haben die größten Auswirkungen auf den Outcome! Deswegen konzentriert sich dieser Artikel auf die grundlegende Technologie der App. Und befasst sich mit dem Vergleich sowie den Vor- und Nachteilen von Nativen, Cross-Plattform und hybriden Apps!

Native Apps

Native Apps gehören zu der Königsklasse der Apps. Höchste Performance und keinerlei limitierende Faktoren können für eine sehr hohe Qualität sorgen. Sie werden mit nativen Programmiersprachen des Betriebssystems programmiert. Bei Android ist das Java bzw Kotlin, bei iOS ist das Objective-C bzw Swift. Der Zugriff auf Hardwarekomponenten wie Bluetooth, interner Speicher ist auch sehr elegant über die Betriebssysteme gelöst!

Wenn man eine App haben will, die höchsten Ansprüchen gerecht werden soll, sowohl was UI, UX, Performance und Security angeht, dann sollte man die App nativ entwickeln. Wer einen Ferrari fahren will, der sollte auch das nötige Kleingeld dafür haben. Da wie Eingehens schon erwähnt, die nativen Apps zu der Königsklasse gehören, muss man hier oft tief in die Tasche greifen.

Dies ist dem Umstand geschuldet, das einerseits die Entwickler teuer sind und andererseits weil man meiste zwei separate Apps entwickeln muss (iOS/Android). Jede Funktion und jeder Button muss quasi doppelt programmiert werden, dadurch das man keine shared Codebasis hat, kann man keine Synergien nutzen und muss doppelte Manpower einsetzen. Nicht nur auf der Programmierseite muss man doppelte Arbeit leiste, auch die UI und UX Spezialisten müssen die plattformspezifischen Bedienungsparadigmen in das Design und "Look and Feel" anpassen.

via GIPHY

Vorteile von Nativen Apps

  • Zukunftssichere Technologie. Die nativen Ansätze sind nicht overhypte kurzlebige Trends! Wenn Google und Apple überleben wollen, werden Sie die nativen Sprachen noch lange supporten
  • Obwohl App Entwickler sehr teuer sein können, ist das Fachkräfte Angebot gut. Swift und Android/Kotlin sind keine all zu exotischen Programmiersprachen
  • Standardisierte Implementierung einiger Komponenten und stabiles Environment
  • sehr hohe Qualität und Performance der App möglich
  • wenig limitierende Faktoren für Entwicklung und Design
  • Unabhängigkeit von Frameworks und der Weiterentwicklung dieser
  • Einarbeitung neuer Entwickler gut möglich
  • Offline Nutzung möglich
  • hochspezialisierte Programmierer können auch in anderen Bereichen eingesetzt werden
  • höchste Sicherheitsstandards
  • direkter Zugriff auf Updates und neusten API's
  • grafisch hochauflösende und fordernde Apps möglich
  • empfohlene Technologie von den Herstellern

Nachteile von Nativen Apps

  • "Hoher" Kostenaufwand
  • für jedes Betriebssystem separater Entwicklungsprozess
  • Aufwendiger Reviewprozess
  • Doppeltes Testing, Design, Manpower kreieren großen Overhead
  • Zeitlicher Einfluss kann durch doppelte Entwicklung steigen
  • Maintenance kann Kostenfalle werden
  • Keine shared Codebasis
  • Einheitliches Design zwischen iOS und Android nicht gern gesehen
  • Direkt doppelt so viele Fachleute notwendig (iOS/Android)

via GIPHY

Cross-Plattform

Entwicklung für beide Betriebssysteme mit nur einem Code! Man kann Crossplattform Entwicklung mit dem Schweizer Taschenmesser vergleichen! Eine einzige Codebasis die mit Xamarin oder React Native entwickelt wird, meistens also C# oder Javascript. Damit beide Apps nicht die kompletten Design-Guidelines der Hersteller ignorieren, kann man dabei auch native und spezifische Elemente der Betriebssysteme ansprechen und nutzen.

Der große Vorteil liegt klar auf der Hand. Man muss nicht direkt zwei App Entwickler für die jeweiligen Betriebssystem haben, sondern kann das ganze mit einem Softwareentwickler bewerkstelligen. Einen Entwickler der C# kann, findet man auf dem JobMarkt auch leichter. Dienstleister die ein App Cross-Plattform entwickeln, können hier auch günstiger sein. Dadurch das die Businesslogik nur einmal implementiert wurde, ist auch im Punkto Testing eine erleichterung bemerkbar. Zusätzlich fühlt sich die App nativ und hochwertig an, wenn das Design gut umgesetzt wurde.

Hört sich doch super an?! Die Medaille hat bekanntlich zwei Seiten. Die App kann von der Performance nicht komplett mit einer nativen App mithalten! Sie wird sich besser als eine Hybride oder Web App anfühlen und laufen, aber an eine native wird sich einfahc nicht rankommen! Nicht nur die Performance, auch muss die App durch das Framework viel Balast mit sich rumschleppen, eine deutlich erhöhte Größe der App ist dabei die Folge. Simple Apps die reinen Werbecharakter haben, können so schnell mal 50MB und mehr in Anspruch nehmen, bei komplexeren Apps kann man sich das Bild dann selbst ausmalen.

via GIPHY

Vorteile von Cross-Plattformen

  • eventuelle Kostenvorteile durch weniger Entwickler
  • Offline Nutzung möglich
  • Zeitersparnis durch schnelleres Entwickeln an beiden Apps gleichzeitig mit der hälfte der Personen
  • Eine einzige Codebasis
  • Hardware Zugriff voll gegeben
  • UI kann voll Nativ eingebaut werden

Nachteile

  • Abhängigkeit vom Framework Entwickler birgt ein großes Risiko und es entsteht eine Abhängigkeit bezüglich Updates und Bereitstellung neuer Betriebssystem Features
  • Bugfixing und Fehlerfindung kann aufwendiger sein durch die zusätzlich Schnittstelle
  • spezielleres Know-How für beide Betriebssysteme und Plattformen muss vorhanden sein, am besten in einer einzigen Person vereint! #eierlegendeWollMilchSau
  • aufwendiger Reviewprozess
  • einheitliches Design für beide Plattformen möglich
  • optionale Lizenzkosten für das Entwickeln mit Frameworks
  • Performance einbußen durch zusätzliche Codeschicht und Aufblähung der Appgröße nach Compilieren
  • Nicht der komplette Code kann geteilt werden, ein bestimmter Anteil bleibt Plattformspezifisch und nativ
  • Nicht immer sind alle nativen Features verfügbar, Abhängig von Framework und Plugins

Hybride Apps / Web App

Hybride Apps werden mit nativem Code geschrieben und an beliebigen Stellen um HTML5-Elemente ergänzt. So ergibt sich eine ideale Mischung aus nativen und webbasierten Elementen, eine Fusion beider Welten. Der native Code sorgt dafür, dass die App auf Gerätehardware wie Kamera,GPS und Co. zugreifen kann und nutzt Vorteile der einzelnen Plattformen. Die web-basierten Komponenten bieten den Vorteil das man “on-the-fly” Änderungen vornehmen kann, auf bereits implementierte Webinhalte zurückgreifen kann und besseren Zugang zu Personal hat.

Die enorme flexibilität die durch die Webbasis ermöglicht wird, ist auch ein laster, denn Offline können diese Inhalte nur begrenzt genutzt werden! Auch “spürt” der Nutzer direkt das es keine Native App ist, es fühlt sich nicht so responsive und “smooth” an.
Hybride und Web Apps sind sehr gut geeignet wenn die Priorität nicht all zu Hoch ist, genauso wie das Budget und die App als beiwerk fungieren soll!

Hybride- als auch Web-Apps werden mit Frameworks wie Cordova und Ionic entwickelt werden. Das Know-How der Entwickler muss nicht so tief in den spezifischen Plattformen sein, kenntnisse in den gängigen Web-technologien sind wichtiger! Kosteneinsparungen gibt es wie bereits erwähnt durch eine Codebasis, die Webbasierten Layouts und geringere Testing aufwände!

via GIPHY

Vorteile von Hybriden Apps

  • eventuelle Kosteneinsparungen möglich
  • eine Codebasis
  • noch schnellere Entwicklung möglich
  • Entwickler können leichter gefunden werden durch den webbasierten Anteil und den größeren Markt
  • Kostengünstige Variante eine App zu entwickeln
  • Gängige Libraries wie Angular und React können genutzt werden und Entwicklung beschleunigen und verbessern
  • kleinere Änderungen in der App können live vorgenommen werden, ohne die Notwendigkeit eines Updates und Store Approvals

Nachteile von Hybriden Apps

  • diversifiziertes Team notwendig, Web & App Entwickler
  • nicht zwingend offline Nutzbar
  • Sicherheitsrisiken durch den webbasierten Anteil gegeben
  • Design und User-Experience kann drunter leiden, da es sich nicht unbedingt „nativ“ anfühlt
  • nicht zwingend direkter Zugriff auf Updates und neusten API's
  • aufwendiger Reviewprozess

PWA / Mobile Webseite


via GIPHY

Die wohl einfachste Art eine App entwickeln zu lassen, ist wohl eine Mobile Webseite für die Mobile ansicht anzupassen und eine PWA(Progressive Web App) daraus zu machen! Manche titulieren diese Art der Entwicklung als Zukunft, ich würde es momentan noch als die Schummel Version von Apps nennen.

Sehr charmant dabei ist, das man keinerlei App Entwickler braucht, nur die eigene Webseite anpassen muss. Mit Personal hat man keine Probleme, zur Not kann es auch ein Dienstleister sehr kostengünstig umsetzen! Mit Testing für verschiedene Versionen etc hat man ebenfalls keine Probleme, zusätzlich umgeht man noch den Review Prozess und die Richtlinien in den einzelnen App Stores! Also wirklich sehr viele sehr positive Vorteile!

Zugriff auf die Hardwarekomponenten des Endgerätes hat man seit dem es PWA’s gibt erst sehr sehr begrenzt! Funklöcher die wir in Deutschland noch genug haben, sind auch kein komplett unlösbares Problem mehr. Die Offline Funktionalität ist seit 1 bis 2 Jahren nur bedingt umsetzbar, aber es ist möglich! Der Nutzer wird diese Art der Apps in dem aktuellen Stand der Technik nicht als wirkliche Apps akzeptieren, da hier merklich das Gefühl einer Webseite und keiner App rüber kommt. Erst seit dem es PWA’s hat man eine Möglichkeit mit einem Shortcut bzw Icon auf den Hauptbildschirm des Benutzers zu gelangen, vorher war eine Nutzung nur über den Browser und der bekannten URL möglich.

Eine mobile Webseite mit Apps zu vergleichen ist so, als würde man eine das örtliche Schwimmbad mit einem Urlaub auf den Malediven vergleichen, schwimmen und sich sonnen kann man an beiden Orten, das wären dann aber auch alle Gemeinsamkeiten!

Vorteile von Mobilen Webseiten

  • sehr gutes Fachkräfte Angebot und Web Entwickler günstiger als App Entwickler
  • sehr gutes Onboarding möglich
  • kostengünstige und schnelle Entwicklung möglich
  • Webseiten Entwickler kann schnelle auf eine PWA / Web App umswitchen
  • eine Codebasis für beide Betriebssysteme
  • sehr gutes und schnelles Bugfixing / Testing -> da nur Browser Testing notwendig ist
  • teilweise Unabhängigkeit von App Stores und Reviewprozessen
  • Liveänderungen möglich
  • sehr schnelle Entwicklung möglich

Nachteile von PWA's

  • Offline Nutzung „nicht möglich“ bzw nur sehr begrentzt
  • Funktionsumfang begrenzt auf Oberflächen und Informationen
  • Kein/kaum Zugriff auf Hardware komponenten wie Kamera, Bluetooth etc Aussicht für Zukunft aber positiv
  • Web-Usability und schlechtes "Look and Feel" da es sich nicht nativ anfühlt sondern eher wie Browsen

Die Arten im Vergleich

Nativ Cross-Plattform Hybrid PWA
Kosten €€€€ €€€ €€
Hardwarekomponente ★★★★ ★★★ ★★
Performance ★★★★ ★★★ ★★
Offline-Fähigkeit ja ja teils teils
Look and Feel ★★★★ ★★★ ★★
Plattformunabhängigkeit - ★★ ★★★ ★★★★


via GIPHY

Welche App ist für mich die Richtige?

Nun hab ich einen Überblick über die modernen Apps und deren Bauweisen gegeben. Jede Art der Entwicklung hat definitiv seine Daseinsberechtigung, eine goldene Regel gibt es nicht, was eine pauschale Aussage, welche Art nun die richtige für dich ist, kann man nicht so leicht treffen.

Es gibt Fälle, die für eine native Entwicklung sprechen, aber genauso werden sich Anwendungsbeispiele finden, die eher für eine Web-App sprechen. Je komplexer und größer das Projekt, desto eher macht der native Ansatz Sinn. Wer hingegen eine App möchte, die plattformunabhängig ist und über eher wenig Budget und Know-How verfügt, ist mit einer PWA besser beraten.

Es gibt viele Punkte die man in eine finale Entscheidung mit einfließen lassen muss. Hier ein paar Beispiele:

  • Wie hoch ist das Budget?
  • Welchen Zweck verfolgt die App?
  • Wie professionell will ich auftreten?
  • Welche Ansprüche haben meine User an eine App?
  • Wie weit bin ich bereit die App noch in mehreren Jahren anzubieten?
  • Kann ich Synergien aus dem Unternehmen nutzen?
  • Wie ist mein internen Tech-Stack?
  • Habe ich Entwickler In-House die es vielleicht umsetzen könnten?
  • Muss ich die App Offline nutzen können?
  • Wie viele Hardware Komponenten brauche ich für die App?
  • Habe ich Erfahrung mit der App Entwicklung?
  • Wie wichtig ist die App für mein Business?

Es gibt keine 100%-ige Antwort darauf. Aber gerne stehe ich mit meinem Rat zur Verfügung! Schreib mir eine Mail oder Ruf mich bei Fragen an! Ich helfe und berate gern, denn es ist mein persönliches Anliegen, das wir mehr von guten Apps und zufriedenen Unternehmern auf diesem Planeten haben.

via GIPHY