Posts

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?

Hybrid development follows the naming convention of most dev terms, and does exactly as its title implies; it utilizes a software development kit (SDK) to make an app that can run on multiple platforms (Android and iOS, for example) and is coded using HTML, CSS, and JavaScript – as well as others.

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.

Relatively new to the development scene is React Native, which allows developers to code an app using the same UI (User Interface) blocks as a native app, but written in JavaScript and React. It’s basically a hybrid of native and hybrid development, giving developers the opportunity to mix web-based languages with their native counterparts – and provides developers with the option to use JavaScript and React for simple processes, and the device’s native code for heavy lifting and pages that must be tight and responsive.

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:

Android Pie and iPhone 12.1.2

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.

Android Pie and iPhone 12.1.2

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

Hybrid pros:

  • Quick development cycle
  • Low initial cost
  • Multi-platform
  • Low initial billable rate

Hybrid cons:

  • Compromised UX/UI
  • Frequent updates
  • High maintenance costs
  • Handicapped ASO

Native pros:

  • Robust UX/UI
  • Reliable
  • Secure
  • Longevity

Native cons:

  • 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.

What Features are Worth it? Refining Your App Ideation and Scope

When solving a problem, it’s tempting to want to solve every problem. Replacing your car battery? Might as well change the washer fluid. Have a routine check-up with your doctor? Might as well get that flu shot.

While it’s pragmatic to perform routine maintenance on your car, addressing tangential pain points when designing your app can bloat your budget, muddle development, and reduce your app’s user experience. Before deciding what features your app should use, figure out the main pain point you want your app to address.

“I always ask my clients to describe what their app does in two sentences,” said Nick Jones, CEO of NS804. “If they can’t do that, I know we need to work together to create a concrete, straightforward idea.”

The key to successful development, and in turn, a successful app, is to identify your primary pain point, and then focus on solving that, and only that. All other solutions will stem from your original pain point. It’s like writing a thesis statement – your overall idea needs to be summed up in a few sentences – later, you can get into the details.

“Do your one thing right,” said Jones. “and do it well.”

So, you’ve done your market research, and have identified your main pain point. How do you implement your findings into a successful set of features? Are there certain app features that will provide the functionality your users need at less cost than when compared to another? What even is a feature?

First, let’s go over just what an app’s features entail. Widely used features are as follows:

  • Mapping/GPS/Navigation
  • Social Sharing
  • Back End Management / Reporting
  • Game Center
  • Push Notification
  • Augmented Reality
  • Virtual Reality
  • Real Time Updating
  • Third Party Tool Integration (API)
  • Graphics

The more features your app includes, the more time your app spends in development, and the more money you will inevitably spend. Out of this list of features, graphics (including AR and VR) and back end integration are the most time-consuming and expensive features to include in your app.

Keep in mind that certain features can be used, but in a sparing manner. Your app might need a back end to manage data, but it might be manageable without website integration. Your app may need to use graphics to convey ideas to users, but icons might suffice instead of 3D graphics. Find ways to trim the fat from your app’s features, and in turn reduce your budget.

Features are the core of your app, and they include everything from simple fields for users to select, to massive back end infrastructure to manage cloud data storage for millions of users. There’s a wide range to choose from, so make sure you choose wisely.

How do I implement my findings from my market research into a successful set of features?

Building Apps with Strategy

Let’s say you run a farmer’s co-op, and based on market research, you want to offer your customers an easy way to select their choice of produce to be delivered each week.

That’s all you should focus on for now; providing your users with a simple interface for selecting your currently offered produce, and fields for inputing their delivery address and contact data. To achieve this, the only features your app would need to function are:

  • Simple graphical fields for selecting produce
  • Simple fields to input user address and contact data
  • Back end management for storing and accessing a user’s address and contact data

Believe it or not, that’s really all your app needs to complete your goal. Adding quality of life features – such as a produce rating system used to give customers product suggestions based on food they like – can be added in the future.

Your delivery drivers can input delivery addresses directly into their own phone’s navigation system, so there’s no need to implement navigation in your app. Need to contact a customer? You can use the contact data provided to call or text. In the future, internal app messaging might be something to consider, but you’re not making a messaging service. Don’t be afraid to rely on other apps’ functionality – your users aren’t downloading your co-op delivery app to check the weather.

The more features your app has, the more time is needed to test and debug. When you focus on solving one problem, you reduce your development and testing time, which saves you a lot of money. The less features your app implements, especially at launch, the more robust its user experience will be, as new users will not only be introduced to a simple, easy to understand UI, they also won’t be confronted with as many bugs (or optimally, none at all).

First impressions are important, and it’s no different for your app. If a user downloads your app, and finds they are inundated with various options, numerous fields, and a lengthy learning process, they’re much less likely to continue using your app. Keep in mind that your app most likely isn’t the only one on their phone, so don’t try to do everything.

Another benefit to focusing on solving one pain point is smaller file size. Apps take up space just like any program, and 1 in 6 users delete one app per week to free up storage space. If your app isn’t taking up too much space, it’s less likely to be deleted to make room for another app.

Your app only has to do one thing, but it has to do that thing better than anyone else.

How do I know I’m providing my users with enough features to satisfy them?

Satisfied Users

After solving your initial pain point, this question is solved by listening to user feedback.

User reviews and feedback are fantastic channels to understand your user’s mindsets. This direct-from-customer research is a goldmine for you; use the reviews and feedback to develop features that improve your app’s user experience and functionality.

When you listen to your users’ requests, you not only develop your app based upon free market research, you strengthen your relationship with your user base. Your users requested push notifications to alert them when your co-op has delivered produce to their door? Do that. It’s a tangental solution, but it still circles back to the app’s main pain point – hassle-free produce delivery. If a user requests a game to keep them occupied while they wait for their delivery, don’t do that. It’s a simple example, but some user requests can be off-track from the main pain point your app solves. Learn to distinguish the bad from the good.

Here’s a litmus test for determining a good feature from a bad one; if the extra feature provides a more complete solution to, or enhances the user experience when solving your main pain point, it’s good. If it doesn’t directly relate to your main pain point, you can decide whether or not it’s truly needed. There’s no definite answer when determining if a feature is bad, but it is easy to figure out if it’s the right fit for your app.

It’s almost like writing a novel. Does your newest chapter fit within the story’s theme? Does the dialogue progress the plot? It works very similarly with app creation – if a feature expounds upon the central solution your app provides, it’s most likely a useful feature. If you’re finding it hard to justify why a character in your story wears flip-flops in the winter, it might not be integral to your plot. In the same vein, if a feature isn’t easily justifiable when held up to your app’s main pain point, it might be better to forgo it.

It’s always better to pick a manageable number of features to focus on – and to execute those features as best as possible – than it is to cast a wide net in an attempt to catch users with multiple functionalities. Venmo, for example, does one thing – money transfers – and it does them well. The average smartphone has 35 apps installed on it – you’re not competing to provide the answers to every problem your user has – you’re focused on providing the optimal solution to one problem out of those 35.

When you provide your users with an easy-to-use app that solves a specific pain point in their lives, they won’t mind if your co-op produce delivery app doesn’t provide real-time map updates, as long as they receive their delivery at the scheduled time and date. Build your foundation first – then add the decorations.

Measure twice, cut once

Plan Ahead

It’s an old adage, but it rings true. Before taking any steps in developing your app, identify the pain point you want to solve in your target audiences’ lives. Then research that pain point; How many people does this effect? How do they handle this problem currently? What are they asking for? How can you capitalize on this need? What are the most efficient ways to accomplish this?

The first webcam was used by programmers to livestream a coffee pot, so they wouldn’t waste a trip to fill up their mug; it solved their individual pain point, but it didn’t solve the true need millions of other users had. Before executing an idea, ask yourself; is this the root, or a branch?

When you have a solid foundation, and a main focus, build your app around that and only that. If there’s another pain point you discover that isn’t in line with the solution your app is designed to provide, make another. That’s another revenue stream for you.

Do your one thing, and do it well.

Interested in learning more about efficient development techniques? Check out our Minimum Viable Product page.

Richmond Biz Sense “Accounting/tech duo launching ‘mobile CFO’”

CFO Sidekick is a mobile app that can track and analyze a business’ revenue, profitability and liquidity. It will also be able to store documents and let users communicate with each other, as well as offer daily tips on business practices and a glossary of accounting terms. Users must have an account with QuickBooks online to use the app.

Steiner created the product with the help of Nick Jones from local app development firm NS804Apps. During the six-month development process the two struck a deal that made Jones a minority partner in the venture.

Read More Here