Hint: You can try both
The global mobile app market has been growing exponentially in the past years. Given the present growth trends, businesses’ decision to go mobile is understandable, if not entirely logical.
Most merchants choose to design their mobile apps for both platforms. But here comes the challenge: because of different iOS and Android operating systems, developers are at times forced to make the same app twice to reach both audiences.
I’ve seen this technical hurdle plaguing the industry for years. Fortunately, there are two solutions to address it: either by developing two native apps or by applying a cross-platform approach. Each solution brings its benefits to the table and should be considered based on the stage of business maturity and market demand.
How to choose between a native or cross-platform development and which pros and cons each of these approaches have for the business — read more in this article.
There’s the basics you need to know before choosing between native vs cross-platform apps.
A native app is made with platform-specific code in a language dedicated to a specific mobile OS. These are usually Java or Kotlin for Android and Swift or Objective-C for iOS. So if you want to see your app in both Play Market and App Store, you would need to employ two teams of programmers working in IDEs specific to a chosen OS.
A cross-platform mobile app is built as a single solution for multiple operating systems and platforms (Android, iOS, Windows). Some most popular cross-platform frameworks are Xamarin, React Native, and Flutter. Such apps pretend to have the native look and feel and are praised for their cost-effectiveness.
Problem solved, you might think. Not so fast, I’ll say.
Even though a cross-platform app will take much less time to develop and less budget to invest, it’s not as performant as a native app. Your choice should depend on your targeted user expectations, complexity of your app and the stage of your business maturity.
Here are four common case scenarios businesses might experience in mobile development.
Case #1: You’re a startup that needs an MVP to test the market traction.
The most cost-effective solution for startups is to use their own engineers with current skills.
The point is: sticking to the technology you’re already familiar with might save you a pretty penny at the beginning of your business journey.
Case #2: Your product is good enough for your users or has its own immersive UI.
You must be taking strides with your product, and your users seem to be satisfied with it. Such businesses usually opt for a hybrid solution, especially if:
In this case, cross-platform solutions will strike a compromise between your budget and the app’s user experience.
Case #3: Your users are demanding top notch user experience, and your competition is using native apps.
At this stage of business maturity, your primary objective should be to attract and retain your audience by improving UX. So even in the case of a cross-platform app, you would eventually decide to introduce some native plugins under the hood. This way, your app can access the platform-specific features, like native Bluetooth, ARKit, notification systems, or something else entirely.
Case #4: Your business requirements are so complex that only a native app can fulfill them.
Congrats, you’ve reached the level of Pokemon Go or Spotify business maturity where only full-fledged apps with platform-specific functions will fit. Your app probably requires extensive control over the mobile device (like camera, GPS tracking, NFC, etc.) and contains in-app purchases or tokens.
The aforementioned stages are purely descriptive and vary from one use case to another. At the end of the day, you may go completely native or stay on cross-platform depending on what brings more profits at every stage.
Let’s talk specifics now. When discussing the cross-platform apps, we need to consider their pros & cons in the following three context categories:
Web-based apps. Developed, for example, on Ionic or Firebase, web-based apps are easy to implement but rather slow in terms of performance. They have limited access to hardware features, such as location or mobile sensors.
Language-centric apps. Built with Qt (C++) or Java, language-centric apps can be easily customized but have issues accessing platform-specific UI, like native animations, toolbars, screen customizations, etc.
Hybrid apps. Developed on React Native, Flutter, or Xamarin, hybrid cross-platform apps have the best of both worlds. You can use the language of your choice, as in web-based apps, but with the performance of native apps.
No matter the context, all cross-platform solutions boast of the number of benefits:
You get to use the language you like or know (or work with developers who have such technical expertise). Be it Javascript, C#, or C++, cross-platform apps can be written in any language.
You can target various markets. Thanks to the shared codebase, you won’t have to spend additional financial or engineering resources to develop an extra app.
You’ll cut your time-to-market. Because cross-platform solutions are compatible with different OS, you can quickly introduce and test the in-app changes. That leads to a faster product launch which beats competition and translates into revenues.
You’ll go easier on your budget. Cross-platform development is seemingly cost-effective; in most cases, you’ll need to hire only one team of developers to build and maintain your app.
But every silver lining has a cloud. Oftentimes, businesses opting for a cross-platform solution face a grim reality for a number of disadvantages.
Actually, a number of these disadvantages have forced Airbnb to move off cross-platform development. Different text rendering on each platform, JavaScriptCore inconsistencies, continuous investments to support the volatile landscape of the React Native ecosystem — these are only a few pain points that have impeded the company from further growth.
I wouldn’t say that cross-platform apps are the holy grail of software development. Indeed, they pave their way as a revolutionary technology but will yield positive results only if applied in specific business contexts.
Not all pros of cross-platform solutions are the cons of native development. Here are the key reasons why businesses consider native solutions for their projects.
Optimal Performance
Slow performance of cross-platform solutions provokes a domino effect no entrepreneur wants to see. Such apps usually wrap over native SDKs. This causes the app lagging. And slow performance affects user experience.
Just compare the boot time of native vs cross-platform databases. SQLite database access and or REST networking performance of native iOS and Android apps is more than 500 percent (!) faster than any Xamarin analogue. You would see a remarkable difference: Xamarin is just slow.
Performance issues and frustration over long-term maintenance costs were actually the reason Udacity scrapped React Native. The load time of some animations in the app was longer than the team expected. It also hardly felt like a seamless transition, especially on Android devices which were more prevalent in international markets.
Time-to-Market
Optimal performance isn’t the only strength of native apps. Their next greatest strength is the instant availability of resources.
Think about it. With a native app, you have every tool of the specific platform at your disposal – right now and with every update. With a cross-platform solution, you constantly need to adapt to new platform features and technologies.
You might tailor your cross-platform app manually or wait for about six to eight months until the existing solution adapts itself to the new OS automatically. But the trick is that you’ll experience this with every new OS release or update. And that also slows down your time to market.
I see this almost every month in Apple. They often tighten the screws on what a mobile app can and cannot look like to be released in the App Store. Sometimes it’s about an additional checkbox in the Xcode project settings; other times it’s about the new key in a plist file of the product bundle, and so on. While such changes can be easily handled in Xcode, cross-platform apps will take ages to adapt. Because you rely so much on developers of the cross-platform framework/solution, your product launch is delayed and your business suffers. It’s a pity to see projects that have everything ready for the final release tomorrow, including banners and promotion, but can’t update because of one checkmark.
So unless you wish to run a race without a finish line, you’ll have to switch to native development sooner or later.
Cost
Cross-platform development is praised for its cost-effectiveness but, truth be told, this is highly application-dependent.
If your app doesn’t require access to the device features or its hardware data, cross-platform is indeed the best solution. But suppose your app needs to access CoreML, Vision, or the latest additions in secure networking, what do you do? That’s right, you still call a native developer to implement such features.
Even if your app runs on React Native, you’ll still need to implement a bridged API using the native API. So your developer must be familiar with native SDKs and experienced at React Native itself. Frankly speaking, this combination of skills is hard to find. Even if you do, the hiring process of such guys could become a nightmare: they’re expensive and hardly available for other projects.
My point is: even if you build a cross-platform app, you can’t avoid native development. Cross-platform development is still technologically tricky, and frequent consultations with the “natives” will increase the time, resources, and cost of development.
Burn Rate
Every startup knows what a burn rate is. It relates directly to time-to-market (see above) and measures how quickly the company spends money.
Many businesses view cross-platforms solutions as a magic sword to cut their burn rate to the minimum. Tech leaders believe they will burn less investors’ money by creating an MVP fast and releasing it to the market ASAP.
In reality, this plan works only until a certain extent. Cross-platform approach will allow you to build an MVP and earn a quick buck in the face of the investors. But its polishing to the production quality and maintenance might burn your budget much faster: you can never predict the complexity of tasks to fix bugs and polish up the app.
Obviously, there’s no simple answer as to what app development approach is better. Both cross-platform and native development can become powerful solutions as long as you apply them at the right time of your business maturity.
Let me give you a few final pointers that will, hopefully, make this decision easier: