Modernisierung einer mobilen Leseplattform: Von Xamarin zu Flutter

Schrittweise Modernisierung der iOS- und Android-Apps einer großen digitalen Publishing-Plattform durch die Migration von Xamarin zu Flutter. Die Lösung ermöglicht interaktive Leseerlebnisse mit Multimedia-, Community- und KI-Funktionen.

Modernisierung einer mobilen Leseplattform: Von Xamarin zu Flutter hero background

Über unseren Kunden

Unser Kunde ist ein großes digitales Verlagsunternehmen, das Autoren eine Plattform zur Veröffentlichung und zum Verkauf von E-Books bietet.

Die iOS- und Android-Apps vereinen Buchshop, Bibliothek und E-Book-Reader. Nutzer können Bücher offline lesen, ihren Lesefortschritt synchronisieren, die Darstellung anpassen, Notizen erstellen und sich mit Autoren austauschen.

Nach über acht Jahren Entwicklung enthielten die Apps umfangreiche Geschäftslogik, plattformspezifischen Code, zahlreiche Integrationen und veraltete Komponenten.

  • Region: Weltweit
  • Branche: Digitales Verlagswesen / E-Books
  • Projektdauer: ca. 18 Monate
Über unseren Kunden

Herausforderung

Die mobilen Apps wurden ursprünglich mit Xamarin entwickelt. Da die Technologie das Ende ihres Lebenszyklus erreichte, entschied sich der Kunde für eine frühzeitige und schrittweise Modernisierung.

Die größte Herausforderung war die Komplexität des Produkts. In über acht Jahren hatten sich zahlreiche Nutzerabläufe, Integrationen, plattformspezifische Lösungen und technische Schulden angesammelt. Auch die veraltete E-Book-Reader-Engine musste modernisiert werden.

Gleichzeitig durfte die Weiterentwicklung des Produkts nicht unterbrochen werden. Eine vollständige Neuentwicklung in einem Schritt hätte erhebliche technische und geschäftliche Risiken verursacht. Die Produktplanung umfasste zudem wichtige neue Funktionen wie:

  • Interaktive Bücher
  • Integrierte Audio- und Videoinhalte
  • Community-Diskussionen und direkter Austausch mit Autoren
  • KI-gestützte Empfehlungen
  • Kontextbezogene Übersetzung
  • KI-gestützte Zusammenfassungen
  • KI-Assistent auf dem Gerät zur Arbeit mit Buchinhalten
Herausforderung

Hauptziele

Um die mobile Plattform ohne Unterbrechung der Produktentwicklung zu modernisieren, legten wir folgende Ziele fest:

  • Abschluss der Migration vor dem Ende des Xamarin-Supports
  • Erhalt aller bestehenden Funktionen und der Nutzererfahrung
  • Umstieg auf einen modernen Technologie-Stack für mehrere Plattformen
  • Abbau bestehender technischer Schulden
  • Kontinuierliche Entwicklung neuer Funktionen während der Modernisierung
  • Reduzierung der plattformspezifischen Entwicklung
  • Verbesserung der Wartbarkeit und Testbarkeit der Apps
  • Vorbereitung der Architektur auf interaktive Inhalte, Multimedia und KI-gestützte Funktionen
Hauptziele

Projektübersicht

Nach einer technischen Analyse entschied sich SCAND für eine schrittweise Modernisierung der bestehenden Software.

Die Xamarin-App blieb im produktiven Einsatz und erhielt weiterhin wichtige Fehlerbehebungen und Updates. Parallel dazu entwickelten wir eine neue Flutter-App.

Die Flutter-Version entstand mit einer neuen Codebasis und modernen Architektur. Bestehende Backend-APIs, Datenstrukturen, Authentifizierungsprozesse, Produktanforderungen und Kenntnisse über das App-Verhalten wurden bei Bedarf übernommen.

Statt den C#-Code automatisch in Dart umzuwandeln, übertrugen und verbesserten wir bestehende Nutzerabläufe schrittweise auf der neuen Plattform.

Für jede wichtige Komponente wählten wir eine von vier Strategien:

Beibehalten → Refaktorieren → Neu entwickeln → Ersetzen

So konnten wir bewährte Komponenten erhalten und gleichzeitig Bereiche neu gestalten, die die Weiterentwicklung des Produkts einschränkten.

Projektübersicht

Lösung

SCAND entwickelte eine moderne Flutter-App für iOS und Android, die die bisherige Xamarin-App ersetzte.

Die neue Lösung nutzt eine modulare Architektur mit gemeinsamem Code für beide Systeme und nativen Modulen bei Bedarf. Der alte E-Book-Reader wurde durch das eigene epuBear SDK ersetzt.

Das SDK ermöglicht die stabile Anzeige von EPUB-Dateien, die Aufteilung in Seiten, die Navigation und die Arbeit mit Buchinhalten.

Die Plattform schafft zudem die Basis für interaktive Bücher, Medieninhalte und den Austausch in der Community. Geplant sind auch KI-Funktionen wie persönliche Empfehlungen, Übersetzungen im Kontext, kurze Inhaltsangaben und ein lokaler KI-Assistent.

Lösung

Kernfunktionen

  • App für mehrere Plattformen: Eine gemeinsame Flutter-Codebasis für iOS und Android.
  • Moderner E-Book-Reader: epuBear SDK zur Anzeige von EPUB-Dateien, zur Aufteilung in Seiten, Navigation und Arbeit mit Buchinhalten.
  • Digitaler Buchshop und Bibliothek: Bücher suchen, kaufen, verwalten und auf digitale Inhalte zugreifen.
  • Offline-Lesen und Datenabgleich: Bücher ohne Internet lesen und den Lesefortschritt sowie Daten der Nutzer zwischen Geräten abgleichen.
  • Individuelles Lesen: Anpassbare Schriften und Hintergründe, Lesezeichen, Notizen und Vorlesefunktion.
  • Interaktive Inhalte und Multimedia: Architektur für interaktive Bücher, Audio, Video und weitere digitale Formate.
  • Modulare Architektur: Getrennte Ebenen für Anzeige, Logik und Daten erleichtern die Wartung und den Ausbau.
  • Native Integration: Swift- und Kotlin-Module für Funktionen, die nativen Code erfordern.
  • Basis für KI-Funktionen: Architektur für Empfehlungen, Übersetzungen, kurze Inhaltsangaben und einen lokalen KI-Assistenten.
  • Automatische Tests: Regressions- und Tests des bisherigen Verhaltens für stabile Releases auf beiden Plattformen.
Kernfunktionen

Nutzer-Workflow

  • Analyse der alten App: Prüfung der Xamarin-Funktionen, Abhängigkeiten, Logik und wichtigen Nutzerabläufe.
  • Zielarchitektur: Entwurf einer modularen Flutter-Architektur für iOS und Android mit gemeinsamem Code.
  • Migration der Funktionen: Schrittweise Umsetzung der Funktionen in Flutter bei laufendem Betrieb der Xamarin-App.
  • Austausch des Readers: Ersatz der alten Reader-Engine durch das epuBear SDK und Integration in die neue App.
  • Tests und Prüfung: Automatische Tests, Regressionstests und gezielte Prüfung der migrierten Funktionen.
  • Einführung: Schrittweiser Start der Flutter-App mit Betatests und gestaffelter Freigabe für Nutzer.
  • Ablösung der alten App: Nach Erreichen des gleichen Umfangs an Funktionen und eines stabilen Betriebs wurde die Xamarin-App abgelöst.
Nutzer-Workflow

Technologie-Stack

Für die Entwicklung der App für iOS und Android, die Anzeige von E-Books, die KI-Integration und eine sichere, schrittweise Modernisierung setzten wir folgende Technologien ein:

  • Entwicklung mobiler Apps: Flutter, Dart, Riverpod, go_router, Dio, Freezed, Drift / SQLite
  • Reader und native Integration: epuBear SDK, Swift, Kotlin, Flutter Platform Channels, Dart FFI
  • KI und Machine Learning: ONNX Runtime, llama.cpp, LiteRT (früher TensorFlow Lite), OpenAI API, Python
  • Qualitätssicherung: flutter_test, integration_test, Mocktail, Patrol, Firebase Test Lab
  • DevOps und Monitoring: GitHub Actions, Fastlane, Firebase App Distribution, Firebase Crashlytics, Sentry
Technologie-Stack

Geschäftlicher Nutzen

Das Projekt bot weit mehr als eine Migration von Xamarin zu Flutter. Der Kunde erhielt eine moderne App, die eine schnellere Entwicklung neuer Funktionen ermöglicht, eine gemeinsame Basis für iOS und Android schafft und neue digitale Leseformate unterstützt.

Der schrittweise Ansatz senkte die Risiken der Modernisierung und ermöglichte die laufende Entwicklung des Produkts während der gesamten Migration.

Geschäftlicher Nutzen

Kernteam

  • Lösungsarchitekt: Entwickelte die Strategie zur Modernisierung und die neue App-Architektur.
  • Mobile Tech Lead: Koordinierte die Migration der mobilen Apps zu Flutter.
  • Flutter-Entwickler: Setzten die App-Funktionen neu um und erstellten eine gemeinsame Codebasis.
  • iOS-/Android-Entwickler: Pflegten native Module und entwickelten spezielle Funktionen mit Swift und Kotlin.
  • Backend-Entwickler: Betreuten bestehende APIs, Datenformate, den Datenabgleich und die Integration der Apps.
  • KI-Ingenieure: Integrierten KI-Funktionen und Abläufe für lokale KI-Modelle auf den Geräten.
  • QA-Ingenieure für Testautomation: Erstellten automatische Tests und prüften Funktionen, Stabilität und Verhalten auf beiden Systemen.
  • DevOps-Ingenieure: Betreuten CI/CD, die Verteilung der Apps, das Monitoring und die Releases.
  • UX/UI-Designer: Passten die Abläufe an die neue Architektur an und gestalteten die App-Oberfläche neu.
Kernteam

Zugehörige Fallbeispiele