Flutter vs React Native – which mobile app framework should you use?
First let's start with a little bit of mobile app framework history. Back in 2008, we've seen the rise of hybrid mobile app development frameworks. The concept of hybrid framework relies on having a single codebase to manage your iOS and Android App instead of building the app natively and having 2 separate codebases.
As you can imagine, the first couple of frameworks were working however the overall app experience was falling short of native apps (slow performance, laggy UI, clunky features, etc). This was a big issue. This all changed in late 2015 with the release of React Native supporting both iOS & Android.
We have come a long way from wrapping a website and packaging it on the application stores. You can see this with previous popular tools like Phonegap being shutdown due to the difficulty of maintaining it, and Ionic creeping in more paid features in a slowly developed package. Using these packages are likely to give your users an experience they would not come back for.
Instead of having one piece of code working for both iOS and Android, you could ask for a native app. The main problem with this approach is that you will need two teams working both independently (specialised in each platform), as well as together working across a common brand and style language need. This introduces resource demands and time complexity that many startups and established businesses may not allow for or have budget for. We highly recommend reading our article about the reasons why you don't need a native app.
A cross platform language can give you a happy medium, where your style language, and business logic can be shared between iOS and Android devices. The other advantage is giving our developers the ability to to optimise the experience to the end users given phone – or tablet! choice given their unique needs.
This gives us two strong contenders for cross platform development, where the code that is written is flexible for change, and can be customised tightly to your business requirements.
React Native or Flutter?
While it is easy to brush off React Native as older, let’s compare some of the strong and weak points of each language.
- The newest, and comes with faster performance out of the "box"
- First class platform integration from Google for Android - the iOS support is great too!
- Overall Maintenance can be more difficult, due to Plugin and versioning needing care (breaking changes between minor versions updates are common)
- The canvas instead of native widget rendering style does not fully take advantage of the underlying platform yet, leading to inconsistencies when the developer is not aware of it.
- This also makes some plugins that are web only possible on React Native, that would never be available on flutter/dart without a custom plugin written from the ground up.
- Plenty of plugins and libraries around means you need to pick the correct ones
- Architecture is behind Flutter in terms of speed, and overall file size that your users download
The differences here highlight that each platform has its strengths, and it is important to choose the one that will be the best fit for your business.
Overall both React Native and Flutter provide excellent growth potential. New features are being developed all the time to help with the end user having a good experience with your application, and the team is actively making use of those to get the best end result possible.
If you'd like to know more about Flutter please check out our article about why Flutter is a strong contender.
If you'd like to discuss your mobile app requirements with our team to find out if React Native or Flutter is more suitable for your business needs, please contact us here.