Bild Android und Apple

Use Cases: Native Apps vs. Cross-Platform Apps [Meetup Q&A]

Lesezeit
4 ​​min

Bei unserem Meetup am 07.10.2021 zum Vergleich von Native und Cross-Platform Apps blieben aus Zeitgründen einige Fragen unbeantwortet. Wir haben sie gesammelt und von unseren Experten, Andreas Bauer und Oliver Bayer, beantworten lassen:

Q: Wie ist eure Erfahrung, eine Drittanbieter-Library (OpenSource oder proprietär) von Android oder iOS in Flutter und Co zu verwenden – also beispielsweise iOS Mapbox SDK in Flutter oder Xamarin zu nutzen?

A: Unsere Erfahrungen variieren sehr stark. Bei Libraries mit nativem Anteil ist immer darauf zu achten, dass auch jede Plattform ausreichend vollständig unterstützt wird. Dies ist gerade bei Projekten mit einer geringen Anzahl von Unterstützer:innen nicht immer gegeben. Wohingegen gerade bei Flutter Libraries mit dem Siegel „Flutter Favorite” davon ausgegangen werden kann, dass diese für den operativen Einsatz ausreichend stabil sind.

Q: Merken denn die User beim Kunden den Unterschied in der Benutzung? Bekommt ihr da Feedback?

A: Die Funktionalität steht oft im Vordergrund. Viele Nutzer:innen merken es erstmal nicht, da sie nicht wissen, wo die Unterschiede liegen. Immer vorausgesetzt, die Qualität der Umsetzung stimmt. Implementiert das Framework ein eigenes Rendering mit z. B. OpenGL wie bei Flutter/ReactNative, lassen sich auch so sehr reaktive UIs bauen. Dies wird unter anderem auch dadurch erreicht, dass bei der Umsetzung auf eine stimmige User Experience geachtet wird. Werden beispielsweise verschiedene Konzepte vermischt, wie angepasste Dialoge und Systemdialoge oder plattformspezifische Navigation und Framework-Navigation, entsteht unterbewusst eine höhere geistige Anstrengung bei der Benutzung der App.

Q: Habt Ihr auch Frameworks wie Cordova/Capacitor evaluiert, die Cross-Platform auf PWA-Basis ermöglichen?

A: Auch Capacitor/Cordova Projekte werden bei inovex umgesetzt. Die Entscheidungskriterien sind vielfältig wie beispielsweise der Schwerpunkt des Projekts, die Wünsche des Kunden und auch die Teamzusammensetzung spielen eine starke Rolle.

Q: Was hatten die anderen 8 Teammitglieder bei Südzucker für Aufgaben?

A: Die Projektanforderung bezog sich nicht rein auf App-Entwicklung sondern umfasste ein Projektteam für die Bereiche Design, Backend, Web sowie agiles Projektmanagement.

Q: Welche Vorteile haben native Apps gegenüber einer Web App?

A: APIs sind früher verfügbar, bzw. stehen nicht alle APIs des Systems auch dem Browser und somit der WebApp zur Verfügung. Je nach Anwendungsfall sind die Einschränkungen sehr ausgeprägt (siehe hierzu auch https://whatwebcando.today/). Spielen weitere Plattformen wie z. B. bei der Anbindung an eine Smartwatch oder TV (AppleTV, Chromecast, AndroidTV) eine Rolle, können hier oftmals keine WebApps zum Einsatz kommen.

Q: Wie steht ihr zu „React Native” und warum habt ihr euch für „Flutter” entschieden?

A: React Native entspringt aus der Web-Welt und spricht daher in erster Linie Personen mit Background aus der Web-Entwicklung an. Als Native-Entwickler:in sind die Konzepte von Dart/Flutter leichter zu übertragen.

Q: Wie bewertet ihr die Developer Experience von Flutter verglichen mit nativer Entwicklung?

A: Flutter bringt eine sehr gute aktuell gehaltene Dokumentation mit sich – sowohl in schriftlicher als auch visueller Form. Durch die Wahl aus zwei Entwicklungsumgebungen, Visual Studio Code und Android Studio, fällt der Einstieg leicht. Aufgrund des JIT Compiler und dem damit verbundenen HotReload entstehen kaum Wartezeiten während der Entwicklung. Schwieriger gestaltet sich die Integration von nativen Funktionen durch den Wechsel zwischen Flutter und den darunter liegenden Plattformen.

Q: Glaubt ihr, dass sämtliche plattformabhängige Entwicklung in der Zukunft von PWAs abgelöst wird?

A: Ein Ablösung sehen wir derzeit nicht, eventuell einen Trend zu mehr Cross-Platform. Die plattformabhängige Entwicklung wird weiterhin ihren Vorsprung gegenüber PWAs behalten, in Bezug auf Integration von plattformspezifischen Komponenten.

Q: Wie gut funktioniert das TDD mit Flutter bzw. wie gut ist die Testumgebung (Junit, Instrumentation- und Integrationstests)? 

A: Automatisiertes Testen wird sehr gut unterstützt. Sowohl Unit als auch UI-Tests lassen sich problemlos implementieren. Besonders hervorheben kann man hierbei die Unabhängigkeit der UI-Tests von Geräten, wodurch diese sehr performant und stabil ausgeführt werden. Übliche Metriken wie Code Coverage lassen sich in VSCode beispielsweise durch Plugins erfassen.

Q: Wie wichtig für eure Entscheidung war die Open Source / Contribution-Möglichkeit bei der Auswahl des Cross-Platform UI-Frameworks?  

A: Eine große Rolle spielt die Größe und Aktivität der Community. Durch Open Source hat man die Möglichkeit, selbst zur Behebung von Fehlern beizutragen und dadurch die Plattform zu verbessern. Dies hat sich in unseren Projekten bereits als sehr wertvoll erwiesen.

Hat dir der Beitrag gefallen?

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ähnliche Artikel