SwiftUI vs React Native vs Flutter: Who Boots Up Faster?

Gilles Grousset
inside|app
Published in
3 min readJan 6, 2020

Let’s imagine a Sergio Leone-style showdown involving three different technologies for the same platform. Who will draw the fastest?

Cross-platform mobile development, which involves writing a single codebase for both iOS and Android, remains a hot topic. While this promise isn’t new, there have been significant advancements in this area over the past four years. It’s time to revisit the performance of each solution when compared to native development.

So, I decided to conduct a simple performance test by building the same application with three different technologies to evaluate the speed of app launch. App launch speed, which refers to the time between tapping the app icon and displaying the first screen with initial data (excluding the splash screen), is a critical key performance indicator (KPI) for any application. If it takes too long (around more than 3 seconds), the probability of users uninstalling the app in the minutes that follow is very high.

The Competitors

React Native: The Most Mature

The renaissance of cross-platform mobile development began a few years ago with React Native, driven by Facebook. It enables app development using the ReactJS web framework (with its declarative UI concept). It executes JavaScript but generates a native rendering thanks to “bindings” to native graphical components.

Flutter: The Rising Star

More recently, Google’s solution, Flutter, entered the race to address the same issue. It incorporates a shared graphical rendering engine (Skia) and a less-known language, Dart. It’s worth noting that, unlike React Native, Flutter’s code is natively compiled (AOT) rather than interpreted.

SwiftUI: The Future of Native iOS Development

SwiftUI is Apple’s new native development framework. Based on declarative UI, like its two competitors, it’s designed to provide the best integration with iOS.

The Test

The test app performs the following actions upon startup:

  • Loads a screen
  • Sends an HTTP request to an API
  • Deserializes the JSON response (an array of 17 complex objects)
  • Displays the data on the screen

The test is conducted on an iPhone 11 Pro running iOS 13.3.

The API is served by a minimalist HTTP server installed on the local network.

Time is measured with a stopwatch from tapping the app icon to displaying the data on the screen.

The test is run five times for each technology, with the app being completely restarted for each test, and HTTP caches are disabled.

The Results

Without further ado, here are the results (in hundredths of a second):

Measuring time on such short intervals can be challenging, and there were occasional remeasurements.

However, a slight trend emerges: SwiftUI appears to be the fastest (by a small margin) compared to Flutter.

Not surprisingly, React Native is the slowest, though this was noticeable even without a stopwatch.

Conclusion

I conducted this test out of personal curiosity, and I do not claim to possess an absolute truth. Nonetheless, it has allowed me to confirm the excellent performance of Flutter while reassuring on React Native’s performance, which, while not the fastest, offers entirely satisfactory performance.

Ultimately, this test demonstrates the progress made in the field of cross-platform development in recent years, bringing the boundary between cross-platform technologies and native development closer than ever before.

--

--