Mobile Apps: Deciding Which App Type Is Best

cross-platform-mobile-apps

As a mobile developer, picking the right platform for your mobile applications is an important decision.  Once you’ve decided on a platform, the most important decision is whether to go with a mobile web, native, or hybrid application. This article will help you decide which of these types is best for you by comparing them in a few aspects.

First, let’s separate mobile applications into the following categories:

Native Apps

Native applications are built for a specific operating system and are typically installed through a service such as the App Store or Google Play, depending on the platform. Native apps take full advantage of the operating system by:

  • directly interfacing with device hardware like the camera, accelerometer, compass, or GPS
  • accessing data and information on the phone such as contacts, photos, videos, and music

Mobile Web Apps

Mobile Web Apps are websites designed to work on mobile devices and typically mimic the look and feel of a native app.  They run in a browser and don’t have full access to the device’s operating system, data, and hardware. Mobile Web Apps do not reside on the device unless they use the HTML5 application cache. Also, users can add the app page to their home screen.

Some companies have replaced their native app with a Mobile Web App. For example, in 2011 the Financial Times withdrew its native iOS app from Apple’s App Store to avoid paying subscription fees and have more control over the relationship with their customers.

Hybrid Apps

Hybrid apps solve the problem of accessing the devices’ operating system by bundling the website inside of a native application. The HTML, JavaScript, and CSS are bundled into the application binary where it is displayed in a Web View. This allows the developer to write their app using familiar web technologies, plus have access to the device’s operating system through JavaScript interfaces.  The Walgreens app is a good example of a hybrid app.

Key characteristics of mobile platforms

Next, we’ll discuss aspects of mobile development and compare each in a few different categories:

Distribution

Native and Hybrid apps are distributed primarily through electronic storefronts, most notability the Google Play Store and Apple’s App Store. Native apps require publishing through a 3rd party publisher.  This process requires that the applications meet the publishers standards and obtain their approval, which a can take days for iOS applications.

Web apps, on the other hand, are distributed on demand by the app developer or owner, from a centralized location on the web. They are deployed from the developers’ own servers of their choosing, and do not require any third party approvals.

Additionally, while users of native apps must explicitly install and upgrade their apps, web apps are centrally distributed and all users are upgraded right away.

Freedom

Mobile Web Applications easily offer the most freedom.  With a Mobile App you can:

  • Decide which payment system to use and collect customer contact details
  • Decide what content you publish
  • Make your application available in any country
  • Develop your application with any programing language, operating system, or computer hardware

Native and Hybrid apps on the other hand must abide by the rules of the organizations distributing your apps (most likely Apple and Android/Google)

Discoverability

Native and hybrid apps are distributed through App stores where there is a rich environment to find descriptions, imagery, and app reviews. Users know where to go to find apps and feel comfortable downloading apps from the Apple App Store and the Google Play Store.

Mobile web applications exist on the web and can take advantage of all the products, technologies, and processes that have worked on the web for a long time.  There is arguably no greater medium for finding information than the web.  Mobile web apps can be found using search engines, social networks, text messages, blogs, emails, etc. because these technologies either lead users to links or allow them to share links with others.

Cost considerations

There are various costs to consider when building a mobile app:

  • initial development costs
  • maintenance and support
  • staffing

This section assumes the typical business needs to support at least iOS and Android, on both the phone and tablet form factor. Generally, costs for developing native and hybrid apps are higher than for developing equivalent mobile web apps.

Software development, maintenance, and support

The cost for developing a native application tends to be higher than that for a mobile web app version due to the following reasons:

  • It tends to be costlier to find and hire talented mobile developers; there are usually more web developers available in a marketplace.
  • Code has to be developed for multiple platforms (iOS and Android), increasing the amount of work required.
  • Customer support staff must be trained to be aware of the differences in functionality and behavior between versions and platforms

User Experience/User Interface Design

Native apps are more costly to design because each OS-specific version has its own look and feel and ways of interacting with the user. Multiple UX/UI designs must be produced to work for different form factors and operating systems.

Operations

Native and Hybrid applications have the advantage here because  they are primarily distributed through third party storefronts. Deployment consists of uploading the application binary to the storefront.

Mobile web applications are usually hosted either internally or through a cloud system like Amazon AWS or Rackspace. These systems consist of sets of load balancers, webservers, databases, and application servers which all must maintained.  Deploying a modern web application is often a non-trivial operation for many enterprise applications.

If your native/hybrid app relies on a web service layer then the resources needed may be similar to that of a mobile web app.

Overall User Experience

This is an area where native applications exceed the both hybrid and mobile web applications. The native apps have access to the full capabilities of the device using rich API’s built into the device OS. Here are a few UX areas where native apps outperform mobile web applications.

User Interface

Native applications have direct access to powerful UI controls the take advantage of sophisticated libraries for animation, sound, physics, gestures, orientation, location, and more.

Because hybrid and mobile web applications present their UI through the browser, they are limited to web-rendering techniques that are not as responsive and often do not take advantage of hardware acceleration that native apps can.

Push Notifications

Push notifications are messages sent remotely and distributed by the OS vendor directly to the device, they are supported by all major mobile operating system and allow messages to be initiated from back end servers.  Native and Hybrid apps support push notifications, which can increase user engagement by providing timely information that gets users back into the app.  Push notifications do not require the application to be open.

Mobile web apps require that the web page be open in order for the client to be listening for a message from the server. If the page is not open, there is no mechanism for the client to receive and respond to a message push.

Networking

Because Native and Hybrid apps have full access to the to the OS’s networking stack, they can

•             Open sockets to arbitrary servers

•             Listen for connections

•             Use UDP and TCP

•             Use Bluetooth and iBeacons

Performance

Native apps have access to full capabilities of the device and using compiled languages like Java, Objective-C, and C#.  The following are examples of technologies available exclusively to native apps:

  • Metal – High performance 3D graphics for iOS
  • Renderscript – an API for high speed computing               for Android
  • Grand Central Dispatch – supports concurrent code execution on multicore processors for iOS
  • OpenCL – an API for high performance computing

Offline Applications

Native and web apps can work with a connection to the Internet once they are installed.  While native apps are typically installed through and App Store, mobile web apps are installed on demand upon initial use.

Mobile web applications can download content specified in a manifest into an application cache, so  the application will not need Internet access for cached content. In addition, content such as books, articles, pictures, etc. can be stored in device Local Storage.

However, the application cache can be tricky to use, and the local storage and application cache are more limited than that of native apps. See Fixing AppCache for more info.

Constant Contact’s Mobile Strategy

When we were choosing to build Constant Contact mobile applications, we wanted to make sure that our users had:

  • A great user experience
  • Access to the photos and contacts stored on the device
  • Access to the camera
  • Access to the latest innovations
  • The ability to use the app when their device is offline

We chose to build native Android and iOS apps because it allows us to create mobile applications with compelling features and a great user experience.

Conclusion

I’ve discussed the different facets of making mobile applications, hitting upon various advantages and disadvantages to be aware of that can help you decide the right approach to take when building your own mobile apps.  Each approach has pros and cons, and every developer and organization building mobile apps needs to make their own informed choice based on what suits their needs best.

Here are a few additional resources:

Mobile Development Tools

Reading List

Have any questions we didn’t cover? Ask us in the comments section!

Comments

  1. MobiCommerce says:

    Byron, you have nicely explained about best types of mobile apps. I am really appreciated about your content sharing. In mobile apps market there is required to know about the necessity of application and its benefits. How end user will use your mobile app and reach to your domain about product or services. I know about MobiCommerce which helps to turn eCommerce into mCommerce as per required types as web, native or hybrid. Over there you can check demo or test of your mobile apps.

Leave a Comment