all about apps
all about apps
logo
  • Über uns
  • Full Service
    • Digital Consulting
    • Digital Schulungen
    • App Design und Konzept
    • App Entwicklung
    • Backend Entwicklung
    • Web Entwicklung
    • App Testing
    • App Publishing
    • Monitoring & Support
  • Referenzen
    • Finanz Apps
      • Banken Apps
      • Versicherungs-Apps
      • FinTech Apps
      • Custom Apps
    • Industrie Apps
      • IoT-Anwendungen
      • SAP Apps
      • Apps für Prozessoptimierung
      • Mobile ERP System
      • Safety & Compliance Apps
      • Custom Apps
    • Medizin Apps
      • Ärzte Apps
      • Patienten Apps
      • Gesundheits-Apps
      • Pharma apps
      • Custom Apps
    • Retail Apps
    • Start-up Apps
    • Custom Apps
  • Karriere
    • all about apps ACADEMY
    • Working @ all about apps
    • Unsere Teams
    • Find your Job
      • Lehre Applikationsentwicklung – Coding
      • Duales Studium
      • Projektmanager (m/w)
      • Android App Entwickler (m/w)
      • iOS App Entwickler (m/w)
      • Frontend JavaScript Application Entwickler (m/w)
      • Backend Entwickler/ DevOps Engineer (m/w)
  • Presse
  • Kontakt
  • Blog
  • de
  • en

Warum wir keine Cross-Plattform Entwickler sind

all about apps
22. January 2018 by all about apps in Tech

Seit der Entwicklung des Smartphones fragen viele Entwickler dieselbe Frage: Wie kann man mit EINER entwickelten App möglichst viele User und alle Plattformen erreichen?

Mehr als 11 Jahre ist es jetzt her, als Apple das erste iPhone auf den Markt brachte und einen weltweit verfügbaren Handelsplatz für mobile Applikationen anbot, anschließend folgte BlackBerry, dann Android und zu guter Letzt, das Windows Phone – für jede einzelne Plattform eine App zu entwickeln ist aufwändig und teuer – sicherlich gibt es doch eine günstigere Lösung, oder?

Wir bei all about apps, setzen seit sieben Jahren vorwiegend auf eine native Umsetzung von mobilen Applikationen. Unter nativer Entwicklung versteht man, dass die jeweils vom Hersteller empfohlenen Tools, Programmiersprachen und Konzepte verwendet bzw. angewendet werden. Die Hauptargumente, die für die native Umsetzung von Apps sprechen sind Qualität und Sicherheit. Alle Entwicklungen, die sich an die Vorgaben und Empfehlungen der Hersteller halten, profitieren von den automatischen Sicherheitsupdates und Optimierungen, die laufend bereitgestellt werden.

Dennoch beobachten wir aufmerksam alle Entwicklungen im Bereich Cross-Plattform Development und haben bereits umfangreiche Erfahrungen mit den diversen plattformübergreifenden Lösungen wie Cordova, Xamarin und React Native sammeln können.

Einige dieser Lösungen haben durchaus vorteilhafte Ansätze, wenn es um simple Applikationen geht, doch sobald es etwas anspruchsvoller wird, empfehlen wir unbedingt die native Umsetzung für Android und iOS. Weshalb und warum, erfährst du in diesem Blog-Post.

 

 

Was versteht man unter Cross-Plattform?

iOS Apps werden traditionell in Xcode mittels Objective-C oder in Swift geschrieben; Android Apps via Android Studio in Java oder Kotlin. Das sind jeweils die nativen Entwicklungsumgebungen und Programmiersprachen, die von den Systemherstellern standardmäßig unterstützt und empfohlen werden. Wenn du also eine App für beide Plattformen erstellen möchtest, benötigst du Erfahrung mit jeweils einem speziellen Tool und Kenntnisse in zwei Programmiersprachen.

Plattformübergreifende Lösungen zielen darauf ab, dieses Problem zu vereinfachen, indem ein einziges Tool mit nur einer Programmiersprache für mehrere Plattformen verwendet wird. Dabei unterscheidet man in zwei Kategorien:

  • Diejenigen, die eine Web-Technologie verwenden und von allen Plattformen unterstützt werden. Diese Kategorie von Apps werden mittels JavaScript erstellt und in einem Web-Container auf der jeweiligen Plattform ausgeführt. Zu den bekanntesten Vertretern zählen Cordova, Sencha und Ionic.
  • Die andere Kategorie wird oft als „native Cross-Plattform“ bezeichnet – weil der geschriebene Code automatisch in einen nativen Code übersetzt wird. Das hat den Vorteil, dass die App eine nahezu native Leistung erzielen kann, während die webbasierte Lösung, häufig mit Performance-Problemen zu kämpfen hat. Zu dieser Kategorie gehören „React Native“ und Xamarin.

 

Alle diese Cross-Plattform-Technologien sind ziemlich raffiniert. Nehmen wir einen Blick auf die Vorteile, der oben genannten Optionen:

„Shared Code“ 

Eine gemeinsame Codebasis für alle Plattformen. Dadurch wird der Arbeitsaufwand für die Erstellung der Apps vermindert, was die Kosten reduziert und zu einer kürzeren Time-to-launch führt.

Wartung 

Geteilter Code reduziert nicht nur die Kosten während der Entwicklungsphase, sondern erfordert im Wartungsfall auch nur einen Eingriff in der Code-Basis (Zumindest, ist das der Gedanke dahinter).

Eine Sprache für alles

Für mehrere Plattformen ist nur eine Sprache nötig. Normalerweise benötigt man gleich mehrere Sprachen wie eine Programmierer-, Skript- und Markup-Sprache für die Benutzeroberfläche.

Ein Team für alles

Das ist ein riesiger Vorteil. Denn ein einzelnes Team ist günstiger, erleichtert das Projektmanagement erheblich und arbeitet effizienter. Zudem wird alles Wissen innerhalb des Teams leichter weitergegeben.

Funktioniert auch im Web

Nahezu alle Cross-Plattform Lösungen (mit Ausnahme von Xamarin) können mit wenig Aufwand auch am Desktop Browser ausgeführt werden. Dies bietet alle oben genannten Vorteile auch für die Webversion deiner App.

 

 

Zu gut, um wahr zu sein

Im Laufe der Jahre haben wir viele dieser Cross-Plattform-Technologien beobachtet und teilweise für Demos und Prototypen eingesetzt. Doch bei vielen Technologien sind wir auf einige Haken gestoßen, die wirklich geschmerzt haben:

iOS und Android sind komplett verschieden

Alleine aus der neuropsychologischen Sicht, sind Nutzer von Android- und iOS unterschiedlich und sollten anders angesprochen werden. Jede Plattform hat ihre eigenen Richtlinien und Regeln. Man kann die eine Plattform nicht einfach per Copy-Paste in die andere einfügen.

Performance

Nativer Code ist unschlagbar. Der plattformübergreifende Code wird zwar in Bytecode oder einen nativen Maschinencode übersetzt und sollte theoretisch eine so gute Leistung wie der native Code erzielen, jedoch gibt es häufig Nachteile. Nehmen wir als Beispiel Xamarin: Jede App wird standardgemäß mit einer ganzen Bibliothek an Funktionen übersetzt – das spiegelt sich zwar nicht auf die Flüssigkeit der Animationen und der User Aktionen ab, jedoch sehr am Speicherverbrauch und der Größe, der App. Folglich können aus einer simplen „hello world“-App, schnell mal 16 MB werden.

Warum wir keine Cross-Plattform-Entwickler sind - all about apps

Auf der oberen Grafik ist klar zu erkennen, dass die Leistung eines web-basierten Ansatzes noch nicht mal annähernd an die eines Nativen herankommt. Und obwohl die Technik sich hier stetig verbessert hat, ist der Unterschied in der Reaktionsfähigkeit nicht nur messbar, sondern auch auffällig.

Kannst du dich an die alte und furchtbar langsame Facebook-App erinnern? Das waren alles Webansichten!

„Da das gesamte Rendering mithilfe von Web-Technologie erfolgt, können wir leider keine nativen Benutzererfahrungen anbieten.“ – Facebook

 

Bugs

Obwohl Xamarin ein durchdachtes Tool ist, ist es auch gleichzeitig eine wahre Bug-Brutstätte. Die komplexe Toolchain, erfordert einen komplexen Debugging-Prozess. Wann immer etwas schief geht, ist das Problem schwer zu lokalisieren, zu googeln oder zu wissen, ob der Fehler am Code selbst, oder an der Plattform liegt. Das kostet wertvolle Zeit, die meistens nicht einberechnet wurde.

Unausgereifte Tools

Die Tatsache, dass plattformübergreifende Toolchains weniger ausgereift sind als ihre nativen Konkurrenten, führt zu einer hohen Anzahl an Bugs und stört die Entwicklung erheblich. Mit den automatisierten Code-Checks, die Xcode und Android Lint ausführen, um vor Sicherheitsproblemen während der Entwicklung zu warnen, können plattformübergreifende Tools nicht mithalten. Das gilt auch für die IDEs, die helfen, Codes zu vervollständigen, zu beschleunigen und Bugs aufzuspüren. Native Plattformen haben hier einfach einen jahrelangen Vorsprung.

Langsame Integration neuer Plattform-Features

Xcode und Android Studio (basierend auf IntelliJ) haben sich bewährt und veröffentlichen immer neue Funktionen mit ihren Updates. Außerdem bieten sie den Entwicklern garantierten Zugriff auf 100% der Funktionen. Im Gegensatz zu nativen Plattformen, werden plattformübergreifende Tools aufgrund ihrer Art, bei jedem Update auf der Strecke bleiben. Xamarin ist zwar sehr bemüht Updates schnell zu implementieren, jedoch gibt es immer Probleme.

Verfügbarkeit von Bibliotheken

Viele plattformübergreifende Tools haben einen nützlichen Paketmanager, der ein breites Angebot von Plug-Ins und Bibliotheken zur Verfügung stellt. Eine besonders große Palette an Angeboten, bietet dabei der Paketmanager von Xamarin NuGet-Repository. Keines dieser Repositories ist mit der Anzahl der für native Plattformen verfügbaren Bibliotheken (zum Beispiel auf GitHub) vergleichbar. Zwar gibt es die Möglichkeit, vorhandene native Bibliotheken auf Xamarin zu portieren, ohne grundlegendes Wissen der nativen Plattform ist dies allerdings nur schwer zu realisieren.

Wartung

Bei einer sauberen Implementierung von nativen Apps verursacht die laufende Wartung oft nur sehr geringe Aufwände, da die Plattform-Hersteller bei den Updates der Betriebssysteme im frühzeitig informieren und passende Lösungsansätze bieten. Sicherheitskritische Updates werden ebenfalls von der Plattform abgedeckt und müssen nicht in der App durchgeführt werden. Bei Cross-Plattform-Apps hat man hingegen oft das Problem, dass Sicherheitslücken sehr spät oder gar nicht gemeldet werden. Zudem muss man als App Entwickler selbst dafür sorgen, dass sicherheitsrelevante Fehler behoben werden.

White Labeling

Dieser Begriff ist wichtig, wenn du deine App mit unterschiedlichen Brandings für verschiedene Clients bereitstellen willst. Die Features “Build Flavours” auf Android oder “Targets” auf iOS, unterstützen diese Funktionen, ohne größeren Probleme. Bis dato gibt es leider keine plattformübergreifenden Ansätze, die hier mit ihren nativen Konkurrenten mithalten können. Das bedeutet mehr kostbare Entwicklungszeiten und komplexere Implementierungen.

 

 

Fazit

Geht es in deinem Projekt darum, komplexe Anforderungen umzusetzen und möchtest du für deine User eine großartige User Experience kreieren, sollte die App native entwickelt werden. Auch was die Entwicklungen in der Zukunft betrifft, wird man aus jetziger Sicht mit nativen Lösungen auf der sicheren Seite stehen. Denn Apple und Google werden ihre Plattformen kontinuierlich verbessern und aufbauen. Zusätzlich profitieren Entwickler von der umfangreichen und weltweiten Unterstützung der nativen Communities.

Cross-Plattform-Ansätze sind dagegen vollständig von den jeweiligen Unternehmen abhängig, die sie finanzieren. Es gibt keine Garantie für Unterstützung und Zukunftspläne. Das bedeutet, dass deine ganze Arbeit mit dem nächsten iOS oder Android Update nicht mehr kompatibel sein könnte. Wenn das passiert, kann man nur noch hoffen, dass der plattformübergreifende Ansatz als Open-Source-Projekt an die Community weitergegeben wird.

 

10 Like!
Recommend
  • Facebook
  • Twitter
  • Google Plus
  • LinkedIN
  • Pinterest
Share
Tagged in

Kategorien

  • Allgemein
  • Press Release
  • Tech

AKTUELLE BEITRÄGE

Internet of Things & Smartphones: Lessons learned
Internet of Things & Smartphones: Lessons learned
14. February 2019
App-Animation: Unsere Learnings und Empfehlungen
App-Animation: Unsere Learnings und Empfehlungen
16. July 2018
Push Notifications: Diese Anbieter sind Privacy Shield zertifiziert
Push Notifications: Diese Anbieter sind Privacy Shield zertifiziert
28. June 2018

Facebook

ÜBER UNS

all about apps ist Qualitätsführer bei der Realisierung individueller mobiler Lösungen für Industrie, Finanzdienstleister, Handel und Medizin. Wir begleiten unsere Kunden von der Idee bis zum fertigen Produkt.

KONTAKT
  • Siebenbrunnengasse 17/ Top 3
    1050 Wien

  • +43 1 547 12 73

  • office@allaboutapps.at

NEWSLETTER ABO

Sharing ist caring! Wir sind hautnah dran an den neuesten Entwicklungen und Trends in der Mobile Branche. Dieses Wissen teilen wir wohldosiert und auf den Punkt gebracht. Abonnieren Sie jetzt unseren Newsletter und profitieren Sie von unseren Insights am Puls der Zeit.

BLOG POSTS
Internet of Things & Smartphones: Lessons learned
Internet of Things & Smartphones: Lessons learned
14. February 2019
App-Animation: Unsere Learnings und Empfehlungen
App-Animation: Unsere Learnings und Empfehlungen
16. July 2018
Copyright © 2018 aaa - all about apps GmbH. Alle Rechte vorbehalten. AGBs. Impressum. Sitemap.
all about apps
Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu.OKImpressum