Seit 15 Jahren findet in Prag eine große Konferenz zur Entwicklung mobiler Anwendungen statt. Ursprünglich begann diese als Android Dev Camp im Jahr 2009. Einige Jahre später kamen iOS und Windows Phone hinzu, so dass es in Mobile Dev Camp, abgekürzt mDevCamp, umbenannt wurde. Und unter diesem Namen wurde die Veranstaltung in Mitteleuropa bekannt.
Am 23. April 2024, fand im Prager Kongresszentrum ein weiteres mDevCamp statt. Ich hatte die Gelegenheit, es zu besuchen und mir einige Inspirationen und Neuigkeiten auf dem Gebiet der mobilen Apps zu holen.
Hier sind einige Notizen und Erkenntnisse, die ich für interessant halte. Es ist erwähnenswert, dass das Programm parallel auf drei Bühnen ablief, daher decken meine Notizen natürlich nicht alles ab.
Die genaue Zahl ist mir nicht bekannt, aber ich schätze, dass etwa 300 Teilnehmer anwesend waren. Die Veranstaltung fand in Prag in der Tschechischen Republik statt. Aber die offizielle Sprache war natürlich Englisch. Die Organisatoren wählten den Online-Dienst slido.com, damit Fragen an den Redner gestellt werden konnten. Die Fragen wurden durch Abstimmungen hervorgehoben und dann sortiert, so dass die am meisten gewünschten Fragen zuerst beantwortet wurden.
Ich gehe davon aus, dass sich die meisten Kollegen auf die Entwicklung nativer mobiler Apps konzentrieren und weniger auf Multiplattform-Entwicklung. Dies ging aus den Diskussionen und der Teilnahme an den einzelnen Vorträgen hervor. Aber auch Microsoft MAUI, Googles Flutter und das Java-basierte Kotlin wurden in den Vorträgen diskutiert.
Hier finden Sie Notizen in chronologischer Reihenfolgen zu den einzelnen Präsentationen die ich besucht habe.
Jan Mašek, ČSOB
Jan Mašek, ein iOS-Entwickler der ČSOB, einer der größten tschechischen Banken, sprach über die Entwicklung der Softwarearchitektur der ČSOB SmartBanking-App. Eine der am meisten genutzten mobilen Banking-Apps in der Tschechischen Republik.
Das ČSOB-Entwicklungsteam hat die Architektur eingeschränkt, um Skalierbarkeit, Testbarkeit und Verwaltungsfähigkeit zu gewährleisten. Seien Sie sich bewusst, dass implizite Anforderungen, die Kunden erwarten, nicht mitgeteilt werden. Die Analytiker müssen sie explizit erfragen. Die verwendeten Werkzeuge waren Textbeschreibung, UML, draw.io und natürlich Stift und Papier. Mit Hilfe von Enterprise Architect.
Das Team schlussfolgerte, dass die beste Architektur diejenige ist, die den Anforderungen entspricht, indem sie den Umfang der Anwendung berücksichtigt. Refactor so viel wie möglich während der Entwicklung.
ČSOB SmartBanking - einige interessante Fakten:
Ursprünglich wurde das MVP-Muster (Model View Presenter) verwendet, aber mit der Einführung von Swift UI in iOS 14 war man gezwungen, es in das MVVM-Muster (Model View ViewModel) zu ändern. Swift UI unterstützt kein MVP. Das Team war gezwungen, MVP aufzugeben, die Domain zu vereinfachen und Kits und UseCases zu verwenden. Jetzt hat jedes Feature seinen eigenen Flow und jeder Flow hat einen FeatureWrapper.
Petr Dvořák, Wultra
Petr Dvořák hielt einen interessanten Vortrag über Fintech-Apps. Daran mangelt es weltweit, daher ist der Markt offen für neue Apps. Man klassifiziert "Fintech-Apps" als Anwendungen, die Dienste wie Budgetmanagement, Unterstützung bei Investitionen, Geldtransfers und aktienbezogene Funktionen anbieten.
Petr hat drei Hauptthemen aufgedeckt, die viele Fintech-Apps weltweit zum Scheitern bringen. In der Regel liegt es nicht an einem Mangel an guter Architektur oder nützlichen Funktionen.
Die wichtigsten Killer solcher Anwendungen sind:
Wenn Ihre Fintech-App nicht über eine moderne Benutzeroberfläche verfügt, wird sie von den Nutzern schnell wieder verlassen. Sicherheit ist das A und O, denn sobald Ihre App Zehntausende von Nutzern anzieht, wird sie zu einem Hauptziel für Hacker und illegale Aktivitäten. Es spielt keine Rolle, wie sicher die App aus technischer Sicht ist, wenn sie von Kriminellen genutzt werden kann, um Nutzer davon zu überzeugen, ihren Zugang freizugeben. Zum Beispiel, indem sie so tun, als seien sie von der Bank des Nutzers, um beim Zugriff auf das Bankkonto zu helfen / Hacking zu verhindern, usw.
Erstaunlich ist die hohe Erfolgsquote der Angriffe, die in der Präsentation hervorgehoben wird, sowie die beträchtlichen Geldbeträge, die gestohlen werden. Ein beträchtlicher Teil dieser Angriffe ist erfolgreich, wobei durchschnittlich 10.000 EUR erbeutet werden☹.
Ein weiterer Aspekt ist, dass die Nutzer aller Altersgruppen zusätzliche Informationen benötigen. Dies ist ein dringendes Problem im heutigen digitalen Zeitalter.
Glücklicherweise arbeitet die Europäische Union an einer digitalen ID, die die Einrichtung von Konten in Fintech-Apps und deren Validierung in digitalen Diensten erheblich vereinfachen dürfte. Sie soll in den Jahren 2025-2026 eingeführt werden.
Wichtige Ergebnisse:
Igor Rosocha, Ackee
Die Einführung einer nationalen, digitalen Identitätsanwendung in der Tschechischen Republik bietet den Nutzern eine digitale Darstellung ihres Personalausweises und erleichtert die Überprüfung gegenüber Behörden wie der Polizei. Es ist wichtig anzumerken, dass diese Anwendung nicht dazu gedacht ist, als Identitätsanbieter im digitalen Bereich zu fungieren.
Es gibt zwei Arbeitsabläufe - Proximity Flow über BLE und Remote Flow über HTTPS durch Scannen von QR-Codes in der App der anderen Seite. Die App enthält den Standard mDL (mobile device license) ISO/IEC 18013-5 für den Proximity Flow, wodurch sie mit zukünftigen EU-weiten digitalen Geldbörsen konform ist. Der Fernzugriff basiert auf dem Protokoll OpenID4VP.
Daher ist es wichtig, dass alle mobilen Apps, die derzeit in verschiedenen Ländern der EU entwickelt oder genutzt werden, mit der kommenden EU-weiten digitalen Geldbörse kompatibel sind. Die eDoklady-App ist dafür bereit.
Die App ist in React Native geschrieben. Und kommuniziert mit zwei Backend-Servern - einer als Identitätsanbieter und der zweite für die Geschäftslogik. Sicherer Speicher / Schlüsselbund wird verwendet. Mdoc-Authentifizierung. 90 Prozent Testabdeckung des Codes.
James Montemagno, Microsoft
Trotz der Tatsache, dass mDevCamp hauptsächlich von nativen Entwicklern besucht wird, die sich entweder auf die Android- oder iOS-Plattform konzentrieren, war Microsoft hier mit seinem Multiplattform-Framework .NET MAUI vertreten, das auch bei SABO Mobile IT weit verbreitet ist und das wir für alle mobilen Projekte empfehlen.
Der berühmte James Montemagno, in der Position des Principal Lead Program Manager für die .NET-Community bei Microsoft, kam nach Prag, um die .NET MAUI-Apps vorzustellen. Der Code kann nicht nur zwischen den beiden mobilen Plattformen (Android, iOS) geteilt werden, sondern durch die Verwendung von Blazor-Komponenten auch mit Web-Anwendungen.
Im Allgemeinen kann .NET für das Schreiben von mobilen Anwendungen verwendet werden, indem die stark typisierte objektorientierte Programmiersprache C# verwendet wird. Die Benutzeroberfläche wird nur einmal im XAML-Format geschrieben und mit Hilfe des MAUI-Frameworks von Android- und iOS-Plattformen gemeinsam genutzt.
Die Architektur der .NET MAUI Mobile App ermöglicht es uns, SOLID und effektiven Code zu erstellen, der durch Unit-Tests abgedeckt ist. So bleibt die App offen für zukünftige Entwicklungen und Verbesserungen.
Durch die Hinzufügung von Blazor-Komponenten bietet Microsoft eine noch effizientere Möglichkeit, Multiplattform-Projekte auf eine spannende und einfache Weise zu schreiben.
Entwickler können sowohl Visual Studio als auch Visual Studio Code für die Arbeit an .NET MAUI-Anwendungen verwenden.
Petr Zvoníček, Spotify
Da jeder Spotify kennt, die Musik-App, die auf allen Plattformen der Welt verfügbar ist, war der Vortrag von Petr Zvoníček, Senior Architect bei Spotify, einer der Höhepunkte der Veranstaltung.
Trotz werden die Android- und iOS-Clients von Spotify getrennt in nativen Programmiersprachen entwickelt (Kotlin auf Android und Swift auf iOS), die Gesamtarchitektur ist nur einmalig gehalten in Bezug auf die Plattform agnostisch. Es wird eine deklarative API mit einem hohen Abstraktionsgrad verwendet, die vier Hauptbausteine der App deklariert.
Lessons Learned aus der Arbeit mit Bausteinen:
Recherchieren Sie, bevor Sie mit Ihrer Arbeit beginnen. Semantik ist alles (richtige Benennung der Dinge). Sie werden es nicht auf Anhieb schaffen. Konzentrieren Sie sich auf die Erfahrung des Entwicklers.
Michal Mátl, Green:Code
"Die letzte Präsentation, die ich während der Veranstaltung besucht habe, war die von Michal Matl über den Aufbau des Designsystems für Skoda Auto. Sie haben Škoda Flow entwickelt, das Designsystem für alle digitalen Produkte von Škoda. Es konzentriert sich auf Komponenten und Konsistenz über alle CI-Produkte hinweg. Mobile Apps, Web-Apps, Infotainment im Auto, etc. Die Flow-Bibliothek in Figma wird Entwicklern und Škoda-Mitarbeitern unter flow.skoda-brand.com kostenlos zur Verfügung gestellt.
Es gab viele inspirierende Vorträge und Redner, eine freundliche Umgebung und ein großartiges Catering. Vielen Dank an die Organisatoren von https://mdevcamp.eu/, die das mDevCamp 2024 zu einer großartigen Veranstaltung gemacht haben!
Luboš Brát
Senior-Entwickler für .NET und mobile Anwendungen