Team Mobi is looking to release a slate of new tech products. As we can all agree, today developers need technology that creates simple, efficient and fresh mobile applications in the fastest time possible. With all this in mind, the team was faced with a recent internal development dilemma when looking at the best way to develop the new products.
Should our developers choose the ever popular REACT Native or go with new kid on the block, Flutter?
For those who don’t know, both are currently the hottest development frameworks in what’s increasingly becoming a major showdown, similar to The Avengers vs. Thanos. So how do these two compare?
Pros and Cons
Can be used cross-platform
Although it was created for iOS development at first, REACT Native apps can now be developed using a single code for both iOS and Android platforms, simultaneously.
Shorter development time
Because you’re only having to write one piece of code, you’re able to save time in development. REACT Native also allows you to reuse components which makes maintaining an app much easier. Its numerous ‘ready-to-apply’ pieces basically halves the development time compared to if you developed two separate native apps for iOS and Android.
As popular as REACT Native is, it’s not flawless. There are still some glitches to be sorted out as some of the custom modules are missing.
It still requires Native code
Some features still require detailed script knowledge of the particular platform you’re developing for.
Whilst it’s popularity means this is highly unlikely – the fact is, it was created by Facebook and they could put a stop to the project at anytime.
What about Flutter?
Developed by Google in 2017 to design and deploy fast, and visually appealing apps for both iOS and Android platforms – Flutter has fast become a serious competitor to REACT Native. Flutter makes it easy to build user interfaces that react smoothly in an app. It also reduces the amount of code required to synchronise and update your app’s view.
Developers save time by being able to write just one code covering both iOS and Android platforms. Also, if there are any changes in the code, they’re implemented straight away in the app.
Developers only have to write automatic tests once when testing quality.
Flutter is designed to make it easy to create your own widgets, as well as customise existing ones.
Same app UI on older devices
Users who have older phones are able to enjoy a new app’s look and feel, without having to update their devices.
Continuous integrated support
Flutter is not currently supported by integrated support platforms like Jenkins or Travis. This means that in order to achieve testing, deployment and automatic building, developers need to use and maintain custom scripts.
Libraries and support
Whilst impressive, Flutter’s current support and library offerings is not as extensive as those offered by native development. Some functionalities may not be found which means developers would have to spend time building them from scratch.
Team Mobi’s thoughts
“REACT Native and Flutter are both great cross platforms. REACT Native has the advantage of being able to be deployed on both iOS and Android, and also the web. But as it is a web technology, there are sometimes performance and compatibility issues when deployed on mobile. The code is also not that easy to build and maintain. For instance, Airbnb developed in React Native first, but they finally went back to Android and iOS Native as it was easier for them to develop and maintain. Flutter is the new kid on the bloc and is very promising for compatibility and performance for both platforms (iOS and Android) but it does not currently support web development. Personally, I would bet on Flutter.” – Antoine (Mobi Android Developer)
“They’re both really smart. Flutter is newer, and has had the opportunity to build on previous learnings from React (and other hybrid approaches before that). React has been around longer, and has more documentation and examples available (although you need to filter through that to make sure the examples are relevant to the latest React version.) Flutter seems to be optimising to ensure it always runs 60+fps frame refresh rates, for super reactive UI, perhaps aiming slightly more at the consumer-facing and game apps space. The other thing to consider is that React is a Facebook built/owned technology (and there were some odd license requirements originally where FB could revoke your license for various reasons, but they cleared that up a year or two back. They’re both really really good.” – Iain (Mobi Tech Director)
‘It depends on what you want. Seriously though, Flutter development is easier than anything, a lot of well structured documentation and examples. I don’t think that it is slower to develop things with it. It uses declarative Dart language and supports old Android and iOS code as well, allowing a smooth, step by step migration. And as a developer, I trust Google much better than something created by a silly social network app.” – Zoltan (Mobi Java Backend Developer)
After a group consultation, Team Mobi unanimously decided to go with Flutter. Which framework do you think is best? Let us know in the comments below.