Flutter or React Native?
It seems like a reasonable question to be asking at the beginning of a project when you’re deliberating over available options. But it’s easy to get sucked into the pro’s and con’s of one platform vs the other; features and benefit tables pulling you into a state of paralysis by analysis.
Having used both successfully, the likely answer is that it doesn’t really matter - or at the least there’s a better question to ask!
A question that focuses on time and available resources – because in most scenarios, it’s speed that trumps everything else!
By speed I don’t mean ‘which framework has the best performance’?
The speed I’m referring to is around execution of the project and time to market - which platform will get you there quickest?
The whole point of a single code base for both iOS and Android is to increase speed and simplicity, so it makes sense to deliberate with this being the key parameter.
When we developed our first mobile application our existing team had strong JavaScript experience, so it made sense to use React Native. That, plus the fact that React Native still dominates cross-platform development made it a safe and convenient choice.
What React Native looses in customisation of components it makes up for with a very native UI look and feel as the application isn’t compiled to C/C++ or a native language, instead all UI components are compiled to their native equivalents through a bridge.
Performance was more than sufficient for our project needs and our ability to get moving quickly helped us get to MVP in the shortest possible time frame.
So, what made us switch to Flutter for our latest app development?
In short, it was our pull towards the Google Cloud Platform and the API’s we were excited to implement moving forward.
We had started experimenting with the ML kit and knew that we wanted to incorporate some of its machine learning functionality into our next project.
We also understood how valuable Google maps could be for directions and other map functionality for users on the move.
There is an official plugin available for Flutter, making Google Maps implementation a breeze, along with other API services from Google such as DialogFlow, (natural language understanding platform) that we are also excited to explore in the future.
These off the shelf Flutter plugins and built-in components, including Material Design and Cupertino widgets, have enabled us to integrate services and build out our MVP in record time.
Flutter documentation is second to none, but there is a step learning curve. You’ll need to find a developer that knows Dart, a language more closely related to C++/Java as opposed to JavaScript.
It should go without saying that every application or project presents its own set of unique requirements, challenges, and limitations, therefore choosing the right tech stack is something that should be considered in conjunction with all these factors.
Although Flutter is still a young technology, it’s already making wave, and as Firebase continues to grow in popularity as a database I can imagine Flutter will claw away at more of the market share, and in my opinion for good reason - it’s helping us get results quicker, and I think that should be crux of the conversation – the question we should be asking is, how do we get to a product the fastest?