Native Apps: how they work and what they’re good for

Lately, our team here at Demac Media has been focusing a lot on mobile optimized web and it’s no secret that we’re not huge fans of native apps. However that’s not to say that they’re not important or useful. This post is going to outline the pros and cons of native apps to provide a better understanding of what they are great for, and why they can cumbersome at times.

What is a Native App?

A native mobile application is specifically designed to run on a device’s operating system. Native apps tell the computer how to accept some type of input, manipulate that input, and spit it back out again in some form that consumers find useful. A specific programming language (eg. Java for Android, ObjectiveC for iOS) is used to code native applications and they are made to work with a specific mobile platform (eg. Android, iOS, BlackBerry OS, etc). Native apps can be downloaded from an app store or be already preinstalled on a device. Finally native apps can be programmed to leverage many mobile device capabilities such as the camera and geo-location.

The Pros

Smoother look and feel
Native apps are able to enhance elements of their native operating system so they seem more deeply integrated into the mobile device. On iOS for example, rubberbanding, overscroll, and slick screen transitions provide aesthetics and user experience.

Perform faster on the device
Native apps come with many elements preloaded. User data is fetched from the web rather than the entire application and since they work with the device’s built-in features, they are speedy!

Two heads are better than one
Native Apps can collaborate with and make the most of the features on a platform. They can also work with other pieces of software installed on that platform. For example, Nike+ uses the phone’s accelerometer, Foresquare uses the phone’s GPS, and Instagram uses the phone’s camera.

Discovered by users easily through app stores
With the help of app stores (eg. Apple App Store, Google’s Play etc), users are better able to discover native apps. With all apps in one place, usually filtered by categories, users are more likely to find and subsequently download an app than just searching for one online. One of the major pros of native apps is that the app store handles all purchase transactions on the developer’s behalf.

App store approval processes
AssuresĀ users of quality and safety through app store approval processes. Submitted apps undergo a measure of quality control to protect users from malicious malware, spam emails or text messages, in-app ads and copycat apps.

Can store more data offline
Native apps have no limitations when it comes to local storage. Web apps have size limitation per domain for local storage. For example, Mobile Safari has a 5MB limit for Web Storage and 50MB limit for Web SQL DB.

Cons

Must be duplicated
Native apps must be duplicated using the correct programming language to work in another mobile platform. When developing native apps, there is a need to create a version for each operating system i.e. different version for Apple iPad / iPhone, Google Android ‘Droid’, Blackberry, Windows Mobile and more. Consequently, it is necessary to convince developers to create native apps for a specific platform.

Costly to develop
If you’re looking to have your app support multiple mobile devices it’s going to be costly to develop. For example, adding iPad compatibility to an iPhone app can add up to at least half of the original development cost of the project.

Approval processes can hinder releases
Approval processes for different app stores can postpone or hinder releases due to length and complexity. For example, iOS App Store approval process can take weeks. Apps have to examined for images or names similar to existing or pre-installed apps, malicious software, spam emails or text messages, ads that act asĀ  system notifications, etc.

Apps updated manually by user
Native apps have to be updated by the user manually while web apps updates are made to the web server without user intervention.

Examples

Instagram – a photo-taking and photo-sharing native mobile app. Pictures are taken using the phone’s camera. Filters are added for style and are shared with sites like Twitter, Flickr, Tumblr, and Facebook. It also allows users to “like” or comment on photos of other users in their network.

Titanium Backup – a native app that runs on Android platform that is used to backup, restore, freeze protected and system apps and external data. Users can do batch & scheduled backups. Backups operate without closing any apps. Requires “root access” (privileged control) with in Android’s subsystem.