Cross-Platform Development

Fluttering To Success With Cross-Platform Development

Harshit Kohli, Rahul Gaur
Tue 08 June 2021
Share
 

TL;DR: There are so many decisions to make when it comes to mobile app development. From the call to go with Cross-Platform “over Native” to then weighing up the pros and cons of Flutter and React Native: here is how the Innovaccer mobile team made the all-important decisions when going mobile.

Introduction: The transition from designing web platforms to building mobile platforms is not as easy as flicking a switch. In fact, the reality is in stark contrast to what it seems to the eye - and mental shift becomes as essential as the design shift while making this paradigm change.

Building mobile applications in the exact same way as one would go about designing web applications will result in a poor user experience. Hence, it is incumbent upon us as mobile-first evangelists to dig deep into the available solutions and pick the right one for our team and product.

It’s been two years now since we began, and we are proud to say that we are now “fluttering” our way to success with cross-platform mobile development and the creation of four mobile apps (Android and iOS) and one production ready, fully responsive web app. This is our journey to mobile app development.

Question #1: Native Or Cross-Platform?

Our story began in 2019 when we started looking to replicate our success on web platforms over to mobile platforms and searching for the best approach to do so.

The first question we had to answer was whether to go with Native or Cross-Platform app development. For this, there is no “one size fits all” answer, and our decision hinged on the following factors:

  1. User Demographics: There are markets where a certain type of OS (for example, Android or iOS) dominates. Since we wanted to build applications for the US market, we found that though iOS leads the race, Android was not far behind (the ratio being 60:40). So, we had to take both operating systems into account while making a decision. In the case of Native development, there is this massive overhead of writing the same code in two different frameworks. This definitely tempted us to take the Cross-Platform plunge.
  1. Product Requirements: The choice between Native and Cross-Platform also boils down to what features you want to build. Native Apps are well suited if you want to extensively use the smartphone’s hardware (like camera, Bluetooth, maps, et al.). If you’re just creating the same user interface and functionality on two separate platforms, then Cross-Platform was certainly going to reduce the time to market. With a growth mindset, this battle was also won by Cross-Platform frameworks.
  1. Performance: Traditionally, Cross-Platform frameworks have been considered low on performance in comparison to Native development, but we noticed that React Native and Flutter were bridging this gap.
  1. Cost: Cross-Platform applications typically reduce the cost to almost half compared to traditional Native development.
  1. Documentation And Community Support: It was a no-brainer that Native development has better support available, but after some research, we realized that React Native and Flutter were stealing the show here as well.
Question #2: Flutter Or React Native?

After carefully analyzing the risk-benefit ratio, we decided to take the plunge into Cross-Platform development. Then, there was the next dilemma: Flutter vs. React Native.

It was a tough fight, but Flutter stole the show for us. Apart from the reasons listed above, the fact that Flutter’s architecture is well crafted to make it truly cross platform code was one of the main considerations. Having the same code base across Android, iOS, Web and Desktop Apps, was a superpower, we really didn’t mind having!

As a cherry on top of the cake, here are some of the latest updates on Flutter, which give us all the more reason to have increased confidence in the software development kit’s future:

  • Flutter web transitions out of Beta with Flutter 2.0
  • Support for desktop apps on MacOS and Linux
  • Google Pay’s recent migration to Flutter
  • Toyota announced that all of its infotainment systems will be built on Flutter.
Question #3: What Are The Results?

After almost two years of trial and error, experimentation, and innovation, what is the verdict? We are pleased to report that with Flutter, our team has achieved:

  • Four mobile apps (Android and iOS) at 2x the speed of Native development
  • A production ready, fully responsive web app (with 95% of the code being same as that of the Mobile App)
  • One-click deployment of Flutter apps
  • Full HIPAA compliance in all products
  • Unit and Integration testing in Dart

It is safe to say that our team of six are now full-fledged Flutter fanboys and that we are very excited to share further details on how we have reached these milestones. Stay tuned for the next blog.

This article is written by Harshit Kohli and Rahul Gaur. Harshit is the Engineering Manager Mobile at Innovaccer and describes himself as a “technology evangelist with a passion for creating scalable solutions.” Rahul is the Director of Engineering - Frontend, and often explores different programming languages, projects, and frameworks.

Post-Script / Appendix:

Google Trends Report

Stack Overflow Trends:

Share
Please enter valid .
Please enter valid .
Please enter valid comment.