Today some of the most popular solutions to build mobile apps are native or cross-platform approaches using React Native or Flutter. While native development is positioned as AAA technical solution, it has some disadvantages that create market space for cross-platform apps to come in. In general, native development requires more effort from the development team to accomplish the project but it gives full control over tricky technical stuff under the hood. On the other hand, if you choose cross-platform, it can significantly speed up the development process due to a common code base, make project support easier and reduce expenses for development.
One more advantage of native over cross-platform development is performance. In the technical world, you can encounter “cross-platform apps are slow” stereotypes. We decided to test if it’s true and to what extend cross-platform apps are slower than native.
There are different types of performance, some of them are:
- Interacting with phone API (accessing photos, file system, getting GPS location and so on).
- Rendering speed (animation smoothness, frames per second while UI is changed or some UI effects that take place in time).
- Business logic (the speed of mathematical calculations and memory manipulations. This type of performance is most important for the apps with complex business logic).
In this article, we share the results of performance tests showing mathematical calculations of number Pi implemented in native and cross-platform approaches.
CPU-intensive test (Gauss–Legendre algorithm) for iOS
- Objective-C is the best programming language for iOS development. Swift is 1.7 times slower compared to Objective C.
- Surprise: Flutter is a bit faster than Swift (on 15%).
- React Native is 20 times slower than Objective C.