Native Apps vs. Mobile Web: Breaking Down the Mobile Ecosystem

Web Apps vs. Native Apps, a topic that still excites readers to this day, as if it were anticipated that one side will win and the other will lose.

Contrary to popular belief, the discussion doesn’t need to produce a winner and a loser. Instead of classifying apps as web apps or as native apps, why not just call them mobile apps?  I believe “mobile app” is a great name. Under this name there are simply two variations of mobile app that can be created: web app and native app. A web app is an HTML5, JavaScript, CSS app running in a mobile browser. Now, you might wonder, why not just call this a mobile site? This is a fair point, and I believe the term, “mobile site,” can also be used. However, it is common to distinguish a mobile web app by one important extra feature, that it is invoking some remote services, usually a REST API (instead of just loading a static mobile website). The second variation is the native app, one that is downloaded and installed on the mobile device.

It’s important to note that a third variation of mobile app can also be created: a hybrid app. A hybrid mobile app takes an HTML mobile app and inserts it inside a native wrapper. So while the inside of this app is made with HTML, JavaScript and CSS, the outside is a native shell. This kind of app is also downloaded and installed on a device.  Although there are differences in how hybrid apps are implemented compared to native apps, most consumers can’t tell native apps apart from hybrid apps.  Hybrid apps are distributed in the app stores, just like native apps.

There are a number of important factors to consider when deciding whether to go with a mobile web app or a mobile native app.

Skills
Building native apps requires strong knowledge of Objective C (iOS), Java (Android), and C# (Windows Phone). Finding developers with the necessary experience is still not easy. On the other hand, we have been building web applications for the past 20 years. Even though building a mobile web app requires more specialized skills, the foundation is still HTML, JavaScript, and CSS. Finding strong developers should be easier in this case.

Platforms
With native development, the number of apps you need to build directly relates to the number of platforms you need to support. Today, most companies must support at least iOS, Android, and probably Windows 8/Phone, followed distantly by BlackBerry. A mobile web app can be opened on any device with a browser, phone, tablet, or anything in between. Even though the notion of “build once, run anywhere” sounds very nice, differences in mobile browsers and their support for the latest HTML5 features will require extensive testing and possibly coming up with workarounds(unless, of course, it’s OK for your app not to support all the browsers.)

Features and Performance
Without a doubt, native apps have full access to the underlying mobile platform.  Native apps are usually very fast and polished, making them great for high performance apps or games. Mobile web apps, on the other hand, have limited (but growing) access to device features and APIs. With JavaScript engines in the browsers getting faster, mobile web apps perform well but still fall behind native app performance.
The extra jolt of performance that dominates natively developed apps is not always necessary. Many business applications do not necessarily require such high levels of performance. In these cases, web and hybrid apps are more cost-effective, efficient, and dynamic due to API adaptability. On the other hand, games that require more advanced performance features should utilize native development.

Publishing to App Stores and Updating Apps
Regardless of the platform, native and hybrid apps are published to an app store. Apple has the strictest rules for accepting apps into its store. It requires the app to run fast and follow some basic UI principles. It could take anywhere from one to two weeks for Apple to either accept or reject an app.
Apple’s stringency in App Store acceptance is contended by Google’s somewhat more lenient rules, which don’t necessarily adhere to the same rigid standards, and therefore accept apps more readily into its Google Play marketplace. Windows, on the other hand, takes a more “middle-of-the-road” approach when it comes to app acceptance. For whichever platform, any updates to native apps would fall under the same rules and regulations.
A mobile web app doesn’t need to be published to any store, because it is simply accessed by its URL in the browser or an app icon/bookmark on the phone home screen. App updates are very simple as well. Just push any changes, and the next time the app is opened, the user will get all the new features.

Best of Both Worlds?
A native mobile app can produce the best user experience — fast and fluid, can give you the best access to device features, and can be discovered in the app stores. On the other hand, building a native app on every major platform requires more socialized skills, a longer time to market, and a bigger budget to build and maintain. For this reason many apps get built as web apps or hybrid apps.
A mobile web app can produce a good user experience that is consistent across a broader range of platforms. As browser and JavaScript engines get faster with every release, the user experience gets better and better and the apps run faster and faster. Once created, this kind of app can be run on any platform, device, phone, or tablet with a browser. On the other hand, browsers on different platforms do not uniformly support all the latest HTML features and API, which can make developing and testing challenging.
A hybrid app offers many of the advantages of both approaches: discoverability in the app stores, access to the most common device APIs, and broad device coverage while not requiring the specialized skills, bigger budgets and longer time to market that are more typical of fully native apps. 
Max Katz, Head of Community and Developer Relations for Tiggzi (http://tiggzi.com), a cloud-based HTML5, jQuery Mobile and PhoneGap mobile app builder. He loves trying out new and cool REST API’s in mobile apps. You can find out what Max is up to on his blog: mkblog.exadel.com and Twitter: @maxkatz.

Comments

Popular posts from this blog

WHY AREN’T MOBILE WEB DEVELOPERS DOING THEIR JOB?

Why UX is neglected and its consequences for your business!

GREAT FREE WEBSITE EMULATORS FOR TESTING HOW YOUR SITE LOOKS IN THE MOBILE