Native or Web-based? Both? 
Deciding the right approach for your mobile app
Published: 2022-02-10 22:00:28

So, you’ve decided to create a mobile app. There is one critical decision that you need to make right away that will determine the project’s long-term viability: whether it will be designed as a “native” or web-based” app. 


## What is a native app? What is a web-based app? 🤔

A native app is one designed for a specific platform, such as iPhone or Android, and uses the platform’s code libraries and hardware features (camera, GPS, etc.). On the other hand, a web-based app is hosted on the internet and can be accessed through the mobile device’s browser. 

Let’s look at the advantages and disadvantages of both approaches while taking into consideration the possibilities of doing both (native AND web-based) due to the advancement of web-based apps. 

---

## **Native App**

## PROS
**Accessing a phone’s available hardware features**
This has undoubtedly changed as web apps now have access to the following hardware: GPS, device motion, Bluetooth, camera, microphone, and biometric authentication. However, NFCs, flashlights, authentication, and nearby or proximity capabilities remain exclusive to native apps.

**Distribution through the App Store or Play Store**
Native apps are distributed through the Apple Store or Play store which makes them discoverable and creates a sense of legitimacy for the app/brand. 

**Better security**
If you want to save data on the device, you can use hardware-backed security to keep data safe. You can utilise the [Android Keystore system](https://developer.android.com/training/articles/keystore), for example, which allows you to store cryptographic keys to make it more difficult to extract from the device. This is perfect for sensitive data, as keys are generally difficult to get and thus, making data inaccessible unless the phone is unlocked. 

## CONS
**Approval from the App Store takes time**
Approval by the App Store, specifically, is difficult due to their strict constraints. The approval process of for the App Store can take 1-4 weeks, and at times, may take much longer than that. If you only have a native app, distribution is limited by their set rules and guidelines. 

**Higher costs – time and money**
A separate code base must be created for individual platform (iOS and Android). There may be higher expenses associated with maintaining and developing the app. 

**Lower conversion rate due to download requirement**
There may be a lower conversion rate among your users (getting them to actually download your app) as they may find it too time consuming or have too many steps involved to download your app. For example, some web-based mobile apps are generally just marketing platforms to promote their native app counterparts. If a user is not familiar with you or your app, there is a greater probability that they may abandon your website and not download your app at all. 

---

## **Web-based App**

## PROS
**Freedom**
Your app is not tied to the rules, terms, and conditions of the app stores. It can be released at any time and in any format.

**Easy and cheaper to build/maintain**
You can leverage a common code base across multiple platforms. You don’t have to worry about creating specific code to each platform (iOS and Android). This will make it easier to maintain and roll out any new features to your app. 

**Has some native-app capabilities**
Web-based apps, specifically PWAs, have functionalities that imitate native apps. They offer an installable experience as PWAs installs like a native app to mobile’s homescreen, they have push notifications, and work offline to allow browsing of pre-loaded content.

## CONS
**Page loading speed**
The loading speed of your web-app depends on browsing speed and your user’s internet connection. However, there are ways getting around this through optimization for your web performance such as minifying JavaScript and CSS as well as using lazy loading to increase performance experience

**Browser storage is not infinite or consistent**
If your app will be storing a lot of data locally, web browsers have a lot of limitations on how much data you can keep so you can remain offline. Chrome, for example, can store data up to 6% of free disk space, although Safari can only save 50 MB.

**Not discoverable through the App Store or Google Play**
This exclusive feature is slowly being extended to web-apps as well. Most recently, PWAs can be distributed through the Play Store. For example, one could use [Bubblewrap](https://chromeos.dev/en/publish/pwa-in-play) as a CLI to wrap their PWA in an Android App Bundle for distribution through the Play Store, without the requirement to know anything about Android app development.

---

## **Final Thoughts** 💬

So? The verdict is that it depends on the context. If you want to store a lot of data and develop a game with the best possible experience, you should design a native app. There are many companies who are doing both (e.g. YouTube and Airbnb). Keep in mind that web apps are continuing to mature (e.g. PWAs) and may have an even bigger scope in the future. 

In the end, from a user experience perspective, it is better to optimize the use of both native app AND web-app to create some sense of seamlessness in your app’s brand.