13 Minuten Lesezeit Mit Insights von Mo Ramezanpoor Mobile Architect and Capability Lead london@zuhlke.com Im Internet kursieren bereits zahlreiche Inhalte über die Wahl von Mobile-Technologie. In diesem Artikel möchten wir keine bereits bekannten Fakten wiederholen. Vielmehr möchten wir unsere Erkenntnisse aus jahrelanger Erfahrung in der Entwicklung von Apps für Finanzdienstleister teilen. Es gibt keine einfachen Pro-und-Kontra-Listen in diesem Artikel. Stattdessen erläutern wir technische und organisatorische Themen, die wir als besonders wirkungsvoll erachten. Anschließend werden wir unsere Empfehlungen für Technologien, die sich für unterschiedliche Anwendungsfälle eignen, vorstellen. Warum gibt es keine Vergleichstabellen? Wenn Sie sich bereits mit den Merkmalen mobiler Technologien beschäftigt haben, sind Sie vielleicht schon auf folgende Aussagen gestoßen: Native Apps sind sicherer Plattformübergreifende Apps lassen sich schneller implementieren. Mit hybriden Apps können Sie denselben Code im Web und auf mobilen Geräten nutzen. Diese Aussagen treffen im Allgemeinen zu. Und gerade ihre Einfachheit ist wertvoll, da sie Ihnen sehr schnell einen Eindruck von den verschiedenen Technologien vermitteln kann. Aus näherer Betrachtung sollten wir jedoch immer hinzufügen, dass es auf den Kontext ankommt. Es ist sehr wahrscheinlich, dass sich eine Kamera-App wie Halide nicht schneller als übergreifende Plattform implementieren lässt. Und wenn Sie eine Einkaufslisten-App schreiben, kann jede mobile Technologie sicher genug sein, ohne viel Aufwand. Wir sehen oft, dass das Vertrauen in diese allgemeinen Aussagen zu einer Substitution von Attributionsansprüchen führt: Die Frage, die Unternehmen wirklich interessiert, ist: „Welche Technologie ist die beste für uns?“ Aber diese Frage ist nicht leicht zu beantworten. Unbewusst werden stattdessen einfachere Fragen gestellt: „Mit welcher Technologie können wir noch mehr Code teilen?“ oder „Welche Technologie hat die übersichtlichste Benutzeroberfläche?“ Deshalb betrachten wir bei der Wahl einer Technologie zuerst die Anforderungen näher und prüfen dann, welche Technologie besser passt. Konkret untersuchen wir in diesem Artikel, wie sich diese Anforderungen auf die vergleichende Kapitalrendite (ROI) verschiedener Technologien auswirken. Wie können sich Anforderungen auf die vergleichenden Entwicklungskosten auswirken? Das Kernthema der Wahl mobiler Technologien ist die Wiederverwendung von Code. Wenn Sie eine App nativ entwickeln, können Sie sicher sein, dass Sie den größtmöglichen Nutzen aus jeder Plattform ziehen, auf der sie ausgeführt wird. Der Nachteil ist, dass Sie zwei völlig getrennte Codebasen haben. Alle plattformübergreifenden oder hybriden Technologien sind so ausgelegt, dass Code wiederverwendet werden kann (oder dass es „eine Codebasis“ gibt). Solange Sie „denselben Code“ schreiben, wird geteilter Code die Kosteneffizienz erhöhen. Aber in einigen Fällen kann es jedoch sein, dass Sie am Ende mehr Code oder komplexeren Code haben. Grafik: Wie verschiedene Technologien das Teilen ermöglichen. Die zentrale Frage, die es zu beantworten gilt, ist, welche Option zu einer Codebasis führt, die angesichts der Anforderungen effizienter zu entwickeln und zu pflegen ist. Verwendung der Plattform-API Es überrascht nicht, dass alle Plattformfunktionen über native Tools zur Verfügung gestellt werden. Nicht-native Technologien bieten gleichwertige Funktionen für gängige Anwendungsfälle, bei denen der fehlende direkte Zugriff auf die Plattform-API kein Problem darstellt. Aber keine nicht-native Technologie bietet eine vollständige Abdeckung. Wenn Sie eine Funktionalität benötigen, die das Framework Ihrer Wahl nicht abdeckt, muss die App nativen Code für jede Plattform schreiben, plus weiteren Code zur „Überbrückung“ der nativen Funktionalität für die Verwendung innerhalb des nicht-nativen Frameworks. Dies bedeutet nicht nur, dass Sie effektiv drei Codebasen anstatt einer haben, sondern auch, dass es sich um komplexeren Code handelt, der schwieriger zu entwickeln und zu testen ist, da er in zwei oder möglicherweise drei verschiedenen Sprachen geschrieben ist und in einer Vielzahl von Umgebungen getestet werden sollte. Dasselbe Argument gilt übrigens auch für die Integration von Dienstleistungen Dritter. Einige bieten möglicherweise SDKs für gängige Frameworks wie Flutter und React Native an, aber grundsätzlich konzentrieren sich die SDKs zunächst auf ihre native API. Beispiele (Postausgang): Sichere Speicher- und biometrische APIs sollten aus nativem Code überbrückt werden. Die Integration von Siri und Widgets auf iOS muss in Swift erfolgen. Web-Ansichten, die von Hybrid-Apps verwendet werden, können nicht im Hintergrund ausgeführt werden, weshalb eine benutzerdefinierte Lösung erforderlich ist. Replikation der Plattformfunktionalität Insbesondere wenn es darum geht, eine einzige Codebasis für Benutzeroberflächen zu haben, können nicht-native Apps etwas bieten, das wie eine native Benutzeroberfläche aussieht, in Wirklichkeit aber eine Replikation ist. Bei der Verwendung von Cordova/PhoneGap liegt es ganz bei der App, die System-Benutzeroberfläche zu replizieren. Frameworks wie Flutter und Ionic bieten ein UI-Toolkit für die App-Nutzung, das in vielen Fällen funktioniert. Aber genau wie im obigen Fall decken sie nicht alles ab, was die native Benutzeroberfläche kann, so dass Sie möglicherweise noch etwas Code dafür schreiben müssen. Unabhängig davon, ob sich dieser Code im Framework oder in dem von Ihnen geschriebenen Code befindet, sollten Sie bedenken, dass sich iOS- und Android-Benutzeroberfläche jedes Jahr ändern, was den Pflegeaufwand für die Codebasis erhöht. Bild: Ein Live-Zahlungssystem, das noch dem alten iOS-Look entspricht. Unterschiedliche Plattformen in Einklang bringen Auch wenn es offensichtlich ist: Unterschiedliche Plattformen haben unterschiedliche Eigenschaften. Selbst ähnliche Funktionen können je nach Plattform unterschiedlich ausgeführt werden. Beim Schreiben von Code, der für jeden Plattformtyp bestimmt ist, müssen Sie nur Szenarien berücksichtigen, die auf dieser Plattform vorkommen können. Shared Code hingegen kann komplexer sein, da er für alle Plattformen geeignet ist. Auswirkungen von spezifischen Banking-Anforderungen auf die Entwicklungskosten Wir haben drei Möglichkeiten untersucht, wie sich die relativen Kosten einer Technologie im Vergleich zu einer anderen ändern können. Wir können sehen, dass, wenn die Anforderungen in einem bestimmten Bereich (wie z. B. Security) gelockert werden, Code-Sharing viel Wert hat. Wenn wir strengere Anforderungen stellen, nimmt dieser Vorteil tendenziell ab. Die Kunst besteht darin, genau zu erkennen, ab welchem Punkt eine Technologie besser geeignet ist als eine andere. In diesem Abschnitt betrachten wir einige gängige Anforderungen im Bereich Finanzdienstleistungen und schauen an, wie sie sich auf das Gleichgewicht auswirken. Sicherheit Sicherheit Mobile-Sicherheitsfunktionen müssen oft auf die Plattform-API zugreifen, die nicht in nicht-native Entwicklungs-Frameworks integriert sind. Dies erhöht sowohl die Kosten als auch das Risiko von Fehlern in einem sensiblen Teil der Anwendung. Bei einigen FSI-Apps ist es nicht so schwierig, die Wahl der Technologie zu beeinflussen. Das ist zum Beispiel bei einem Portal der Fall, das die Performance von Pensionskassen abbildet. Aber Sicherheit ist entscheidend bei Banking-Apps oder Apps, die Zahlungsdienste anbieten. In diesem Fall kann eine native Implementierung von Vorteil sein. In Europa müssen praktisch alle Banking-Apps mit der Zahlungsdiensterichtlinie PSD2 oder einer gleichwertigen Verordnung konform sein. Die PSD2-Anforderungen können auf unterschiedliche Weise erfüllt werden, aber praktisch alle modernen Lösungskonzepte haben drei Sicherheitsmaßnahmen gemeinsam: Laufzeitsicherheit: Verwendung einer Kombination von Lösungen (z. B. RASP) zur Sicherung der Umgebung, in der die App ausgeführt wird: Können wir Anzeichen dafür erkennen, dass das Mobilgerät oder der App-Code manipuliert wurde? Gerätebindung: Bei der Ersteinrichtung erstellen Apps Anmeldedaten, die auf spezieller Hardware auf Mobiltelefonen gespeichert werden und kryptografische Garantien dafür bieten können, dass eine zukünftige Anfrage von diesem bestimmten Telefon stammt. Anwesenheitsprüfung des Benutzers: Apps verwenden biometrische Prüfungen (wie Face ID), um einen kryptografischen Nachweis über die Anwesenheit des Benutzers zu erstellen, wenn dieser etwas über die App ausführt. Das übergeordnete Konzept ist zwar auf allen Plattformen gleich, die Details der Umsetzung variieren jedoch. Unabhängig von der allgemeinen Technologieauswahl müssen diese Funktionen daher für jede Plattform spezifisch implementiert werden. Obwohl es möglich ist, in allen Frameworks die gleichen Sicherheitsfunktionen zu erreichen, kann die Implementierung mit plattformübergreifenden Technologien kostspieliger sein. In Bezug auf die Laufzeit-Sicherheit haben Hybrid-Apps einen größeren Nachteil, da sie interpretierten JavaScript-Code (anstatt vorkompilierten Code) ausführen und damit zusätzliche Angriffsflächen bieten. Für einen unserer Bankkunden, der eine Hybrid-Lösung hatte, mussten wir eine Gesamtlösung entwickeln, um die Möglichkeiten des JS-Codes einzuschränken und den Zugriff darauf zu beschränken (z. B. hatte der JS-Code nie Zugriff auf die Anmeldeinformationen). Abschließend möchten wir darauf hinweisen, dass eine unzureichende Sicherheit der Lieferkette eines der größten Sicherheitsrisiken im Mobile-Bereich darstellt. Plattformübergreifende Technologien sind zwar in der Regel robust und werden gut gepflegt, sind jedoch umfangreiche Frameworks, die Schwachstellen auf eine Weise aufweisen können, die das Entwicklungsteam nicht vorhergesehen hat. Noch problematischer ist unserer Meinung nach die Verwendung von Plugins von Drittanbietern mit begrenzter Kontrolle in sicherheitsrelevanten Bereichen des Codes. Wir haben viele Beispiele gefunden, wo diese entweder Schwachstellen haben oder nicht so stark sind, wie sie sein könnten, weil sie auf „universelle Einsetzbarkeit“ abzielen. Barrierefreiheit Barrierefreiheit Die Implementierung einer grundlegenden Barrierefreiheit ist in den meisten UI-Entwicklungsframeworks unkompliziert. Leider bieten selbst die beliebtesten Frameworks, die die System-Benutzeroberfläche replizieren, alle Funktionen der nativen Benutzeroberfläche, so dass ihr Vorteil abnimmt, je strenger die Barrierefreiheitsanforderungen für ein Produkt werden. Ab Mitte 2025 müssen Bank- und E-Commerce-Dienstleistungen in der EU dem Europäischen Barrierefreiheitsgesetz entsprechen, und viele entscheiden sich dafür, die WCAG AA-Barrierefreiheitsanforderungen zu erfüllen. To-do: Herausforderungen bei der Einhaltung von Vorschriften Abgesehen von der Einhaltung von Vorschriften wollen viele Unternehmen aus wirtschaftlichen oder sozialen Gründen ein gutes Maß an Barrierefreiheit gewährleisten. Wir empfehlen Ihnen daher zu prüfen, welche Technologie das für Ihre Bedürfnisse erforderliche Maß an Barrierefreiheit effektiv bieten kann. To-do: Herausforderungen, die über die reine Einhaltung von Plattform-Idiomen und -Erwartungen hinausgehen. Allgemeine App-Funktionen Abschließend listen wir hier einige allgemeine Funktionen auf, die wir als relevant für Bank- und andere Finanz-Apps erachten. Keine dieser Funktionen schließt für sich genommen eine Technologiewahl aus, da es möglich ist, die Einschränkungen zu umgehen. Aber zusammengenommen können diese Umgehungslösungen den Tenor der technischen Anforderungen beeinflussen und machen daher einige Technologien weniger geeignet. KYC Wallet Open Banking In-App-Chat Widgets Assistenten und Informationen KYC Moderne Onboarding-Prozesse im Bankwesen nutzen mobile Funktionen, um die Know-Your-Customer-Bestimmungen zu erfüllen. Dazu gehören der Zugriff auf Kamera- und Mikrofon, NFR und die Bilderkennung auf dem Gerät. Die Entwicklung dieser Funktionen außerhalb der nativen Umgebung kann sowohl die Datenqualität als auch die User Experience beeinflussen. Lösungsanbieter wie Onfido entwickeln ihr Kernprodukt nativ und stellen anschließend Wrapper für plattformübergreifende Frameworks zur Verfügung. Sie raten davon ab, Web Journeys in mobilen Apps zu nutzen. Wallet Die Integration von Apple und Google Pay erfordert für jede Plattform eine separate Lösung. Sie sind weniger von der Technologie betroffen, die zur Darstellung der App-Benutzeroberfläche verwendet wird (im Vergleich zu KYC oder Widgets), benötigen aber Zugriff auf die native API. Lösungen wie die In-App-Bereitstellung von Visa bieten nur native SDKs. Open Banking Open-Banking-Autorisierungsvorgänge können ein Angriffsvektor sein, wenn sie nicht ordnungsgemäß gesichert sind. Sie basieren auf plattformspezifischen Details, zum Beispiel wie die App mit der Website der Bank verknüpft ist. Die Lösung kann in jede Technologie implementiert werden, erfordert jedoch gute Plattformkenntnisse im Team. In-App-Chat Chat-Funktionen basieren in der Regel auf Push-Benachrichtigungen und Hintergrundverarbeitung. Diese können in Frameworks wie Flutter und React Native mittels „Plugins“ verwendet werden, erfordern aber gute Plattformkenntnisse, um korrekt gestaltet zu werden. Hybride Apps würden eine massgeschneiderte Lösung benötigen, da ihre Web-Apps nicht im Hintergrund ausgeführt werden können. Widgets Widgets müssen sowohl für iOS als auch für Android nativ definiert werden. Sie können zwar Arbeit an plattformübergreifende SDKs delegieren, sind aber weniger effizient und aufwändiger zu implementieren als eine native Lösung. Hybride Apps würden eine massgeschneiderte Lösung benötigen, da ihre Web-Apps nicht im Hintergrund ausgeführt werden können. Assistenten und Informationen Mobile Plattformen bieten zunehmend nicht-visuelle Schnittstellen für die Apps, wie z. B. Verknüpfungen, Automatisierungen und die Integration in Sprachassistenten. Wie bei Widgets sind native Apps im Vorteil, wenn es darum geht, diese Funktionen zu nutzen. Überlegungen zur Organisation Wie eine zweckmäßige Architektur auch die Bedürfnisse des Teams und der Organisation berücksichtigt, haben wir in einem früheren Artikel erörtert. Ebenso kann es von der Organisation abhängen, welche Technologie die richtige Wahl ist. Organisatorische Überlegungen sind vielschichtiger, als wir es in diesem Artikel angemessen darstellen können. Um jedoch zu verdeutlichen, wie sich dies auf die Technologie auswirkt, schauen wir uns zwei Enden eines Spektrums an: Ein kleines Start-up-Unternehmen, das mit Prepaid- oder Kreditkarten einen neuen und innovativen „bankähnlichen“ Service anbieten möchte Eine etablierte Bank mit bestehendem Kundenstamm, mobiler App und Online-Banking. Beide wollen ihre App modernisieren. Unterschiedliche Budgetrahmen Unterschiedliche Budgetrahmen Für das kleine Unternehmen ist wahrscheinlich das Gesamtbudget für die App-Entwicklung ein zentrales Anliegen und hat Vorrang vor der Entwicklung von „nice to haves“ oder spekulativer Technik zur Vorbereitung auf das Wachstum. Daher ist es sinnvoll, die Wiederverwendung von Code zu maximieren, um die Kosten so weit wie möglich zu senken und so schnell wie möglich zu liefern. Die etablierte Bank hingegen hat mehr Spielraum, um die Kapitalrendite und die langfristige Sicherheit der Investitionen zu berücksichtigen. Für sie kann es wichtig sein, vom ersten Tag an voll zugänglich und lokalisiert zu sein, passend zu ihrer Marke und ihren Unternehmenswerten. Dies kann ihren Markt sogar vergrößern, indem sie Kunden, die sonst vielleicht eine andere Bank aufsuchen würden, anzieht. Wir hatten in der Vergangenheit Kunden, die versucht haben, das Beste aus beiden Welten zu kombinieren: Sie haben kostengünstigere Lösungen verwendet, um schneller ein MVP-Produkt zu erreichen, und dann eine native App mit strengeren funktionsübergreifenden Anforderungen entwickelt. Komplexität und Größe der Organisation Komplexität und Größe der Organisation Das Start-up-Unternehmen ist straff organisiert. Das App-Entwicklungsteam besetzt die üblichen Rollen wie Product Owner und Designer, aber der Entscheidungskreis ist kleiner und die organisatorischen Regeln sind lockerer. Das Team der etablierten Bank hingegen hat eine anspruchsvollere Aufgabe. Das Produkt sollte von den Abteilungen Branding, Legal und Compliance überprüft werden. Architekturentwürfe müssen dem Architectur Governance Board vorgelegt und vom IT-Sicherheitsteam genehmigt werden. Die Ingenieure müssen sich in Sachen Tools und Infrastruktur häufiger auf die zentralen Teams der Bank verlassen. Zudem ist die Tech-Landschaft komplexer, da die App mit vielen Backend-Systemen, die ihrerseits im Rahmen anderer Programme weiterentwickelt werden können, verbunden werden muss. Im Bereich der Mobilgeräte muss das Team eine Lösung finden, um die Benutzer von der alten in die neue Codebasis zu migrieren – sei es in derselben benutzerorientierten „App“ oder einer neuen. Frontend Engineering macht bei einer komplexen Organisation nur einen Bruchteil der Kosten für die App-Entwicklung aus. Und damit nicht genug: Die Investition in Technologie kann dazu beitragen, die Overhead- und Gesamtkosten des Projekts zu senken. Diese Kostenunterschiede können wir in unseren Projekten beobachten. Bei einem kleinen App-Entwicklungsprojekt kann die Frontend-Entwicklung etwa 30 bis 40 Prozent der Gesamtkosten ausmachen. Bei einer App, die in einem großen Unternehmen entwickelt wird, sind es etwa 10 bis 15 Prozent. Entdecken Sie unsere Softwarelösungen für NHS-Komplexität Unsere Empfehlungen Wenn es um die Wahl einer Mobile-Technologie geht, kommt es, wie wir eingangs sagten, stets „darauf an“. Wenn Sie uns jedoch eine gewisse Verallgemeinerung zugestehen, empfehlen wir auf Basis unserer Erfahrung folgendes: Banking-Apps Wir empfehlen Banken, eine native App zu entwickeln oder zumindest einen minimalen Kern der App nativ zu halten. Sie haben viele verschiedene Berührungspunkte mit nativen APIs, deren Verwaltung durch Framework-Plugins sowohl riskant als auch teuer sein kann. Es ist immer noch möglich, Code unter Beibehaltung eines nativen Kerns wiederzuverwenden: Der native Kern ist für die Sicherheit und die Gesamtkoordination der App verantwortlich App-Logik kann mit einer Technologie wie Kotlin-Multiplatform gemeinsam genutzt werden. Die gemeinsame Nutzung von UI-Code ist mit Web-Technologien oder Compose Multiplatform immer noch möglich – allerdings müssen Sie eine klare Strategie erarbeiten und festlegen, wo und wie diese eingesetzt werden sollen. Aktuell empfehlen wir, diese Technologien als Sprungbrett hin zu vollständig nativen Apps zu betrachten und gleichzeitig die anfänglichen Kosten und die Zeit bis zu Markteinführung zu reduzieren. Für Banken, die von einer anderen Technologie migrieren, bietet der native Kern die beste Möglichkeit, das Migrationsrisiko zu steuern und die Migration so schrittweise wie möglich zu gestalten. 80 Prozent der Top-Banking-Apps (in Großbritannien) sind nativ geschrieben. Dies gilt sowohl für etablierte als auch für neue Banken. Der Rest verwendet React Native oder hybride Technologien. Weitere Finanz-Apps Für Apps, die nicht die Komplexität einer vollwertigen Banking-App aufweisen und sich auch nicht an die strengeren Vorschriften eines Zahlungsdienstleisters halten müssen, ist die Bandbreite der Möglichkeiten größer. Wenn Sie eine reine App-Dienstleistung anbieten oder erwarten, dass Ihre Kunden Ihre App häufig verwenden, können plattformübergreifende Frameworks wie Flutter oder React Native eine gute Lösung sein. Wenn Sie zusätzlich über ein Webportal verfügen, könnte eine hybride Lösung gut für Sie geeignet sein – vor allem, wenn die Interaktionen nur selten oder in geringem Umfang stattfinden. Bitte zögern Sie nicht, uns zu kontaktieren, wenn Sie Fragen haben. Mo Ramezanpoor Mobile Architect and Capability Lead Marc Faeh Senior Business Solution Manager CV Marc Faeh ist Senior Business Solution Manager und seit März 2020 bei Zühlke. Er unterstützt Kunden bei der Erhöhung der Kundenbindung und Effizienz mittels Ideen und Lösungen an der Kundenschnittstelle. Nach einer Banklehre und einem Studium in Wirtschaftsinformatik hat Marc sechs Jahre als Management Consultant für einen global führenden IT-Dienstleister gearbeitet. Danach war Marc Faeh elf Jahre auf Kundenseite als Projekt- und Programm-Manager tätig und leitete komplexe Business- & IT-Projekte im Bereich Commerce, POS und Payment. Zum LinkedIn Profil von Marc Faeh CV
Marc Faeh Senior Business Solution Manager CV Marc Faeh ist Senior Business Solution Manager und seit März 2020 bei Zühlke. Er unterstützt Kunden bei der Erhöhung der Kundenbindung und Effizienz mittels Ideen und Lösungen an der Kundenschnittstelle. Nach einer Banklehre und einem Studium in Wirtschaftsinformatik hat Marc sechs Jahre als Management Consultant für einen global führenden IT-Dienstleister gearbeitet. Danach war Marc Faeh elf Jahre auf Kundenseite als Projekt- und Programm-Manager tätig und leitete komplexe Business- & IT-Projekte im Bereich Commerce, POS und Payment. Zum LinkedIn Profil von Marc Faeh CV
Digitalisierung und Disruption – Durch Integration von Cloud-native Services zur mächtigen Low-Code-Applikation Mehr erfahren
Öffentlicher Sektor und Verwaltungen – NHS Test and Trace: Die Entwicklung hinter der Covid-19 App Mehr erfahren
Digitalisierung und Disruption – Warum Architektur in Zeiten von Mobile-first zentral ist Mehr erfahren