Cross-Platform-App ist eine plattformübergreifende mobile Anwendung, die mit den Frameworks Flutter, React Native oder Kotlin Multiplatform (KMP) erstellt wurde. Anstatt zwei getrennte Teams für iOS und Android zu haben, ermöglicht die plattformübergreifende Entwicklung, einen Code zu schreiben, der auf beiden Plattformen funktioniert, wodurch die Kosten um 30–40% gesenkt und die Markteinführung beschleunigt wird.
Wichtige Erkenntnisse
Cross-Platform-App (plattformübergreifende Anwendung) ist eine Software, die entwickelt wurde, um von einer einzigen Codebasis aus auf mehreren mobilen Betriebssystemen zu laufen. Im Gegensatz zur nativen Entwicklung, bei der zwei separate Projekte für iOS (Swift) und Android (Kotlin) gepflegt werden, kombiniert die plattformübergreifende Entwicklung Geschäftslogik, Benutzeroberfläche und Datenschicht in einem Projekt.
Das Konzept der plattformübergreifenden Entwicklung entstand 2009 mit PhoneGap (später Apache Cordova), das eine Webanwendung in ein natives WebView verpackte. Moderne Frameworks haben einen langen Weg zurückgelegt: Flutter kompiliert über Dart in nativen ARM-Code, React Native verwendet eine JavaScript-Engine mit nativer Brücke, und Kotlin Multiplatform kompiliert gemeinsamen Code in plattformspezifische Binärdateien. Bis 2026 verwenden über 40% der neuen mobilen Apps mindestens eine plattformübergreifende Technologie.
Wichtige Kennzahlen der Einführung: 30–50% schnellere Markteinführung, 30–40% Kostensenkung im Vergleich zu zwei nativen Teams, Unterstützung eines einheitlichen Funktionsumfangs auf beiden Plattformen. Allerdings stehen plattformübergreifende Apps immer noch vor Herausforderungen — plattformspezifische UI-Besonderheiten, Hardware-API-Zugriff und leistungskritische Funktionalität wie Animationen und Spiele.
Flutter ist ein Open-Source-UI-Framework von Google mit der Sprache Dart und einer eigenen Skia-Rendering-Engine (Impeller in Version 4.x). Im Gegensatz zu Frameworks, die native Plattformkomponenten verwenden, rendert Flutter jedes Pixel selbst, was die vollständige Kontrolle über die Oberfläche ermöglicht. Dieser Ansatz eliminiert plattformübergreifende Unterschiede, erhöht aber die App-Größe um 5–15 MB.
// Flutter — einfacher Zähler
import 'package:flutter/material.dart';
void main() { runApp(const CounterApp()); }
class CounterApp extends StatelessWidget {
const CounterApp({super.key});
Widget build(BuildContext context) {
return const MaterialApp(home: CounterScreen());
}
}
class CounterScreen extends StatefulWidget {
/* ... */
}
class _CounterScreenState extends State<CounterScreen> {
int _count = 0;
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Plattformübergreifender Zähler')),
body: Center(
child: Column(
children: [
const Text('Sie haben den Button so oft gedrückt:'),
Text('$_count',
style: const TextStyle(fontSize: 48)),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () { setState(() { _count++; }); },
child: const Icon(Icons.add),
),
);
}
}Im Kern von Flutter steht eine Widget-Architektur: Alles — von Padding und Ausrichtung bis zu Layout-Einschränkungen — ist ein Widget. Dieses deklarative Modell, von React geerbt, macht die UI vorhersagbar. Dank der AOT-Kompilierung von Dart starten Flutter-Apps in unter 2 Sekunden und halten 60 FPS selbst auf Mittelklasse-Geräten. Impeller, die neue Rendering-Engine, hat die Ruckler während der Shader-Kompilierung beseitigt, die das Hauptproblem von Skia waren.
React Native ist ein plattformübergreifendes Framework von Meta zum Erstellen mobiler Apps mit JavaScript/TypeScript und React. Anders als Flutter verwendet React Native native UI-Komponenten der Plattform (UIView auf iOS, View auf Android) über eine JavaScript-Brücke. Die Geschäftslogik wird in einer JavaScript-Engine (Hermes oder JSC) ausgeführt und interagiert asynchron mit nativen Modulen.
// React Native — Komponente mit plattformspezifischem Code
import React, { useState } from 'react';
import {
View, Text, TouchableOpacity, Platform
} from 'react-native';
const App = () => {
const [count, setCount] = useState(0);
const greeting = Platform.select({
ios: 'Hallo von iOS',
android: 'Hallo von Android',
default: 'Hallo',
});
return (
<View>
<Text>{greeting}</Text>
<Text>{count}</Text>
<TouchableOpacity
onPress={() => setCount(c => c + 1)}>
<Text>+1</Text>
</TouchableOpacity>
</View>
);
};Der größte Vorteil von React Native ist sein Ökosystem. npm beherbergt über 2 Millionen Pakete, und Bibliotheken wie React Navigation, Expo und Reanimated bieten fertige Lösungen für Navigation, Gesten und Animationen. Expo, ein verwalteter Workflow, vereinfacht das Erstellen und Veröffentlichen mit OTA-Updates und über 50 integrierten nativen Modulen. Instagram, Shopify und Discord laufen auf React Native mit einer gemeinsamen Nutzerbasis von über 500 Millionen monatlich aktiven Nutzern.
Kotlin Multiplatform (KMP) ist eine Technologie von JetBrains, die gemeinsamen Kotlin-Code in plattformspezifische Binärdateien kompiliert. Anders als Flutter und React Native bietet KMP kein UI-Framework — sein Zweck ist es, Geschäftslogik, Datenschicht, Netzwerkanfragen und Validierung wiederzuverwenden, während die Oberfläche vollständig nativ bleibt. Netflix, McDonald's und VMware verwenden KMP in der Produktion.
// Kotlin Multiplatform — gemeinsames Repository in commonMain
class UserRepository(
private val api: KtorClient,
private val db: Database
) {
suspend fun getUsers(): Result<List<User>> {
return try {
val users = api.fetch<List<UserDto>>("/users")
db.save(users.map { it.toDomain() })
Result.success(db.getAll())
} catch (e: Exception) {
Result.failure(e)
}
}
}
// expect/actual — Datumsformatierung für die Plattform
expect fun formatDate(timestamp: Long): StringDas Schlüsselmuster von KMP ist der expect/actual-Mechanismus. Im gemeinsamen Modul (commonMain) wird eine expect-Funktion oder -Klasse deklariert, und in jedem plattformspezifischen Quellsatz (androidMain, iosMain) wird die actual-Implementierung bereitgestellt. Dies ermöglicht die Verwendung von Plattform-APIs — SharedPreferences, NSUserDefaults, Kamera, Biometrie — während eine einheitliche öffentliche Schnittstelle im gemeinsam genutzten Code erhalten bleibt. Compose Multiplatform, die UI-Ebene für KMP, erreichte 2025 Stabilität für Android und Desktop, die iOS-Version befindet sich noch in der Beta-Phase.
| Merkmal | Flutter | React Native | Kotlin Multiplatform |
|---|---|---|---|
| Sprache | Dart | JavaScript / TypeScript | Kotlin |
| Rendering | Eigen (Skia / Impeller) | Native Komponenten | Nativ (UI nicht enthalten) |
| Gemeinsamer Code | Bis zu 100% | Bis zu 90% | 60–80% (nur Logik) |
| Leistung | Nahezu nativ (60 FPS) | Gut (Hermes) | Nativ (kein Overhead) |
| App-Größe | +10–15 MB | +6–10 MB | +2–5 MB |
| iOS-Navigation | Benutzerdefinierte Animationen | React Navigation | SwiftUI / UIKit |
| Hot Reload | Ja (zustandserhaltend) | Ja (Fast Refresh) | Auf Plattformebene |
| Veröffentlichungsdatum | 2017 | 2015 | 2019 |
| Unternehmen | Meta | JetBrains |
Leistung variiert erheblich je nach Szenario. Das eigene Rendering von Flutter sorgt für stabile 60 FPS bei Animationen und Übergängen. Die Brückenarchitektur von React Native fügt 2–5 ms Latenz pro nativem Aufruf hinzu, obwohl die neue JSI (JavaScript Interface)-Schicht diese Lücke verringert. KMP hat keinen Overhead für gemeinsam genutzten Code, da es direkt in Plattform-Binärdateien kompiliert. Für UI-intensive Apps mit komplexen Animationen steht die Wahl zwischen Flutter und nativer Entwicklung.
Die Wahl zwischen Flutter, React Native und KMP hängt von den Projektprioritäten ab. Wenn Sie eine pixelgenaue UI und volle Animationskontrolle benötigen — Flutter bietet die konsistenteste plattformübergreifende Erfahrung. Wenn das Team JavaScript/React beherrscht und das größte Ökosystem an Drittanbieter-Bibliotheken schätzt — React Native ist die pragmatische Wahl. Wenn native Apps bereits existieren und Sie Geschäftslogik teilen müssen — KMP ermöglicht die modulweise Einführung von gemeinsamem Code ohne UI-Kompromisse.
Für MVPs und Startups bieten Flutter oder React Native den kürzesten Weg zum Markt mit 80–100% gemeinsamem Code. Für Unternehmensanwendungen mit einer bestehenden nativen Basis ermöglicht KMP eine schrittweise Modulmigration. Spiele und Medienanwendungen mit benutzerdefiniertem Rendering profitieren von Flutter oder einem vollständig nativen Ansatz. Jedes Framework hat seine Reife bewiesen — Instagram (React Native), Google Pay (Flutter) und Netflix (KMP) laufen auf plattformübergreifenden Technologien.
Trends: Flutter expandiert auf Desktop und Web mit einer einheitlichen Codebasis. React Native eliminiert mit seiner neuen Architektur (Fabric + TurboModules) die Brücke vollständig. KMP mit Compose Multiplatform zielt auf eine einheitliche UI-Ebene bei gleichzeitiger Beibehaltung nativer Leistung ab. Bis 2027 wird die Grenze zwischen plattformübergreifender und nativer Entwicklung vollständig verschwimmen — Frameworks migrieren zu nativen Kompilierungspfaden.
Häufig gestellte Fragen
Plattformübergreifende Apps verwenden Frameworks (Flutter, React Native), die in nativen Code kompilieren oder mit nativen Komponenten arbeiten. Hybride Apps verpacken eine Webseite in ein natives WebView (Cordova, Ionic). Plattformübergreifende Apps sind schneller und tiefer in die Plattform integriert; hybride Apps sind einfacher zu entwickeln, aber langsamer und weniger "nativ".
Ja. Alle wichtigen Frameworks bieten ein System nativer Module für den Zugriff auf Kamera, GPS, Bluetooth, NFC, Biometrie und Sensoren. Flutter verwendet Plattformkanäle (MethodChannel), React Native verwendet NativeModules, KMP verwendet expect/actual. Über 95% der nativen Funktionen sind über offizielle oder Drittanbieter-Plugins verfügbar.
In Benchmarks zeigt Flutter eine höhere Rendering-Leistung (stabile 60 FPS) dank seiner eigenen Skia/Impeller-Engine, während React Native eine native Brücke für UI-Updates verwendet. Mit Hermes und der neuen Fabric-Architektur verringert sich die Lücke jedoch erheblich. Für typische Geschäftsanwendungen bieten beide Frameworks eine akzeptable Leistung; der Unterschied ist bei animationsintensiven und Echtzeit-Projekten spürbar.
In einem typischen Szenario senkt plattformübergreifende Entwicklung die Kosten um 30–40% im Vergleich zur Unterhaltung von zwei nativen Teams. Ein Team schreibt gemeinsamen Code für beide Plattformen. Allerdings können komplexe plattformspezifische Funktionen — ARKit, CoreML, fortgeschrittene Kameraarbeit — nativen Code erfordern, was die Einsparungen verringert. Für die meisten Geschäftsanwendungen mit Standard-UI-Mustern ist der Kostenvorteil erheblich.
Es gibt kein einzelnes bestes Framework — alles hängt von der Aufgabe ab. Flutter führt bei UI-Komplexität und Animationen. React Native dominiert bei der Ökosystemgröße und der Verfügbarkeit von JavaScript-Entwicklern. KMP ist optimal für native-first Teams, die Logik teilen möchten. Bewerten Sie die Fähigkeiten des Teams, die Leistungsanforderungen und die vorhandene Infrastruktur, bevor Sie eine Wahl treffen.
Die Zeitrahmen hängen von der Komplexität ab. Eine einfache App mit Standard-UI auf Flutter oder React Native kann in 2–4 Monaten veröffentlicht werden. Ein mittleres Projekt mit benutzerdefiniertem Design, Authentifizierung und Integrationen — 4–8 Monate. Eine komplexe App mit Animationen, Offline-Modus und nativen Modulen — ab 8 Monaten. Im Durchschnitt dauert die plattformübergreifende Entwicklung 30–50% weniger Zeit als die parallele native Entwicklung.
In der Regel nicht. KMP erfordert ein Team mit Kotlin-Expertise und separates UI-Schreiben für jede Plattform, was die Entwicklungszeit verlängert. Für Startups mit begrenzten Ressourcen bieten Flutter oder React Native mehr gemeinsamen Code (einschließlich UI) und schnellere Prototyping-Möglichkeiten. KMP ist die Wahl für ausgereifte Produkte mit einer bestehenden nativen Codebasis.
Fazit
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch