Not sure if you need a native app or web app for your product?

So you have a great idea for a tech-based product but now you are being asked if you want to build a native application or a web application. This article explores the differences between the two different types of development with the aim of helping you with this decision.

Application vs Web Site

Before we discuss what kind of application you should develop, it is important to understand what an application is.

Almost every business that starts up requires a web site. This is one of several channels you have to communicate with your customers and tell them who you are and what you sell. Your web site is primarily a marketing tool.

There are many suppliers of web sites and many options for creating your own. Many are templated and are designed for you to create and publish content. Whilst they may have features such as allowing people to sign up for updates, download content and other marketing features, they are not your product.

An application on the other hand is a feature rich utility that is your product or forms part of your product. It may provide services that the user purchases or that support a product that your customer buys from you.

The person using you application is a user of your product and is likely to be a customer.

Put simply, your web site provides content and your application provides services.

In this article we focus on the development of the application and not the web site. Depending on how you decide to build your application, the distinction can sometimes appear to be blurred.

Native vs Web Application

With the proliferation of mobile devices, today’s products must be mobile ready. This means that when people access your product on their mobile device, it must be useable, look good and do the job the user needs it to do. In fact, your customers are likely to experience your product on their device first. Gone are the days when the mobile is the poor cousin to the desktop. Having said that, it is not advisable to assume everything is done on a mobile device and some products may need to focus on the desktop for all or part of their feature set.

Native Application

A native application is software designed and built specifically to run on a device. Typically you can identify them by the need to download them from some form of store, such as the Apple App Store or Google Play Store.

Once purchased, the application is stored on your device. Typically you launch the application by clicking on an icon of some form.

Web Application

A web application is software designed and built to run within a browser, such as Chrome, Edge, Firefox or Safari. You generally access the application using a web address, like any web site.

The application is not loaded on your device and you will need to enter the web address each time you want to use it. Of course, now-a-days shortcuts can be created and added to your device in a similar way to a native application but when clicked, they still launch the browser.

Building a Native Application

When an application is built for a device, it must be built in a way specified by the manufacturer of the device. The supplier may specify:

  • The software languages to be used.
  • The way the developer accesses the features of the device (eg: camera, accelerometer etc).
  • The way the application is packaged and how it is uploaded to their store.
  • The look and feel guidelines to ensure all applications on the device work the same way.
  • What can and cannot be done through the application.

Whilst different device manufacturers have some flexibility, the two most common platforms, Apple iOS and Google Android, are not compatible with each other.

Each manufacture also has security requirements that restrict who can create and sell applications. Once an application is built, it is reviewed before being published to ensure it is suitable to install on one of their devices. The requirements of this review process vary.

To create a native application requires the developer to have certain tools. The manufacturers provide these tools for free of charge although some require a small fee for the equivalent of a developer membership fee.

Building a Web Application

A web application essentially uses the same technology that is used to create web sites.

Whilst a native application is restricted by the device it is to be run on, the web applications are restricted by the browser they run in. Whilst there are standards for the way browsers should work, different types of browser and even the same browser on different devices can have different level of compatibility. However, modern browsers are highly compatible with few differences.

When you build your web application, you are not restricted in anyway. There are no security hurdles to jump and no one is setting rules or guidelines for you to follow.

The majority of tools used to develop web applications are open source and therefore free to use. There is no membership fee and no certification for the developers of web applications or the applications themselves.

Why Build a Native Application?

Because native applications are highly integrated to the devices they run on, they have access to all the features of the device (user permitting). These features (such as location, telephony, accelerometers) are generally not available to web applications.

Native applications generally have high levels of performance and are highly responsive to the user’s actions. They do not have to load anything from the Internet and, generally, can run even when there is no coverage.

Because the native applications are built for a particular device, it is generally very compliant to that environment. This means that compatibility issues are not expected when the operating system or hardware is upgraded.

Mobile devices are generally used by a single person. This means that the application can rely on the operating system to make sure that the user is who they say they are. This means that the user does not have to log into your application (unless the application is very sensitive, like a banking application). This results in a better security environment for your application and less security to get in the way of your user using your application.

Why Build a Web Application?

Web applications are downloaded by the user each time they want to use it. This means that you can instantly update your application to add features or to fix problems. Indeed, if a critical defect is reported and you need to fix it, you can upload the fix almost instantly without having to submit your new version for review.

Without the restrictions of the device manufacturer, you are able to provide the look and feel that you want and that is consistent with your brand. You can even blur the lines between your web site and your application with the cross over becoming transparent.

Given that the web application is not tied to a device, it will run on anything with a compatible browser. Generally this means that you do not have to be concerned about device upgrades, new models and software updates.

It also means you only have to build one application rather than one for each type of device. This reduces the range of skills your team needs and those skills are readily available as they are aligned to web technologies.

Further to this, you automatically get an application for your desktop, regardless of whether it is a Mac, a PC or some other form of computer.

Why Not Build a Native Application?

Given that the majority of the mobile device market is dominated by two, incompatible manufacturers, you will generally have to build, test, deploy and market at least two versions of your native application. You also need a team that has specialist skills on each device type.

In fact, whilst iOS maintains a very healthy update rate (> 90%), Android is patched and adapted by different manufacturers resulting in hundreds of versions being active in the market. When it comes to testing your native application, you need to carefully consider which combination of operating system and device versions you are going to test on.

Whilst native applications are stored on the user’s device, most applications make heavy use of the cloud. This means they actually need the Internet to work correctly. Loss of connectivity may result in a loss of almost all their functionality. Hence storage on the device may not be too much of an advantage.

Native applications are sold through a manufacturer’s store. Whilst this gives you some marketing services, you will be paying a high percentage (normally around 30% of your revenue) for those services. The laws around this commission are under review and may change in the future but it is unlikely that the tech companies will readily let go of those massive revenue streams.

Finally, don’t forget the user on the laptop or computer. If you want these users to also benefit from (or purchase) your application, you will need to build native (or web) applications for them too.

Why Not Build a Web Application?

Whereas native applications are dependent on the device they run on, web applications are dependent on the browsers they run in. This translates the testing requirements from testing combinations of operating system/device version to combinations of operating system/browser version. As with native applications, you will need to choose which combinations you want to test on. Whilst the range of testing is probably smaller, it is still significant.

Generally browsers are backwards compatible. This means that your web application will most likely continue to run on future browser versions. However, the reverse is not the case. You may find that you have built a web application for the current versions of browser only to find half your user base are using older browsers that do not support your web application. The variations of browser in use may be bigger than device versions.

Whilst native applications have access to the full range of features on the device, the web application is limited on what it can access. Whilst the range of features that can be accessed is increasing, generally if your application requires access to device specific features, a web application is not for you.

Purchasing of native applications is handled through the provider of the store. For web applications you need to consider all aspects of the purchase process. Whilst there are frameworks and 3rd party services that can help, your web application generally needs to be more aware of the user and the purchasing process than a native application.

In the same way that you will need to think about the user purchases, with a web application you have to also consider security to a greater extent than a native application. It must be noted though that security of the back-end services provides the same challenges for both solutions.

As the web application is deployed like a web page, you do need to consider where your application is to be hosted and how the user will access it. This can add additional costs to the web application maintenance, although these costs are generally very small.

Having Your Cake and Eat It

There are technologies that provide a build once, run anywhere as a native application, such as Flutter and Reactive Native. These would seem to provide the best of all worlds.

Unfortunately, they also provide the worst of all worlds. Their performance can be poor and, due to the need to standardise, their access to device features is limited. You still need to test them on all relevant platforms, although they are more likely to be compatible as the framework provides a level of consistency.

You also need teams with the skills in the given framework and these may be harder to find than the skills for either a native or web application.

Other Things to Consider

Applications, whether they are native or web, are typically only half of the solution in contemporary products. The other half of the solution sits in the cloud and provides the backend, database related services to the front end native or web user interface (UI) application.

When you have multiple versions of a native application, when a feature is added, not only does it have to get added to each version of the application but each has to be tested against the backend. As web applications generally only have a single version of the software, this test only has to be done once.

Conclusion

This article has looked a the differences between building native applications versus building web applications. It has described the different types of application and examined why you might want to build one or the other.

Requillion Solutions has seen a mixture of solutions used across the start-ups that we have come across. Whilst the type of application you build is dependent on your level of funding, available skills and product requirements, consideration should be given to building web applications in favour of native applications when starting a tech-based business.

The main reason for suggesting web applications is that the costs are generally lower and cycle times allow you to fail fast and fix faster. By limiting your supported browsers to Chrome and Edge, you will cover the majority of browsers in use and Firefox and Safari will work in more than 90% of cases. This reduces your testing costs. Web applications also require a smaller range of skills and can hence be delivered with a smaller team.

If you are still unsure what to build, book a confidential, obligation-free consultation with me here and we can discuss you options.

website: requillion-solutions.com.au