How to Build a Mobile App: Native vs. Hybrid Development
Every business and entrepreneur wants to push their product to market with the smallest investment of time and capital as possible, and for good reason. It makes sense as an appreneur to seek out the method of mobile development with the lowest cost, which is usually hybrid app development.
In our second installment of How to Build a Mobile App: The Ultimate Guide, we’ll look into the pros and cons of both hybrid and native app development, and shed light on why when examining the entire lifecycle of an app, we believe native is the more cost effective choice.
It is important to note that this is a topic of debate with a wide and varied array of opinions and conclusions. Throughout my research on the native vs. hybrid debate, the overwhelming consensus is that “it depends on the developer.”
Developers and blogs are quick to espouse the pros and cons of native and hybrid apps that the tech industry has agreed upon, but there seems to be little supporting evidence as to where these findings originated, other than from their own personal experience. Articles, thought-pieces, and blogs have all come to contradicting conclusions based upon the same sets of data, and these conclusions seem to arise from the opinions and skillsets of the developers or authors themselves.
Regardless of any opinion about native and hybrid development, the most important step you can take as an appreneur or business is to work with a developer you trust – but it is important to know how each method of development can influence your app’s future.
This is a debate that seems to be mainly fueled by opinions rather than stats – but we will provide as much insight as possible by using what case studies and supporting data are out there.
There are many different lenses from which to view this debate, but we will mainly focus on answering these questions:
- What is hybrid development?
- What is native development?
- What do they mean for your users?
- What do they mean for your business?
What is hybrid development?
A hybrid app’s code is passed through a “wrapper” that the OS can understand – like an English speaker using a phone to translate a conversation with a Spanish speaker. Hybrid apps rely on plugins to access your device’s functionality – such as the device’s native hardware, camera, mapping, messaging, and email functionalities. Plugins are built and supported by third parties, and a hybrid developer doesn’t have control over how a plugin functions – only when and where it is implemented.
In a similar vein, a progressive web app (a hot topic right now) uses the device’s native browser to access a website specifically designed to display information on a mobile device. It’s akin to clicking a hyperlink, but instead of taking you to a link, it takes you to the site where the app is hosted. The app isn’t visually displaying the browser layer, but uses the device’s browser as a way to connect the device to the app.
What is native development?
Just like hybrid, native development’s name describes its exact method of app creation; apps are coded using languages native to a specific platform, such as using Swift to write for iOS, or JAVA for Android.
Native apps can seamlessly integrate with the native functionality on your device – this gives native developers the opportunity to focus on designing the main aspects of your app, rather than spending time working with third party plugins to achieve the same functionalities already included on your users’ device. Native apps are also more secure than hybrid.
What do they mean for your users?
Your users honestly don’t care if your app is built using hybrid, native, progressive, or React Native development. They care about solving their pain point – and how well your app solves that problem. Whether it’s Snapchat (a natively-developed app with a focus on iOS) solving the dearth of filtered selfies, or an HVAC engineer using an augmented reality (AR) app to run diagnostics on a broken system, your users care about how responsive your app is to their inputs, the intuitiveness of its UI, and the quality of the solution it provides.
Users want your app to feel like it belongs on their device; they don’t want to be forced to learn how to use your app. They want your app to work for them, and the easiest way to ensure your users are provided with an intuitive UX (user experience) is to natively develop your app.
When it comes to UX/UI, natively-developed apps will almost invariably perform better than hybrid. Native apps are not only coded for a specific platform; they provide a UI that is designed to the standards and conventions of that platform. To put it simply; using an iPhone feels completely different than using a Samsung. They both display interactive information across a touchscreen; and for a user, that’s just about where their similarities come to an end.
Over time, Android and iOS users have come to expect certain commands to perform specific functions, and both platforms rely on their users to interact with apps using different sets of intuition. Both platforms have released style guides for developers to follow, which can vary significantly in their principles of design and function.
Take, for example, the difference between the home screens of Android Pie and an iPhone X:
Above (left to right): Android Pie, and an iPhone X running iOS 12.1.2
Have you ever borrowed a friend or colleague’s phone, only to be presented with an unfamiliar UI? It’s a jarring experience, and it’s an excellent example of the personal connection we share with our phones and other mobile devices.
Android users will intuitively search for the “hamburger” (three horizontal lines stacked on top of each other) style menu to access information, while iPhone users will expect bottom menu bar navigation. It seems pretty straight-forward to adapt to either system, but users quickly form strong opinions based on their first interactions with an app, and users are more likely to uninstall your app than keep it. Within the first 3 days of an app being downloaded, 77% of the users who downloaded it have already uninstalled.
An important thing to keep in mind is that your app is not the only one on a user’s device. There are most likely apps competing for your users’ attention, and those users are liable to switch to another app at any time – especially if it doesn’t provide the best experience possible. According to Dynatrace, a software intelligence company, 48% of users are less likely to continue using your app after a negative experience, 31% are less likely to purchase another app made by your company – and will spread negative word-of-mouth marketing to their friends – and 26% will give your app a negative rating.
This is why your development method matters to your users. An app with a hybrid design will run on both platforms – but it won’t run as well as a native app. A hybrid app will always be forced to sacrifice the aspects of the user experience that make each platform unique; and because of this, your app will feel less personal – and mobile’s strongest attractor is the personal experience it provides.
If your app isn’t responsive, and doesn’t flow seamlessly with the rest of the UI/UX a platform offers, users will grow frustrated – which can lead to them switching to a competitor, or giving your app a bad rating or review.
What do they mean for your business?
Simply put, hybrid development will almost invariably have a lower initial cost and faster development time when compared to native. This is for two main reasons: There is no extra cost to write code that runs on multiple platforms, and they are written using languages web developers already know.
This means that when developing for multiple platforms, hybrid development takes roughly half the time of native, and opens access to two markets for the cost of one. This method of development usually comes with a lower billable rate, as web developers make about 20% less than mobile developers and spend less time coding and testing (initially), as the app runs on every platform using the same code.
These factors indicate hybrid development has both a lower initial investment and opportunity cost when compared to native, and are extremely compelling reasons to choose hybrid over native; but the lower up-front cost and doubled market size are traps that can lead to issues down the line that can severely hamper your app’s growth and sustainability.
It was in 2012 when Facebook CEO and tech giant Mark Zuckerberg was quoted saying “the biggest mistake that we made as a company is betting too much on HTML5 as opposed to native,” in an interview with TechCrunch. “[I]t just wasn’t there,” he continued. “[S]ince we’ve done the iOS app we’ve seen double the amount of feeds people consume.”
The social media company had many reasons for switching to native development, which were presented in a post detailing the performance issues and limitations Facebook encountered with HTML5. Some of these performance issues include:
- Lagging scrolling speeds
- Janky animations
- The overload of data in the feed would sometimes cause the app to crash
These were issues Facebook deemed important enough to spend the time and money on developing their app natively, and is a perfect example that no matter how large your market presence is, your UX is crucial to your app’s continued growth and success.
A hybrid app may have a lower initial cost than a natively-developed one – but a native app will provide a better experience, and only the best apps perform well on the App Store and Google Play. In 2016, the top 200 apps on the App Store had an average of $82,500 in daily revenue, while the top 8,000 apps had an average daily revenue of just $3,500, a stark decline that demonstrates the need to be the absolute best at providing the solution to whatever pain point your app aims to solve.
As another example, in 2016, AirBnB took a leap of faith and began development using React Native, a switch from their native development roots (a five-part, in-depth study into their experiences with React Native can be found here). Ultimately, AirBnB decided to switch back to native development for many reasons, including:
- There were technical and organizational issues with React Native that hampered development, causing unexpected delays on projects that could easily have been completed using native code.
- It turned out that while their app was created using React Native, only a small portion of the app was truly coded using React. In order to work effectively, bridging infrastructure was required, and the engineers were forced to add to their work load by supporting code on three platforms instead of two.
- While build time iterations were an order of magnitude faster than native, debugging could take days.
When comparing the cost of developing an app for both iOS and Android, native development will always be more expensive than hybrid, as code must be written separately for each platform, leading to more billable hours – but keep in mind that companies like Facebook and AirBnB have deemed that investment to be worth it.
Web developer for Mozilla, James Long, even released a thought-piece in 2015 detailing why hybrid apps will never compete with native when it comes to performance and UX.
Your users decide whether or not your app is successful, and their decision is based on their experiences using your app. Your UX is largely determined by your app’s method of development, and native development almost invariably provides a better UI/UX.
In an interesting study, Alex Sullivan (a developer and writer for thoughtbot) created a simple stopwatch app for Android using three development methods: native, React Native, and Flutter (a hybrid development kit). When testing on a Nexus 5, the natively-developed app beat out both the React Native and Flutter apps by a “non trivial margin when it comes to performance,” and both CPU and memory usage were lower on the native app than the React Native and Flutter apps.
If your app does the same thing as a competing app, but the competing app does it one second faster, users will switch to your competitor. If there is a marked difference in performance for an app that only functions as a stop watch like Sullivan’s, its easy to extrapolate why companies like Facebook decided to switch to the more expensive option of native development; they were worried someone would do it better and faster.
One of the most important factors in determining how successful your app will be is your app’s App Store optimization, which is colloquially abbreviated to ASO. ASO is used to boost your app’s ranking in the App Store and Google Play by utilizing trending keywords to catch users searching for a solution to their particular pain point.
In the future, we’ll take an intricate look at all the strategies you can utilize to perfect your app’s ASO.
Other than keywords, your app’s user ratings, reviews, and retention are the key variables used to determine your app’s ranking on the app store. Each of these factors has a direct correlation with your app’s UX/UI, and this is where the trap hybrid development sets becomes twofold; with a cheaper and more direct path to a multi-platform release, you set yourself up to fail twice as fast, and twice as hard. Beating another appreneur or business to market is all well and good, but as soon as a competing app comes into the picture, it only has to provide a slightly better UX/UI than yours to begin siphoning from your user base.
This is where the longevity of native and hybrid development really starts to split. All apps require updates throughout their lifecycle – sometimes due to the platform itself updating, security issues, implementing additional functionality, or improving UI to follow current design trends.
If your app is hybrid, when an update for a platform is released (no matter how small of an update), you must check every plugin to make sure it’s still functional. If a plugin isn’t functioning properly, the developer must wait for the third-party provider to update the plugin itself – this can lead to downtime that is both out of your control, and your developer’s.
Hybrid apps must constantly be re-worked and tweaked to function properly on different platforms, and you’ll often attempt to solve one issue on one platform, only to begin working on a different problem for the other.
The trap set by the initial low cost of hybrid development becomes exponential by this point; a hybrid app’s UX/UI will under-perform natively-developed apps on both Android and iOS, which in turn leads to lower user ratings, reviews, and retention on Google Play and the App Store. Even if your hybrid app provides the best user experience it possibly can, there’s most likely a native app out there that’s doing it better. If a competing app’s average user rating is a four, and your’s is a three, those ratings add up, and can lead to a significant disparity between the two apps’ ASO and overall ranking.
A hybrid app, by this point, is stuck between a rock and a hard place. It may have been on the market for a longer period of time than a native app, but time on the App Store or Google Play isn’t the key factor in determining your app’s success: it’s ASO. The hybrid app will constantly be battling the low or mediocre user ratings it receives, which is a huge handicap to your overall ASO score. You must now weigh the options before you: constantly provide users with updates to keep up with competition and the standards of multiple platforms, or walk away before your sunken costs get out of hand.
A native app also has the added benefit that a large chunk of your app’s ASO comes from a passive source – those being user retention, ratings and reviews – and since those factors are already robust, it gives you the ability to focus purely on keywords (the lifeblood of successful ASO) and trending topics.
It’s like building a house; it doesn’t matter how pretty the paint is if the foundation isn’t sound. A house with good bones might have a higher initial cost and take longer to build, but throughout the years it requires much less maintenance, and updates to the home can add additional rooms rather than fixing extant issues.
Interestingly enough, while hybrid apps require more updates and usually have a higher rate of bugs and crashes when compared to native apps, 44% of hybrid developers don’t track errors and crashes (this stat comes from an article arguing hybrid is a better option than native).
The pros and cons of hybrid and native development
- Quick development cycle
- Low initial cost
- Low initial billable rate
- Compromised UX/UI
- Frequent updates
- High maintenance costs
- Handicapped ASO
- Robust UX/UI
- Slower development cycle
- Higher billable rate
- Higher initial cost
If you’re considering building an app, and are worried about the up-front costs of native development, remember that you can always start with a natively-developed MVP, and build from there. Taking the extra initial time and cost to produce a native app will inevitably save you money if you plan on your app being around for more than a year, and it’s better to start with a solid foundation than trying to go back in and fill cracks later.