App Entwicklung
Native, PWA, Hybrid und Cross-Plattform Apps einfach erklärt
Wer eine App entwickelt oder entwickeln lassen möchte wird bald auf Begriffe wie nativ, hybrid oder PWA stoßen. Das kann zu Beginn sehr verwirrend sein. In diesem Beitrag möchte ich einen kleinen Überblick geben auf welche Art und Weise Apps umgesetzt werden können.
Adrian Natter
Was ist eine native App?
Native Apps werden in der Programmiersprache entwickelt, auf der die jeweilige Plattform aufbaut. Das sind Objective-C (und Swift) für iOS und Java (und Kotlin) für Android. Das heißt konkret: Eine App muss für Android und Apple zweimal von Grund auf entwickelt werden. Klingt nach viel Aufwand? Ist es auch!
Warum werden dennoch heutzutage Apps nativ entwickelt? Der große Vorteil von nativen Apps ist die Performance. Es kann direkt auf die Hardware des Mobilgeräts zugegriffen werden. Wenn eine App also stark auf Funktionen wie Kamera, Bluetooth oder GPS zugreift, könnte es Sinn machen eine App nativ zu entwickeln. Außerdem werden grafikintensive Spiele meistens nativ entwickelt, da hier die Rechenleistung des Gerätes besser ausgenutzt werden kann.
Native Apps benötigen in der Regel mehrere Entwickler bzw. Entwickler-Teams, da für iOS und Android zwei grundverschiedene Entwicklungen durchgeführt werden. Dadurch werden die Aufwände erhöht und die Kosten für initiale Entwicklung und Wartung steigen rasant an. Unternehmen, die mit dem Gedanken spielen, eine App zu entwickeln, sollten sich daher gut überlegen, ob der Einsatz von nativen Apps der richtige Ansatz ist bzw. notwendig ist.
Was ist eine hybride App?
Hybride Apps werden mit Webtechnologien (HTML, JavaScript und CSS) erstellt. Die Apps laufen dann in einem Container der native Funktionen bereitstellt. Die App wird somit vom Betriebssystem abstrahiert und nur eine Codebasis ist nötig. Optisch unterscheidet sich eine hybride App meist kaum von einer nativen App. Der Endbenutzer merkt darum meistens keinen Unterschied zwischen hybriden und nativen Apps.
Eine Veröffentlichung im App Store ist wie bei einer nativen App ebenfalls möglich. Die Dateigröße der App ist aber im Vergleich etwas größer und die Benutzung von nativen Funktionen etwas eingeschränkter. Wiederum merken das schlussendlich die wenigsten Anwender sondern mehr die Entwickler der App.
Es gibt eine vielzahl von Frameworks die die Entwicklung von hybriden Apps vereinfachen. Unter anderem verwenden wir Ionic zur Entwicklung von Hybrid-Apps.
Was sind Progressive Web Apps (PWA)?
Eine Progressive Web App (PWA) ist eine Webanwendung die Features von nativen Apps bereitstellt. Sie sind somit eine Mischung aus Webanwendung und nativer App. Der größte Unterschied zu anderen Apps ist, dass PWAs nicht im App Store veröffentlicht werden können (bzw. nur durch Umwege)!
Eine PWA läuft nämlich im Browser des jeweiligen Geräts und wird, wie eine Webseite veröffentlicht. Benutzer haben beim Aufrufen der Webseite im Browser die Möglichkeit die App auf ihrem Gerät zu installieren. Vorteil: Eine Webseite kann als PWA entwickelt werden und dem Benutzer als App zur Verfügung gestellt werden. Zwei Fliegen mit einer Klatsche: Website und App in einem.
Wie bereits erwähnt können PWAs auf native Funktionen wie beispielsweise Push-Notification zugreifen. Zudem sind PWAs nach der Installation offlinefähig. Das Problem bei der Sache ist Apple. Auf iOS Geräten können z.B. keine Push-Notifications versendet werden. Bei Android und Windows funktioniert es einwandfrei. Der Vollständigkeit halber muss auch erwähnt werden, dass eine PWA nicht auf alle nativen Funktionen des Geräts zugreifen kann.
Technisch werden solche Apps mit Web-Technologien umgesetzt. Bei uns ist primär das Framework Angular im Einsatz. Mit Angular können unter anderem auch skalierbare Webanwendungen entwickelt werden. Mehr dazu in unserem Beitrag Enterprise Angular Apps.
Was ist eine Cross-Plattform-App?
Mein persönlicher Favorit sind Cross-Plattform-Apps. Sie verbinden die Vorteile von hybriden und nativen Apps. Es ist möglich mit nur einer Codebasis für beide Plattformen zu entwickeln, ohne dass es zu starken Einbußen bei der Performance kommt.
Da Smartphones in den letzten Jahren immer leistungsfähiger geworden sind fühlen sich Cross-Plattform-Apps so flüssig an wie native Apps. Zusätzlich können native Features wie Push-Notification und GPS analog wie bei nativen Apps verwendet werden.
Berühmte Cross-Plattform Frameworks sind Xamarin, React Native oder Flutter. Mit Flutter haben wir schon sehr gute Erfahrungen gesammelt und können es wärmstes weiterempfehlen. Mehr über Flutter findest du in unserem Beitrag: Flutter – Das Werkzeug für native Apps in Rekordzeit
Fazit
Wie so oft ist es nicht Schwarz-Weiß. Je nach Anwendungsfall gibt es unterschiedliche Möglichkeiten eine App umzusetzen. Generell muss man sich folgende Frage stellen:
- Wie abhängig ist die App von der Hardware des Geräts?
- Kann das Projekt auch als Webanwendung umgesetzt werden?
- Ist eine Veröffentlichung im App bzw. Google Play-Store gewünscht/notwendig? (Allein bei dieser Frage gibt es zahlreiche Argumente dafür und dagegen).
Es gibt Anwendungsbereiche, die eine native Entwicklung erfordern. Dennoch sprechen viele Argumente (immer mehr) für die Entwicklung von Cross-Plattform-Apps. Wer voll auf Performance setzt kommt früher oder später um eine native Entwicklung nicht herum. Wer andererseits eine App möchte, die plattformunabhängig und einen schnellen Proof-of-Concept der App benötigt, fährt mit Cross-Plattform-Apps oder hybriden Apps besser.
Wenn du wissen möchtest, welches App Format sich für dein Projekt eignet kannst du uns gerne kontaktieren. Wir helfen dir gerne weiter!
Adrian Natter