Native apps with Flutter and React Native?
Both frameworks seem to promise native apps? Let’s see is how’s that possible.
Each of these frameworks have a different reason as to why they say that you can build a native app.
React Native communicates with the platform using a so called “Bridge” in order to specify which widgets and how should be used. This way, you’ll get an app that’s composed of nothing else but native widgets, and hence it’s a native app.
Thanks to this “mapping system” you can also take any existing Android or iOS component, and use it in your React Native app. This is mostly used for some complex UI components that would cause performance issues if implemented directly in React Native (due to the bridge).
Flutter avoids performance problems caused by the “Bridge” by using a compiled programming language — Dart. Dart supports AOT (ahead of time) compilation into native ARM code. This also improves application startup time.
Even though Dart is AOT compiled for production builds, it also supports JIT (just in time) compilation for fast development iterations. (In the next article, we’ll look into how that’s useful.)