[{"data":1,"prerenderedAt":20},["ShallowReactive",2],{"$fU2IwK-0MdkWwaLO_eetu6Ce3g99z0slYt1aFxCwn6fU":3},{"slug":4,"title":5,"description":6,"date":7,"tags":8,"draft":12,"readingMinutes":13,"short":14,"html":19},"react-native-vs-flutter","React Native vs Flutter in 2026: How to Pick","React Native vs Flutter for a new iOS and Android app in 2026: what actually differs, what a year of upgrades looks like in each, and how I'd choose.","2026-10-12",[9,10,11],"react native","flutter","mobile apps",false,4,{"id":15,"title":16,"date":17,"duration":18},"fsTNG9ZM92I","Flutter vs React Native: you're asking the wrong question","2026-10-12T04:18:58Z","PT57S","\u003Cp>My short answer to &quot;React Native vs Flutter?&quot; is: whichever one the person who maintains your app in 2027 already knows. If that person doesn&#39;t exist yet, React Native with Expo. The rest of this post is why, and the one case where I&#39;d say Flutter without hesitating.\u003C/p>\n\u003Cp>I&#39;m skipping benchmarks. For a business app, meaning forms, lists, a feed, payments, a camera and push notifications, both frameworks are fast enough. A slow app is almost always slow because of what was built on top of the framework, not the framework.\u003C/p>\n\u003Ch2>The only technical difference you need\u003C/h2>\n\u003Cp>React Native runs your JavaScript and has iOS and Android render their own native views. Flutter skips the platform&#39;s views and draws everything itself through its own engine, \u003Ca href=\"https://docs.flutter.dev/perf/impeller\">Impeller\u003C/a>, which is now the only renderer on iOS and the default on Android from API 29 up.\u003C/p>\n\u003Cp>Practically: a React Native app looks like an iPhone app on an iPhone and an Android app on Android, mostly for free. A Flutter app looks like your design on both, also mostly for free. If your app is a heavily branded thing where the look is the product, that second property is worth a lot, and that&#39;s the case where I&#39;d pick Flutter.\u003C/p>\n\u003Cimg src=\"/blog/react-native-vs-flutter/react-native-vs-flutter-decision-tree.webp\" alt=\"Decision tree for React Native vs Flutter: existing React or JavaScript team leads to React Native with Expo, identical custom design leads to Flutter\" width=\"1600\" height=\"1000\" loading=\"lazy\">\u003Cfigure class=\"short-embed\">\u003Cbutton type=\"button\" class=\"short-play\" data-short=\"fsTNG9ZM92I\" data-title=\"Flutter vs React Native: you're asking the wrong question\" aria-label=\"Play the video: Flutter vs React Native: you're asking the wrong question\">\u003Cimg src=\"/blog/react-native-vs-flutter/short-cover.webp\" alt=\"Cover of the YouTube Short: Flutter vs React Native: you're asking the wrong question\" width=\"540\" height=\"960\" loading=\"lazy\" decoding=\"async\">\u003Cspan class=\"short-icon\" aria-hidden=\"true\">\u003C/span>\u003C/button>\u003Cfigcaption>This post as a 57-second video. \u003Ca href=\"https://www.youtube.com/shorts/fsTNG9ZM92I\">Watch it on YouTube\u003C/a>\u003C/figcaption>\u003C/figure>\u003Ch2>What a year of keeping an app alive looks like\u003C/h2>\n\u003Cp>Founders budget for building the app. Almost nobody budgets for the year after, and that&#39;s where the framework choice actually shows up.\u003C/p>\n\u003Cp>Here&#39;s 2025 and 2026 on the React Native side, all from the release notes. Version 0.80 (June 2025) froze the old architecture and started printing warnings for APIs that would stop working. 0.82 (October 2025) made the New Architecture the only option; setting \u003Ccode>newArchEnabled=false\u003C/code> stopped doing anything. 0.84 (February 2026) made Hermes V1 the default JavaScript engine and stopped including the legacy code in iOS builds at all. The current release is 0.87, with 0.88 in release candidates. Expo shipped SDK 57 at the end of June, and SDK 58 has been on npm&#39;s \u003Ccode>next\u003C/code> tag since late September. Every one of those is a small project for somebody: bump, rebuild, find the one library that was never updated for the New Architecture, replace it or patch it.\u003C/p>\n\u003Cp>Flutter&#39;s year was quieter but not empty. 3.47 landed in August and is on its seventh patch already. Impeller replaced Skia on iOS entirely, and on Android the escape hatch is a manifest flag, \u003Ccode>io.flutter.embedding.android.EnableImpeller\u003C/code> set to \u003Ccode>false\u003C/code>. It&#39;s meant as a temporary workaround, which is exactly the kind of thing nobody remembers to remove.\u003C/p>\n\u003Cp>Then the stores move the floor regardless of which you picked. Since August 31, 2026, Google Play only accepts new apps and updates that \u003Ca href=\"https://developer.android.com/google/play/requirements/target-sdk\">target Android 16 (API 36)\u003C/a>. An app nobody touched since last year can&#39;t ship even a one-line bug fix until its whole toolchain is upgraded.\u003C/p>\n\u003Cp>None of this is a reason to avoid either framework. It&#39;s the reason the maintainer matters more than the framework. In the \u003Ca href=\"https://survey.stackoverflow.co/2025/technology\">Stack Overflow 2025 survey\u003C/a>, 66% of respondents had worked with JavaScript in the past year and 43.6% with TypeScript; Dart, Flutter&#39;s language, was at 5.9%. Flutter developers tend to be good, because nearly all of them picked Dart on purpose. There are just a lot fewer of them when you need one in a hurry.\u003C/p>\n\u003Ch2>If you already have a React web app\u003C/h2>\n\u003Cp>Don&#39;t overthink it. React Native, started with Expo (\u003Ccode>npx create-expo-app@latest\u003C/code>). React Native&#39;s own \u003Ca href=\"https://reactnative.dev/docs/environment-setup\">getting started page\u003C/a> says &quot;if you&#39;re building a new app with React Native, we recommend using a Framework&quot; and names Expo, and I agree with it. Your screens won&#39;t carry over from the web, a \u003Ccode>div\u003C/code> isn&#39;t a mobile view, but your API client, validation and TypeScript types will. So will your developers, which is the bigger win.\u003C/p>\n\u003Ch2>Small things worth knowing\u003C/h2>\n\u003Cp>Both can ship bug fixes to phones without a store review: \u003Ca href=\"https://expo.dev/pricing\">EAS Update\u003C/a> on React Native, \u003Ca href=\"https://shorebird.dev/pricing/\">Shorebird\u003C/a> on Flutter, each with a free tier. Use them for fixes only. Apple&#39;s guidelines don&#39;t allow downloaded code that adds new features.\u003C/p>\n\u003Cp>And if you&#39;re worried one of them disappears: I&#39;m not. Google&#39;s 2024 layoffs touched the Flutter team and people panicked, and a community fork called \u003Ca href=\"https://getflocked.dev\">Flock\u003C/a> exists because some developers think the team is too small. React Native is moving to a \u003Ca href=\"https://react.dev/blog/2025/10/07/introducing-the-react-foundation\">React Foundation\u003C/a> with Meta, Amazon, Microsoft, Expo and others behind it. I&#39;d rate the risk of either going away well below the risk of your app having no maintainer.\u003C/p>\n\u003Cp>If you&#39;re picking for a real app and want a second opinion, I build in both, plus the backend behind it (\u003Ca href=\"/services/mobile-apps\">mobile app development\u003C/a>). The first call is free: \u003Ca href=\"https://calendly.com/director-norsky/meeting\">book it here\u003C/a>.\u003C/p>\n",1791781822886]