Over the weekend there was a post circulating online about challenges finding support for a mobile app built with Flutter. The author was running into bugs with the Flutter core and with community extensions, and was stuck because their Flutter issue received no fix nor was it prioritized by the team, and many of the community extensions the developer explored were not adequately maintained. They completely hit a wall.
This got me thinking about a question I see too many developers and teams forgetting to ask until it’s too late: who is going to support the mobile platform and framework you choose to build your next app?
These days developers are making a lot of choices when it comes to the technologies their company will use. It’s easy to just follow hype or perceived popularity when it comes to making those decisions. I find that developers often aren’t thinking about what happens when the rubber meets the road and the project is running into problems with the chosen technology stack and the team needs help.
State of Mobile Platforms
In the mobile ecosystem, the most popular technologies for building apps are “pure native,” Flutter, React Native, and Ionic (including Capacitor and Cordova). The dynamics of building pure native are well understood and Apple and Google have a long history of being almost completely hands off with users of their SDKs (Apple doesn’t even have an official public bug tracker). Teams going pure native know what they are getting into and are willing to spend the time and money to go that route.
That brings us to Flutter, React Native, and Ionic/Capacitor as the cross-platform leaders. Flutter is built by Google, React Native by Facebook, and Ionic by…Ionic.
Facebook notoriously built React and React Native for itself, and they are the only “customer” they design for, and all other users have to fit into what works for Facebook. Facebook offers no guarantee of support or maintenance on any of it and if developers have issues they need to file an issue just like anyone else (currently ~2k open issues). Additionally, Facebook has no developer-focused business (no cloud services, no frontend products, etc).
The Flutter story is more complicated. Flutter is the primary UI SDK for Google’s Fuschia operating system, which many consider a future competitor to Android (and it seems to have created messy internal politics at Google as well). Google’s goals in building Flutter aren’t as clear, but they seem to be to drive more developers to consume Google Cloud Platform services, use its ad network, and possibly even validate continued investment in Fuschia. Notably, they aren’t commercializing Flutter nor offering any dedicated support, so if users have issues they need to get in line behind the nearly 10k open issues (which is one of the largest open issue counts I’ve ever seen in open source).
No Culture of Support
Don’t get me wrong, React Native and Flutter are quality projects built by very capable and talented teams. The problem is that they are both incredibly complex and the massive surface area of each project has led to a huge volume of bug reports and other issues, and neither project offers dedicated support. For users of these projects, this complexity and large issue volume, combined with a lack of official support options, ultimately leads to a situation where there are very few options for getting help and support when there’s an issue.
Google and Facebook are notorious for lacking a strong customer support culture, even for their paid products. Support is just not their most important priority. This tradeoff enables them to build services that reach mind-boggling levels of scale, but is at odds with what traditional teams and enterprises expect when it comes to vendors supporting their products.
Culturally, Google and Facebook just don’t do support well (GCP support for massive customers is probably the exception) and certainly not when it comes to open source or developer-focused products. It’s important to consider their priority of optimizing for scale at the expense of support against your team’s priorities.
Why this Matters
The enterprise software world has shifted dramatically in the last few years. Our mantra at Ionic is that “every company is becoming a software company,” even if their primary business is not software. The efficiencies, scale, and customer experience demands require digital transformation across all organizations just for them to stay competitive.
At the same time, developer-hours have never been more expensive and software delivery schedules never more demanding. Team leaders and managers need to be thinking intensely about the cost of developers not shipping product at a productive clip. And mobile is one of the most important frontiers in software today.
If your team picked Flutter or React Native, what happens when you have a serious problem? What if your app is pulled from the app store over the weekend (this can happen regardless of your tech!)? Who do you call to get help? Sure, there are startups and other companies forming around those technologies, but none of them control the official projects directly. None of them can patch an issue on a weekend and release a hot fix for testing. Flutter and React Native are so incredibly complex that fixing them requires deep internal project knowledge that few people possess, and they also need deep knowledge of the project’s target customer which for React Native will be Facebook (not your team).
The reality is that there is no one to call if there’s a problem. You’re completely and utterly on our own if you have an issue using React Native or Flutter.
Ionic is Different
This brings me to Ionic. Ionic is completely unique in the mobile market in that it has official support and fully maintained enterprise integrations and cloud services for its open source projects and commercial products, and its only customers are the users of the technology itself.
Ionic makes real money and has built a strong, sustainable business model offering support and features to teams that are building serious apps on the stack, and they absolutely love it because they can’t get this kind of service anywhere else. Don’t take my word for it, Ionic is consistently rated as one of the most loved mobile technologies on G2, the top site for organic enterprise software reviews, and has over 300 enterprise customers and many thousands of indie and startup customers.
Ionic customers can file tickets and have real phone conversations with support and team engineers that can directly fix and influence the technologies the app runs on. Have an issue with one of Ionic’s UI components, something in Capacitor, or a supported plugin or cloud service? We can patch and ship hot fixes in days if not hours.
We’ve had major customers with massive apps driving billions of dollars of revenue that had their apps pulled over a weekend due to issues outside of the Ionic stack, and could not get any special support from Google beyond a canned, unhelpful support message. But Ionic responded over that weekend and worked tirelessly to provide their mobile expertise to help them out of an intensely stressful situation when no one else would. In their post-mortem, they mentioned that Ionic was the one vendor they had a positive experience with.
We take support incredibly seriously. My goal for Ionic’s support is that we become world-renowned as a model for the best possible enterprise, developer-focused customer support experience. Our customer success team is filled with engineers and account managers who put the customer above all else and fight tirelessly to make sure customers are happy and their problems resolved urgently. Our customers rave about their experience with Ionic support.
Think about Support First
With this, I implore developers, architects, managers, and executives who are making mobile technology decisions for their team and company to think about support first, instead of last when it’s often too late. Developers are an incredibly expensive resource, and a support contract with dedicated enterprise features from Ionic can be had for much less than a fully-loaded engineer’s salary.
Think about the last time you had a positive support experience with Google or Facebook, or Apple’s App Store. Those experiences are few and far between. Yet a great support experience is standard fare for all Ionic customers.
We all want our projects to be successful and we are optimistic about the technologies and the app we will build and ship to users. But the real world is complex and the sheer number of moving parts means things eventually break and often at the worst possible time.
Just ask: “Who is going to support this technology?” the next time you choose a mobile stack for your next big project, and consider Ionic if having a mobile and enterprise app development expert on-call would be transformative for your next big project.