Development / 07.30.2017

Eden Chen

Native App Development Versus Web Development

We walk through the technical differences between a web application and a native application and when it makes sense to build a native application.

 

The technical gap between native applications and web applications are narrowing.

There have been many articles out there that have looked on the pros and cons of native app development and web development. At the latest conference we attended, we found that there was still a lot of confusion on what the technical differences were between a native mobile apps and mobile responsive web apps. One of the most common questions we get is: “should I build a native app or a web app?”

Increasingly, the technical gap between the two have narrowed. We have also seen a shift away from native app development and towards web development in our business the last 12 months (part of the reason for this though is that we’re working a lot more with large brands that are focused on marketing and advertising though).

Responsive web apps can now send web push notifications, access some device capabilities like the accelerometer (try going to this link on your phone and moving your phone around), and apple pay and android wallet are now usable in browser. Google announced at I/O that augmented reality will now be available in the Chrome browser. VR is making it’s way into the browser (try pressing the goggles button on the bottom right and putting your phone in a headset). You can now play videos on web browsers without having to use the native video player (see this instagram video on your phone as an example).

There’s still remains uncertainty on what can be done and blanket statements are not helpful as iOS and android both have different restrictions. iOS for example does not currently allow you to have access to the camera through the browser, so AR (augmented reality) still has some hurdles to pass before making it over to web.

The core difference between a responsive web app and a native app is that websites talk directly to the browser (with permissioning that gives you access to the device), whereas apps talk directly with the device.

We’ve created a list of where native mobile app still hold differentiation below. After this, we’ll go through a quick discussion on the reasons why we feel one should build a mobile app and why we feel one should not build a mobile app.

These are some of the features that native applications have that web applications don’t:

– Full screen access (web apps don’t have control on what you can do with the url link and the bottom) without some programming tweaks that force the user to save the web link onto their home browser.

– Left, right, up and down gesture control. This ties in to full access to hardware and APIs. You could also say that because of this, native mobile apps have better UX and are easier to use.

– Video player, programming interaction/animations on top of videos in browser.

– Web push notifications only work for Desktop operating systems.  Web push notifications are not the same as iOS notifications. A mobile push notification can more easily reach it’s audience, and more often. Standard desktop notifications only work if you have a tab open for the web page. A native app would be able to customize the notification.

– Living on the “desktop” of a mobile app.

– Performance differences between native and web apps. This ties in to not having full hardware and API access.  Web apps have to use WebKit (in iOS), which has limited functionality and performance. We don’t have the exact speed differences, but you can think of running a native mobile app game and trying to run a similar game in the web browser (ie 3D graphics).

– Location services without needing to permission every time.

– Caching and storage. The ability to start where you left off is one of the attractive parts of having a native app that’s always on your desktop and isolated from refresh and browsing.

– Offline experiences – native apps give users access to the app even when they do not have an internet connection.

– Reviews – app search is another source of traffic. Reviews build equity and organic search traffic over time.

– Geo fencing: sending a user notifications based on where they are can have engagement advantages.

– Full access to all device hardware, including camera, haptic feedback engines, etc. Can integrate things such as your calendar, reminders, etc into native apps.

– Full access to all and the newest mobile APIs.

– Potentially more secure, as a native app can better encrypt data because it has much wider access to how it uses device storage.

– Can collect a wider set of data about your users from a native app, without needing the user to log in to your service.

– From what we hear, there will be direct access to the camera in iOS11. There is a HTML5 hack where you can take a photo which saves to your device, and then upload that photo to a website.

– Because we don’t have access to the camera, there’s no ability to do any type of AR in the browser. Even then, we haven’t read of any plans to integrate AR Kit into the browser at this stage.

– Check out https://whatwebcando.today/ on your mobile browser to see what capabilities it has.

Companies are discontinuing their native applications

Depending on who you talk to, some people say native apps are dead, while others say web apps are dead. Conversion based apps where the focus is conversion that happens on a limited basis (once a month or less) are shutting down apps. (Patagonia and Bauble Bar shut down their native mobile apps). Native apps usually cost at least 2 times more than a web app because of the need to develop for both iOS and Android. The cost to maintain apps are also significantly higher as new operating systems are constantly being updated.

Despite all of this, research came out recently that showed that users are spending almost all of their time in native apps (consumers spend 85% of their smart phone time in native mobile apps) and the benefits listed above show that there are still some core differences between the two. 

Here are some apps that we believe should be built native:

– Content heavy apps

– Apps that are trying to build a platform

– Apps that users use on a daily basis

– Apps that require a lot of notifications

If your app doesn’t have one of these characteristics, it may be a good idea to start first with a responsive website.