Native apps, hybrid apps, or maybe webviews. Which approach to choose

Native, hybrid or maybe webview applications. Which approach to choose?

Recently I was talking to a studio specializing in mobile applications and I opened my eyes wide with surprise when I found out that all their applications are made as hybrids of. I quickly considered two scenarios in my head:

– or hybrid apps have already matured to the level of offering them to customers as the only solution,

– or the company having once competence in web development (JavaScript) does relatively simple mobile projects, so it can solve customer problems with hybrids.

Many people who use or order mobile applications will not notice the difference between the same application written in different technologies, but for a specialist the difference is noticeable at first glance – primarily in the speed of operation, in the possibility of application development and to a small extent UX for the user. Below I put together the arguments for and against responsive websites (running on webview), native apps and hybrids.

Webview application

A webview application is nothing more than a responsive website (RWD), usually with an added top menu and very basic functions, e.g. logging in, language change, application information etc. Applications of this type are made with a minimal budget, for example to get the user used to. Customers of popular brands are often looking for a mobile app. An example is the Diki English dictionary. Application displays passwords from a web page. Nearly a million Poles have downloaded it so they don’t have to go into a web browser each time to use a dictionary. The general reception of the application, despite its poor functionality, is positive, as it allows to check the password, listen to the pronunciation, etc.

Example: diki dictionary – webview application, Langmedia

Native application

A native application is written for mobile devices from the beginning. In Swift language for iOS (formerly Objective-C ) and Java for Android. Recently Kotlin is also gaining popularity as it has a similar syntax to Swift). It is the easiest to achieve consistency with the operating system, because it is based on native components from Xcode or Android Studio, therefore it will offer the best interface design and UX. When you download a native app, you also download a bunch of data, e.g. labels, translations etc. Only some items are downloaded over the Internet. It makes the app load data much faster than a web app, needs less data. Additionally, the native application contains only code specific to the operating system, so the device processes it faster. Importantly, without additional plugins, it is possible to use the phone’s built-in features. It involves sensors – camera, microphone, GPS, fingerprint sensor etc. But also built-in calendar, contacts etc. Use will require permissions, but programming this module is fastest and easiest for a native app.

Below is an example – application Zdrojek Woli Wodę (Żywiec Group). Application uses camera, microphone to interact with user. It also includes a lot of animation. It is much easier to write it as a native application.

Hybrid application

In simple terms – hybrid apps translate code into native languages for Android and iOS. Despite the great progress in all such libraries, it will still involve installing plugins, for using system elements or programming elements as for a native app. So if the application is relatively simple and presents data pulled from the database, it does not use the built-in functions of the device. In this case, hybrid applications can be used.

Example: Application Science in Poland, PAP, written using Ionic

Will hybrids replace native apps?

Nowadays there are both web, hybrid and native apps available. There are no statistics available at the moment, what is the ratio in Google or iOS stores between hybrids and native apps, because hybrids are “translated” before being added to a given store into the language of a given operating system. Native approach prevails where speed, stability and the use of phone sensors (camera, microphone, location) matter. The popularity of hybrids in my opinion is due to the ease of updating as well as writing them. Writing one program, we get two products. Ease and cost of maintenance is also not negligible. When modifying a native app, we need to remember to make changes for both platforms.

Many developers are familiar with JavaScript, used for interactive elements of web pages. It is a basic language of the most popular hybrid application frameworks – Ionic, React. React was created by Facebook developers, for ease of mobile app development. Despite this, the dominant approach of the Facebook app is still the native app. Probably because of the speed of operation and the number of functions it provides. Currently, the FB app is also the third most popular web browser! At the same time some of its elements are written in React.

The common denominator of all apps

Most mobile applications present information from a database, that is, through an API (usually REST). In other words, they take information from other sources. So no matter which approach prevails, it is very important that the data source (e.g. CRM, ERP) from which you download data, presented data in an accessible and safe form. Experience teaches that it takes the most work to create good points of contact that the application – whether hybrid or native – will use. In case of a web application, the situation is clear, because the source of data is a web page.

Which approach to choose – native or hybrid?

Solomon solution is to create an application only for one operating system. Which is an approach often used to test games or applications in the early stages of development. iPhone’s owners, although in the minority, account for most of the money spent on apps. Developers know this, sometimes deciding only on this system. At the same time, if you want a wide reach and a free application, it is worth starting with Android. This approach is used for example by cab companies for drivers. You may want to test your idea by starting with just one operating system?

It is not worth creating a mobile application if the users will not come back to it – for example, if they enter it only once or twice e.g. to read an article or sign up for a newsletter. Use the web approach if you do not plan to develop the application, but you want to appear in Google and Apple stores. If your application does not use sensors on the phone, but you want to reduce costs, think about a hybrid application. Finally, if you think you can offer value to users through a mobile app, it makes sense to start by developing it for one operating system. Once you test it and refine it, you can prepare it for the other operating system as well. Remember, however, that the most important thing is a well-developed data source and API, from which the application (regardless of whether hybrid or native) will download data.

I hope I managed to help you, and at the end a short summary of the thesis of the article.