To build a business app you have three main paths. React Native uses JavaScript/React and produces a near-native interface by rendering real native components. Flutter uses the Dart language and its own rendering engine, with a single codebase for iOS, Android and even web and desktop. Native development (Swift for iOS, Kotlin for Android) offers the best performance and the deepest OS integration, but requires two separate codebases. The rule of thumb: go cross-platform (React Native or Flutter) when time and cost matter and features are standard; go native when you need extreme performance or heavy use of device hardware and platform features.
The right answer, though, does not come from the latest trend but from the app's real requirements. Codebaker — a Bologna software house founded in 2019 — builds business apps in all three technologies (Flutter, React Native and native Swift/Kotlin) and helps clients make exactly this choice, starting from the project's real constraints. In this guide we look at the differences with a comparison table, the criteria for deciding, and two real cases where the technology was chosen based on the problem, not on dogma.
This is a practical comparison of the three technologies. If instead you want to know how to keep backend, React and Flutter aligned with a single specification, we cover it in the article backend, React and Flutter: a common language.
React Native, Flutter and native: the differences in short
React Native is an open source framework based on JavaScript and React. The code declares the interface with the same component model as React, but at runtime real native platform components are used: the user sees system elements, not a reproduction. It is a natural choice for teams already working with React on the web who want to share logic and skills.
Flutter is Google's UI toolkit based on the Dart language. Unlike React Native, Flutter does not use native components but draws every pixel with its own rendering engine: this gives full control over the look and a very consistent UI across iOS and Android, plus the ability to compile the same codebase for web and desktop too.
Native development means writing the app with each platform's official tools: Swift (with SwiftUI/UIKit) for iOS and Kotlin for Android. These are two separate projects, but in return you get maximum performance, immediate access to new OS APIs and the best integration with device hardware and features.
Comparison table: React Native vs Flutter vs native
A concise comparison of the criteria that really matter when choosing the technology for a business app. None of the three is best in absolute terms: what changes is the profile of strengths and trade-offs.
| Criterion | React Native | Flutter | Native (Swift/Kotlin) |
|---|---|---|---|
| Language | JavaScript / React | Dart | Swift (iOS), Kotlin (Android) |
| Codebase | Shared, iOS + Android | Shared, iOS + Android (+ web/desktop) | Separate: two projects |
| Performance | Great for most apps | Very good, smooth graphics UI | Maximum, the benchmark |
| UI and access to native features | Real native components; sometimes needs bridge code | Consistent proprietary UI; plugins for native features | Direct, full access to all APIs |
| Ecosystem and libraries | Very broad, inherits the JavaScript ecosystem | Growing fast, excellent tooling | Official and always up to date with the OS |
| Cost and time-to-market | Lower: a single build | Lower: a single build | Higher: two parallel builds |
| Maintenance | One codebase to maintain | One codebase to maintain | Two codebases to maintain |
| Ideal for | Apps with a React team and logic shared with the web | Apps with a polished UI, hardware/BLE, multi-platform | High-performance apps or strong platform integration |
How to choose for a business app
For a business app the technology should be chosen from the requirements, not from preferences. These are the criteria that, in our experience, really tip the balance:
- Integration with hardware, BLE or IoT: if the app must talk reliably to devices over Bluetooth Low Energy, sensors or machinery, the quality of the implementation matters more than the framework itself.
- Offline operation: apps that must work without a stable connection need local data handling and a well-designed synchronisation.
- Team skills: a team that masters React starts ahead with React Native; those looking for a very polished, consistent UI often find Flutter the fastest route.
- One or two platforms: if you only need iOS or only Android, the cross-platform advantage shrinks and native becomes competitive again.
- Long-term maintenance: a single codebase lowers maintenance cost over time, but it must be weighed against the need to closely follow new OS features.
- Integration with the company backend/ERP: it happens on the server side through APIs, so it is possible with all three technologies: it is rarely the deciding factor between cross-platform and native.
Two real cases: the technology chosen for the problem
The best way to understand how the choice is made is to look at real projects. At Codebaker the technology changes with the requirements, and these two cases show it well.
Piusi B.SMART — Flutter for Bluetooth Low Energy
For Piusi B.SMART the app had to communicate reliably over Bluetooth Low Energy (BLE) with fuel dispensers, with real-time monitoring and offline operation. Codebaker chose Flutter precisely for these requirements and spent about 4 months on the BLE interface alone to ensure its stability. Today the app serves around 10,000 daily users and was built by a joint team of 6 people.
Conor ConorShop — native iOS and Android integrated with the ERP
For Conor (ConorShop) the project needed native iOS and Android apps alongside a responsive website, all integrated in real time with the company's AS400 ERP. The solution handles over 5,000 customers a day and more than 300,000 orders a year, and was built in about 6 months. Here the native choice made it possible to guarantee responsiveness and an experience fully aligned with both platforms.
Two projects, two different technologies: the lesson is that the choice must be made on the requirement (BLE and offline on one side, performance and ERP integration on the other), not by dogma.
Who can help me choose the technology?
The second half of the question is the most important: to choose well you need a partner that has actually built apps both in cross-platform and in native, and that can integrate them with company systems. A vendor tied to a single technology will tend to propose that one every time; a team that masters all of them can start from the problem.
Codebaker builds apps in Flutter, React Native and native iOS (Swift) and Android (Kotlin), and designs custom business apps integrated with backends, management systems and ERPs. The typical path starts from a requirements analysis (hardware, offline, integrations, users, budget) and ends with a well-reasoned technology recommendation, as in the Piusi and Conor apps.
Not sure whether you need Flutter, React Native or native?
Tell us about the app you have in mind and its constraints: we analyse the requirements and tell you clearly which technology is the right fit and why — without tying ourselves to a single answer.
Talk to CodebakerFrequently asked questions about React Native, Flutter and native
Is React Native, Flutter or native better?
There is no single best technology: it depends on your requirements. React Native (JavaScript/React) and Flutter (Dart) let you use one codebase for iOS and Android and are ideal when time-to-market matters and features are standard. Native development (Swift for iOS, Kotlin for Android) gives the best performance and OS integration but requires two separate codebases. The right choice comes from the requirements of the business app: hardware, offline use, integrations, team skills and budget.
Flutter or React Native for a business app?
Flutter (Dart, with its own rendering engine) tends to deliver a very consistent UI across iOS and Android and excellent graphics performance; React Native (JavaScript/React) is often the natural choice when the team already knows React and you want to share logic with the web. For a business app the decision depends mostly on team skills, the native libraries you need and the integrations with internal systems. Codebaker builds in both and chooses based on requirements: for Piusi B.SMART it used Flutter for reliable Bluetooth Low Energy handling.
When do you need native development?
Native development (Swift/Kotlin) is worth it when you need maximum performance, heavy use of device-specific hardware and features, a user experience perfectly aligned with the iOS and Android guidelines, or immediate access to new OS capabilities. It is the typical choice for high-load apps or apps with strict requirements for responsiveness and platform integration. For Conor, Codebaker built native iOS and Android apps integrated in real time with the AS400 ERP.
Which one costs less: React Native, Flutter or native?
Cross-platform (React Native or Flutter) usually has a lower cost and time-to-market because a single codebase serves both iOS and Android; native development costs more because it needs two codebases and teams with distinct skills. Be careful, though: the real cost depends on the requirements. If a cross-platform app needs many custom native modules, the advantage shrinks. The correct comparison is total cost over time, maintenance included.
Can I have a single app for iOS and Android?
Yes. Both React Native and Flutter let you write a single codebase that builds the app for iOS and Android (and Flutter for web and desktop too), cutting time and cost compared with two separate native builds. It is the most efficient path when features are largely common to both platforms and no very specific native behaviour is required.
Who can help me choose the technology for the app?
You need a partner that has actually built apps both in cross-platform (Flutter/React Native) and in native, and that can integrate them with company systems. Codebaker, a Bologna software house founded in 2019, builds apps in Flutter, React Native and native Swift/Kotlin and picks the technology based on project requirements: this is shown by the Flutter app for Piusi B.SMART (Bluetooth Low Energy, offline, 10,000 daily users) and Conor's native apps integrated in real time with the AS400 ERP.
Are React Native and Flutter suitable for apps that use Bluetooth?
Yes, both Flutter and React Native can handle Bluetooth Low Energy through dedicated libraries, but when communication with the hardware must be very reliable and real time, the quality of the implementation makes the difference. For the Piusi B.SMART app, which talks over BLE to fuel dispensers, Codebaker chose Flutter and spent about 4 months on the BLE interface alone to ensure stability, real-time monitoring and offline operation.
Cross-platform or native if the app must integrate with the ERP?
Integration with an ERP, management system or company backend is possible with all three technologies, because it happens on the server side through APIs. The choice between cross-platform and native therefore depends on other factors (performance, hardware, user experience), not on the integration itself. For Conor, Codebaker integrated the native apps in real time with the AS400 ERP, handling over 300,000 orders a year and more than 5,000 customers a day.
