So you want to develop a mobile app, but are not sure whether you should go native, embrace the web, or do a hybrid of both. Here’s a quick tutorial on the pros and cons of each type of mobile app.
When it comes to native apps, the argument has always been and will likely continue to be centered on the superior performance and user experience of native apps versus the greater time and development resources required to create and maintain them.
Here are some popular arguments in favor of native mobile apps:
- Native apps have the best performance and provide the best user experience.
- Since native apps work with the device’s built-in features, they are easier to work with and also perform faster on the device.
- Native apps provide the fastest graphics and most fluid animation, the latter of which is highly relevant in gaming.
- Native apps get the full support of all app stores and marketplaces. Accordingly, users can easily find and download apps of their choice from these stores. Moreover, because these apps have to get the approval of the app stores, users can be assured of complete safety and security of the app.
- Native apps work out better for developers, who are provided the software development kit (SDK) and all other tools needed to create the app with ease.
- Native applications will work in offline mode.
- With native apps, you will have access to the latest APIs and releases on that platform.
The Salesforce developer’s site offers the following snappy summary of the advantages of native apps:
“When you’re looking for an app, you’ll find it in the store. When you start the app, it fires up immediately. When you use the app, you get fast performance, consistent platform look and feel. When your app needs an update, it tells you so. Native apps give you everything you’d expect from the company that built your device, as if it were simply meant to be.”
The downsides of native app development usually center on shortages of available resources, whether human, financial, or time.
Here are some commonly cited disadvantages of native apps:
- When designing natively, companies need to set aside budgetary resource and deploy specialized teams to develop separate native apps for every major platform (iOS, Android, etc). For this same reason, native apps tend to be a more expensive proposition to the developer. This is especially true for the developer who wants his or her app to be compatible with multiple mobile devices and platforms.
- Native apps carry higher maintenance and updating costs, especially those that support multiple platforms. In addition, users of different mobile devices may be using different versions of the app, which makes it difficult to maintain and offer support.
- The process of getting an app approved at the app store can prove to be long and tedious for the developer; once in, there is no guarantee that the app becomes instantly popular with users.
- Native app updates needs to be downloaded by users. If not properly designed, you may have to maintain several versions of your native app.
- Availability of trained developers. Although this is often a general concern for all types of app development, this is especially true for native app developers specializing in specific, in-demand coding languages such as Objective C (Apple iOS). Oftentimes such training is not in the budgets of SMBs and beyond the project scope or time horizon of enterprise-level companies.
EXAMPLE: Facebook and LinkedIn are two popular apps that experimented with an HTML5 web app and switched back to a native app design to improve the user experience.
Web apps are not really applications at all, but rather websites with much of the functionality of native applications, even though they are not implemented the same way. Web apps are run on a web browser and typically written in HTML5. Users access a web app by navigating to its unique URL, where they are given the option of “installing” the app on their home screen by creating a bookmark to that page.
With HTML5, developers can replicate native-like app functionality within a web browser. As more developers and websites make the switch to HTML5 technology, the distinction between web apps and regular web pages is getting hazier.
In 2010 Apple CEO Steve Jobs issued a public letter titled “Thoughts on Flash” where he concluded that “[Adobe] Flash is no longer necessary to watch video or consume any kind of web content” and that “new open standards created in the mobile era, such as HTML5, will win.” Contrast that rosy prognostication with the wistful regret expressed by Mark Zuckerberg two years later, who in September of 2012 stated that the biggest mistake the company made was focusing too much on using HTML5 for its mobile app.
Taken together, these two perspectives do well to sum up the general perspective on HTML5 web apps: the technology will eventually prevail, but it’s not quite there yet.
Here are some commonly cited advantages of HTML5 mobile web apps:
- Web apps are much easier to maintain, as they have a common code base across multiple mobile platforms. They can also be reconfigured to render them compatible with older mobile devices.
- Mirroring the process of developing normal websites, mobile web app development and testing is easier, with many of the same tools available to developers.
- Because they live on the web, mobile web apps do not require developers to submit their app to any app store for approval. This gives developers more flexibility with rollout timelines.
- Similarly, mobile web app users don’t need to visit an app store to download or update the app.
- Distribution is a far simpler proposition. You just deploy the web app on your web server and users access it from their browsers.
The cons of HTML5 web apps tend to contrast almost exactly with the pros of native apps, and center around inferior performance and user experience:
- Web apps don’t have access to the device’s native features such as GPS or camera, and are not optimized for specific device platforms.
- Users are still left with a browser-based user experience, which can be inferior to a native “in app” experience.
- Users often find it difficult to discover web apps, as they are not systematically listed in the app stores.
- Since there is no regularized quality control system for web apps, users may not always be guaranteed safety and security of the app.
- Web apps either do not work at all in offline mode or do not provide full functionality in offline mode.
EXAMPLE: The Financial Times of London is one of the most popular examples of an HTML5 web app success story. When asked “why HTML5” at a developers’ conference, Graham Hinchly, engineering manager from Financial Times Labs, had this to say:
“There were two main deciding factors behind the FT launching an HTML5 Web app in June 2011. The first was to maintain a direct relationship with our customers. This is crucial as we continue to offer customers flexibility and freedom of choice with access to our global journalism anytime, anywhere, with a single login or subscription.
The second was that using HTML5 makes the development of apps for an increasing range of new tablet and smartphone devices easier and quicker. We are able to use the same core code base to power all the FT’s apps, be they for Apple devices, Android, Windows8, or others. This supports the FT’s multi-channel strategy of making our content accessible to our readers on whichever device or platform they use to consume our content.”
Hybrid apps also usually require less coding. Most of the development is done using cross-platform web technologies; custom coding is usually only needed to access the hybrid app’s native layers. This allows brands to focus their app development spend on creating new functionalities rather than re-creating the same code. In this way, hybrid apps are closer to achieving the “write once, run anywhere” objective of many developers.
Here are some other advantages of hybrid apps:
- They provide a consistent, cross-platform user interface that works well on most devices.
- Thanks to their native shell, hybrid applications still can be deployed in platform-specific app stores.
- Like native apps, hybrid apps can be programmed to work in offline mode.
On the negative side, even though they are packaged natively, Hybrid apps are not native apps. They must work through the mobile operating system’s web browser engine (not web browser) to function. This extra structural layer between the user and the application can sometimes hinder performance.
EXAMPLE: Netflix uses the same code base for running the UI on all devices, allowing its developers to change the interface as needed or to conduct A/B testing to determine the optimal user interactions. To enhance playback speed and performance, video streaming is handled by the app’s native layer.
Hybrid apps look to be the direction mobile app development is moving. In 2013, Gartner predicted that by 2016 more than 50% of mobile apps will be Hybrid apps.
Developers Speak Out
In late 2013, mobile app solution provider Telerik published a whitepaper containing the results of its global survey of over 3,500 developers, CIOs, and CTOs, the “HTML5 Global Developer Survey.”
Here is a summary of the survey’s key findings:
“There are no ‘one-size-fits-all’ solutions for mobile application development. Many developers are finding mid-project that the approach they started with, Hybrid/HTML5 or Native, might not be the best approach, whether it’s changing requirements or an improved understanding of the capabilities each mobile solution offers. Moreover, web and hybrid approaches are becoming increasingly popular with developers.”
Commenting on the survey’s findings, Todd Anglin, EVP of Telerik, notes:
“Developers … are quickly realizing that there is no ‘one-size-fits-all’ solution for their mobile development process…The choice between native and hybrid approaches is dependent on business needs, app requirements, developer skill, development timeline, and other factors.”
The Final Word
The final word comes from this slide deck presentation by Business Insider, which provides a useful summary of the native app, HTML5 web app, hybrid app debate. The final slides read, “As web technology for mobile continues to improve, consumers will adopt more HTML5 apps, but it will take a while…meanwhile, there’s room for web apps and native apps.”
- Would like your app to include any device-specific features?
- Need superior speed and performance?
- Want your app to be Internet-enabled?
- Need a single app to support multiple mobile platforms and devices?