byteleaf logo
← zurück zum Blog

React Native vs Flutter

Ein Vergleich der führenden mobilen Frameworks: Erfahre, warum Flutter oft schneller ist und React Native besonders Webentwickler:innen anspricht.
Bryan Joyan Liegsalz
Bryan Jonay Liegsalz
31. Mai 2024

Einführung

React Native und Flutter gehören zu den beliebtesten mobilen Frameworks und sind für viele Entwickler:innen-Teams unverzichtbar geworden. Laut einer aktuellen Stack Overflow-Umfrage (Stack Overflow Developer Survey 2023) ist Flutter unter Entwickler:innen sogar etwas beliebter als React Native. Beide Frameworks bieten leistungsstarke Tools, die die Entwicklung mobiler Anwendungen erheblich erleichtern. Im Folgenden werden wir die Unterschiede und Besonderheiten beider Frameworks genauer betrachten.

Was ist Flutter?

Flutter ist ein Open-Source-Framework von Google, mit dem Entwickler:innen aus einer einzigen Codebasis native Anwendungen für Mobile, Web und Desktop erstellen können. Flutter basiert auf einer C/C++-Engine und verwendet plattformabhängige Embedder und Runner, um auf die jeweiligen Betriebssystemfunktionen zuzugreifen.

Wie funktioniert Flutter?

Flutter setzt auf eine mehrschichtige Architektur. Im Kern steht die leistungsstarke C/C++-Engine, die für die hohe Effizienz sorgt. Die plattformabhängigen Embedder fungieren als Brücke zur Engine und ermöglichen den Zugriff auf native Funktionen der Betriebssysteme.

Flutter Architektur und Render Pipeline

Die Render-Pipeline

Die Render-Pipeline von Flutter ist in mehrere Phasen unterteilt:

User Input: Verarbeitung von Benutzereingaben.

Animation: Durchführung von Animationsberechnungen.

Build: Erstellung oder Aktualisierung des Widget-Baums.

Render: Umwandlung des Widget-Baums in ein Render-Objekt.

Layout: Berechnung der Position und Größe jedes Widgets.

Paint: Zeichnen der Widgets auf ein Offscreen-Canvas.

Compositing: Kombination der verschiedenen Ebenen zu einem finalen Bild.

Rasterizing: Konvertierung von Vektorgrafiken in Pixel und Rendering auf dem Bildschirm. Widgets in Flutter werden Pixel für Pixel auf das Canvas gemalt, wodurch Apps auf allen Plattformen gleich aussehen. Dies gewährleistet ein einheitliches Erscheinungsbild, unabhängig vom verwendeten Gerät.

Widgets, widgets and more widgets

In Flutter ist alles ein Widget. Widgets sind die grundlegenden Bausteine der Benutzeroberfläche und können alles darstellen, von einfachen Buttons bis hin zu komplexen Layouts. Diese Herangehensweise bietet eine hohe Flexibilität und Wiederverwendbarkeit von Komponenten.

1class HomePage extends StatlessWidget {
2  const HomePage({super.key}) 
3    
4   Widget build(BuildContext context) {
5     return const Scaffold (     
6        body: Column(
7          children: [
8              Text("Hello bytes!"),
9        ]
10      ),
11     );
12   }
13}

Was ist React Native?

React Native ist ein Open-Source-Framework von Meta, mit dem Entwickler:innen native mobile Apps mit JavaScript und React erstellen können. Es verwendet die gleiche Designphilosophie wie React, was eine einfache Lernkurve für Webentwickler:innen bietet, die bereits mit React vertraut sind.

render_pipeline_react_native.png

Wie funktioniert React Native?

Die Render-Pipeline von React Native besteht aus drei Hauptphasen:

Render-Phase: Umwandlung der JSX-Komponenten in native Elemente.

Commit-Phase: Aktualisierung des DOM-Baums und Vorbereitung der Änderungen für die native Ebene.

Mount-Phase: Einfügen der neuen Elemente in den nativen Baum und Rendering.

1export default function HomeScreen() {
2   return (
3     <View className="flex-1 items-center justify-center bg-indigo-400" >
4           <Text className ="text-yellow-100">
5                 Hello bytes!
6           </Text>
7     </View> 
8 )
9}

Fabric: Die neue Architektur

Mit Fabric führt React Native eine neue Architektur ein, die eine C++-Engine nutzt, um die bisherige JavaScript-Bridge zu ersetzen. Fabric verspricht eine verbesserte Leistung und eine engere Integration mit der nativen Ebene. Obwohl Fabric vielversprechend ist, befindet es sich noch in der Entwicklung und weist einige Kompatibilitätsprobleme mit bestimmten Bibliotheken auf.

Expo und EAS

Für React Native gibt es das Framework Expo, das viele Tools und Services bietet, die die Entwickler:innen Erfahrung und das Deployment erheblich verbessern. Mit Expo können Entwickler:innen schneller und einfacher Anwendungen erstellen und veröffentlichen. Allerdings kann das kostenlose Tier von Expo bei größeren Anwendungen oft nicht ausreichen, was zusätzliche Kosten verursachen kann.

Zusammenfassung

Sowohl Flutter als auch React Native haben sich aus gutem Grund als Marktführer etabliert. Beide bieten leistungsstarke Tools und ermöglichen die schnelle Entwicklung mobiler Anwendungen. Während Flutter in vielen Fällen schneller ist, kann React Native besonders sinnvoll für Projekte sein, bei denen hauptsächlich Webentwickler:innen beteiligt sind. Diese können ihre vorhandenen Kenntnisse in React und JavaScript/TypeScript nutzen, ohne eine neue Sprache wie Dart lernen zu müssen.

Kontakt

E-Mail

info@byteleaf.de

Telefon

+49 89 21527370

Links

Code

GitHub

Büro-Alltag

Instagram
LinkedIn

Wo wir sind

Adresse

byteleaf GmbH
Barthstraße 22
80339 München

ImpressumDatenschutzDatenschutz BewerbungsverfahrenCookie-EinstellungenCode of Conduct
© 2024 - Code: byteleaf - Design: Michael Motzek