The bridge you write tells you everything.

Same feature. Same stores. Watch the diff.

FlutterPINNED
vs
platform_channel.dartPINNED
1// Flutter → Native bridge
2import 'package:flutter/services.dart';
3
4class BatteryChannel {
5 static const channel = MethodChannel(
6 'dev.dart/battery');
7
8 static Future<int?> getLevel() async {
9 try {
10 final level = await channel.invokeMethod<int>(
11 'getBatteryLevel');
12 return level;
13 } on PlatformException catch (e) {
14 return null;
15 }
16 }
17}
Lines17 loc
Build180ms
Bundle4.2kb
BatteryModule.tsx
1// RN Native Module bridge
2import { NativeModules, Platform } from 'react-native';
3
4const { BatteryModule } = NativeModules;
5
6export const getLevel = async (): Promise<number | null> => {
7 if (Platform.OS === 'android') {
8 // Android: Java module required
9 return BatteryModule?.getBatteryLevel() ?? null;
10 } else if (Platform.OS === 'ios') {
11 // iOS: Obj-C/Swift module required
12 return BatteryModule?.getBatteryLevel() ?? null;
13 }
14 return null;
15};
16// + BatteryModule.java (Android)
17// + BatteryModule.swift (iOS)
18// + BatteryPackage.java (register)
19// = 3 files, 2 languages
Lines19 loc
Build420ms
Bundle12.8kb
diff summary
Flutter:17 loc · 180ms · 4.2kb
React Native:19 loc · 420ms · 12.8kb
verdict:Flutter wins

Numbers don't argue. They compile.

Pixel 7 Pro · iPhone 15 Pro · macOS 14 · Flutter 3.22 · RN 0.74 · KMP 0.9

Rendering

Frame Build Time

✓ Flutter
Flutter3.2ms
React Native7.8ms

// Skia/Impeller vs JS bridge render calls

Rendering

Jank Rate (60fps)

✓ Flutter
Flutter0.4%
React Native3.1%

// Measured on Pixel 7 / iPhone 14

Build

Hot Reload

✓ Flutter
Flutter180ms
React Native1.2s

// State preserved vs full component remount

Bundle

Release APK Size

✓ Flutter
Flutter6.8MB
React Native8.2MB

// Baseline with no assets

Ecosystem

pub.dev packages

✓ React Native
Flutter41k+
React Native62k+

// npm has volume advantage; quality varies

// score
Flutter41React Native
See Full Verdict →

Ships at scale. Receipts included.

// real apps, real stores, real users

case_studies[]

Alibaba (Xianyu)Flutter
50M+ DAU

Migrated 3 native apps to single Flutter codebase. 40% reduction in UI code, zero jank complaints post-migration.

E-Commerce · 2019 → Present
Google PayFlutter
180+ countries

Pixel-perfect parity between Android and iOS. Single widget tree, platform-adaptive navigation, 99.2% crash-free sessions.

Fintech · Production
BMW ConnectedFlutter
3 platforms

iOS, Android, and embedded display from one codebase. Custom render pipeline for in-car HMI at 60fps.

Automotive · Embedded
DiscordReact Native
500M installs

Brownfield integration. JS bridge latency visible in animation profiler. Migrating critical paths to native modules.

Social · Hybrid

ecosystem_metrics{}

Flutter
React Native
KMP
GitHub Stars// k
164k
118k
48k
Stack Overflow Q// k
92k
78k
12k
pub.dev / npm pkgs// k
41k
62k
8k
Job Postings (US)//
4800k
6200k
1100k
// Source: GitHub · Stack Overflow · pub.dev · LinkedIn Jobs · Feb 2026
ecosystem verdict

Flutter leads on rendering consistency and hiring velocity. React Native leads on raw package count. KMP is the right call if your team is already native-Android. The full report breaks this down by team size.

47 engineers downloaded this week

Get the Full Framework Verdict

28 pages · 12 benchmark categories · 6 production case studies

// no spam · unsubscribe any time · PDF delivered instantly

// not ready for the full report?

Subscribe to the Changelog

// one email per Flutter stable release · no noise

One email per stable release. No noise.

// arrives when Flutter tags a stable. contains: what changed, what broke, what you should care about.

Deep Dive
2026-02-1814 min

Impeller's Aiks vs Skia: What the Profiler Actually Shows

We ran 40 minutes of GPU traces on Impeller. The rasterizer thread tells a different story than the marketing deck.

Read article
State Wars
2026-02-0911 min

Riverpod 3.0 vs Bloc 9: The Architecture Decision Record You'll Actually Use

Not another todo app comparison. We measured rebuild counts, test coverage ergonomics, and team onboarding time.

Read article
Platform Channels
2026-01-289 min

Pigeon 20 vs Kotlin Interop: The FFI Overhead You're Paying

Pigeon generates type-safe channel code. KMP uses Kotlin directly. We measured the serialization cost at 10k calls/sec.

Read article
CI/CD
2026-01-148 min

Fastlane + Codemagic vs GitHub Actions: Flutter Build Pipeline Shootout

Cold build times, cache hit rates, and the hidden cost of code signing automation across all three CI providers.

Read article
Flutter 3.32 · Impeller stable on Android Riverpod 3.0 · AsyncNotifier breaking changes Dart 3.8 · Macros in preview KMP 0.9 · Compose Multiplatform GA RN 0.75 · New Architecture default Flutter Web · WASM renderer default Flutter 3.32 · Impeller stable on Android Riverpod 3.0 · AsyncNotifier breaking changes Dart 3.8 · Macros in preview KMP 0.9 · Compose Multiplatform GA RN 0.75 · New Architecture default Flutter Web · WASM renderer default
Framework Verdict — 28 pages, 12 benchmarks, one clear answer.