33

My organization is looking at developing mobile applications, we have a wealth of web development resources. There are many factors to consider in making the decision of how to develop this application such as Cost(s), platform support, performance, and maintainability.

But, I have not found any research that actually backs up the assumptions that users prefer the experience of a native app over a hybrid mobile web app (A hybrid app is a HTML5 app distributed in an embedded web view using PhoneGap, etc.).

Some people assert that native apps are more performant and have a better user experience, but why? Have there been any user surveys or analytics that indicate this user preference towards native?

17
  • 1
    When using PhoneGap, you essentially end up with a native app. So as far as the user is concerned, there is no perceptual different between what you are calling native vs. hybrid. It's purely a development-side decision at that point.
    – DA01
    May 7, 2013 at 20:08
  • 11
    @DA01 PhoneGap would love you to believe that, but there are definite differences between them. That is part of the reason that both LinkedIn and Facebook have abandoned web-apps being wrapped as native apps.
    – JohnGB
    May 7, 2013 at 20:25
  • 2
    @JohnGB there are certainly differences that can become obvious based on the particular type of app one is trying to build, but not necessarily generic differences across the board. I don't think one can generically say 'PhoneGap apps are better/worse than Objective-C apps' as it's going to be entirely dependent on the context of the particular app.
    – DA01
    May 7, 2013 at 21:06
  • 2
    @DA01 Every development choice is a tradeoff. PhoneGap is a better development choice in some situations, but I have yet to see a case when it is better UX wise. If you know of one, please share it with me.
    – JohnGB
    May 7, 2013 at 21:09
  • 1
    @VincentvanScherpenseel It is impossible to have the same speed as native, and for the other parts, if it's more complicated, it costs more, and takes longer. Those are two of the biggest development issues.
    – JohnGB
    May 16, 2013 at 16:09

5 Answers 5

33

Yes, there have been formal studies demonstrating that as users become increasingly familiar with mobile devices, they shift increasingly toward using native apps.4 This trend is likely a combination of three factors:

  • People prefer the familiar. If people know of a site or app that's likely to address their needs, they're more likely to use that known source than to search.3 Users trust known resources because they're more reliable: information needs are four times as likely not to be addressed when using generic search than when using direct re-access of a known source.3
  • Mobile users bookmark differently. Bookmarks in mobile browsers are used sparingly,4 instead mobile users "bookmark" by downloading the native app.1,4
  • Native apps offer superior interaction.
    • They can be used offline, which makes them faster to open.2 It can also make their performance faster in some cases by allowing them to store information locally and only synchronize with the server after the user is done using the app.
    • They allow the user to use device-specific hand gestures. Android and iOS are gradually developing different conventions for interaction, and a native app responds the way its user expects.
    • They have access to device-specific functions such as geolocation and accelerometers (although with HTML5, web apps are gradually gaining access to these functions as well).

[1] Bales, Elizabeth, Timothy Sohn, and Vidya Setlur. “Planning, Apps, and the High-end Smartphone: Exploring the Landscape of Modern Cross-device Reaccess.” In Proceedings of the 9th International Conference on Pervasive Computing, 1–18. San Francisco, USA: Springer-Verlag, 2011.

[2] Caspar Ryan and Atish Gonsalves. 2005. The effect of context and application type on mobile usability: an empirical study. In Proceedings of the Twenty-eighth Australasian conference on Computer Science - Volume 38 (ACSC '05), Vladimir Estivill-Castro (Ed.), Vol. 38. Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 115-124.

[3] Heimonen, T. (2009). “Information Needs and Practices of Active Mobile Internet Users.” In Proceedings of the 6th International Conference on Mobile Technology, Application Systems, 50:1–50:8. Mobility ’09. New York, NY, USA

[4] Tossell, C., Kortum, P., Rahmati, A, Shepard, C., & Zhong, L. (2012). “Characterizing Web Use on Smartphones.” In Proceedings of the 2012 ACM Annual Conference on Human Factors in Computing Systems, 2769–2778. CHI ’12. New York, NY, USA: ACM.

11
  • Thank you, great work. "Native apps offer superior interaction." was the point I'm most concerned with backing up. Reference 2 seems the most applicable to that.
    – sirtimbly
    May 8, 2013 at 14:45
  • 1
    @sirtimbly I'd say Reference 2 is the worst of the group. In the spreadsheet where I take notes on articles, I wrote for Reference 2 "This paper doesn't really say much of anything. It may have been the first to look at native vs. non-native apps." Reference 4 is a great paper with a lot of information about how and why people use native apps. If you're mainly interested in my third bullet point, there's some more evidence to support it in Mobile First if I remember correctly. May 8, 2013 at 14:57
  • 1
    @sirtimbly I'm still a bit unclear as to what you are specifically wanting to compare. 3nafish's answer is great, but is talking about web apps (meaning apps that exist on a web server that you view through a web browser). However, I think you were asking about compiled native apps built using HTML5 via PhoneGap. Note that those are different things.
    – DA01
    May 8, 2013 at 17:53
  • 2
    @3nafish I understand you are comparing Native Apps with Web Apps. I'm not critiquing your answer (as it's a good one) but trying to get clarification from the OP on exactly what they want. I think (but am not sure) that the OP was wanting to compare Native Apps (coded in a native language) with Native Apps (coded with HTML5 and PhoneGap). Again, it's confusing as people are using different definitions for the various terms throughout this Q&A. (In other words, it appears that there are many varying definitions of 'web app' floating around in these answers which maybe confusing to some).
    – DA01
    May 8, 2013 at 21:36
  • 2
    @DA01 I think the confusion comes from ambiguity in the question title, "Native Apps vs Web or Hybrid Apps," which implies two separate comparisons {1} native vs. web (which I compared) and {2} native vs. hybrid (which I ignored as not being a good fit for this site because from the user's standpoint they're essentially the same, just made differently). May 14, 2013 at 2:51
7

Look and feel depends on how you design the web-app. You can design it to look exactly the same as a native app, but you have to choose which native you want it to be like (unless you build multiple web-apps that is). The result is that most web-apps try go for something that is usable by both iOS and Android but looks like neither - which is why people sometimes comment on the looks.

I have been working on a product that was designed as a web-app initially, but after months of usability testing and feedback from users, is now going to change to a native app. I can't give you any formal research, just what I have found in UX testing and development.

UX issues

  1. Most people don't understand what a web-app is. Even after explaining it to users, the most common question I get is "so which app store do I get it from".
  2. There are so many variations between browsers, browser versions, and phones, that it makes it close to impossible to develop a stable web-app that runs on all devices that you expect it to run on. No matter how much testing we have done on many devices, we have had endless issues with web-apps out in the wild, that we have not had on native iOS and Android apps.
  3. Web-app frameworks are definitely slower than native apps. They are improving speed wise, but they are never going to compete.
  4. Web-apps are unavailable when offline - even as a basic version.

Development issues

  1. Web-app frameworks are improving fast, which often means many rewrites and constant updates to keep up with the improvements.
  2. You need a broader skill set to work with web-apps than you do with native. For example on Android, you need Java. But for our web-app, we needed: html, css, sass, javascript, coffeescript, and Sencha Touch. The result being that anyone working on the web-app had to firstly be comfortable with far more languages and tools, and that it was longer to train anyone.
15
  • 4
    Your issue 4 under UX issues is not always true. A web-app in this case simply means running using javascript and HTML, not necessarily that it requires the internet. You may develop a web-app if you already know Javascript and HTML and you don't want to learn Objective-C or Java, for example.
    – you786
    May 7, 2013 at 20:35
  • 1
    As much as I'd love to have web apps be a viable option (I guess I'm biased in that for being web focused myself professionally), they're so far off it's not funny. The rendering of the visual UI, in the smoothness of transitions but also the responsiveness of everything, it's not there. Same situation on the desktop, but it's better. May 7, 2013 at 20:43
  • 2
    @JohnGB Many PhoneGap apps have the HTML and JS files stored locally in the app file (.apk for Android) and the WebView loads them from local storage.
    – you786
    May 7, 2013 at 20:53
  • 2
    I think we're using a mix of ill-defined terms here. Web vs. hybrid vs. native. A web app certainly tends to have a 'generic' UI across platforms. A PhoneGap app, however, can certainly use native elements specific to each device. While a fully native app only uses the native elements for the device it's written for.
    – DA01
    May 7, 2013 at 21:09
  • 1
    Yes, in reading all the comments, we all are using slightly different definitions. ;) There are 'local apps' (web based applications downloads and stored locally--don't necessarily need a web connection). There are 'web apps' (apps where all or a portion of the UI and data is fetched live from a server). There are HTML5 apps (typically apps created with HTML5/JS/CSS/etc turned into native apps with PhoneGap and the like). And there are native apps (typically Objective C or Java depending on platform). Even then, those are loose definitions.
    – DA01
    May 7, 2013 at 21:15
1

I think the challenge in answering the question is twofold. 1) definitions 2) research.

As for definitions, I'm going to make an assumption that we're comparing:

Native App = a self contained application written in native code for the device it's running on.

vs.

Web App = an application written with web technologies using a client/server model where the UI is rendered in the client, but all data is fetched and processed on a server.

The second challenge is comparing them. Ideally, one would have written a native app and a web app to be equitable in some fashion so that some form of A/B testing could be performed. I'm not sure if that's done with any regularity (or if at all) for that matter.

When there are both, it's usually two separate experiences altogether. Take Flickr, for example. They have a mobile site (aka 'web app') and they have a native app (aka 'the thing you download from the app store'). The problem is that the UI and functionality between the two is very different, so not easy to simply say one is better than the other.

Ultimately, which is better is going to depend primarily on the type of app you are building.

23
  • Which is better is not dependent on the app type - it's going to be a better experience natively every time. There is hardly any user advantage to accessing an inferior website. Especially if you have to download that webapp from the store.
    – user28446
    May 7, 2013 at 21:53
  • 1
    @JustinMeiners it's like asking which is better: Java or HTML. In and of themselves, it doesn't matter, as they don't necessarily have a direct correlation to the UI/UX. As for 'inferior website' yes, if the site is always inferior, of course that'd be the poorer choice, but that's assuming the web site is inferior, which is hardly a universal truth (There are plenty of companies that have both web apps and native apps and I often prefer the web version). It all depends.
    – DA01
    May 7, 2013 at 22:18
  • The question is supposed to focus on the measurable differences in user experience based on the the runtime the application is in (UIView with native controls vs UIWebView with HTML+CSS+JS). Has anyone measured how users perceive these two different types of app?
    – sirtimbly
    May 7, 2013 at 22:29
  • @sirtimbly I think the answer to that is simply 'no'. My answer attempts to provide a theory as to why that is.
    – DA01
    May 7, 2013 at 22:36
  • @DA01 They are inferior because of performance, the JS is simply not fast enough to create interactive components that feel good.
    – user28446
    May 7, 2013 at 22:37
1

I disagree with some of the points others have made. Unless your app is mostly well designed static content, avoid web apps for mobile. Even in these cases, the app could probably be built to run faster natively in almost the same time. You aren't going to save time using inferior tools. Rarely is this a "tradeoff" type decision, unless you have a bunch of unused expert web developers.

User Experience

It's not that Mobile web applications are slightly slower and are only limited by high performance use cases. They are much slower - so much so that it burdens user experience. If you are aiming at features requiring dynamic animation, or even moderate interactivity - "you gonna have a bad time".

One of the best web apps I have seen is here http://forecast.io (visit on a mobile phone) and you can see how slow interacting with even a simple scroll view is. (side note) the developers also mentioned have had a hard time marketing the concept of an app you don't buy from the app store.

One element of good design is tight feedback and user response. Interacting with a touch screen is already difficult for some. Mobile web apps contain acceptable feedback for simple interactions, but anything really beyond hitting a button is going to be inferior to a native app experience, simply because of the amount of time it takes to respond to user touches.

Development

  1. It is true that for a mobile web app the breadth of knowledge is greater simply because of the fragmentation in web technology. However, developing a good native app requires much more depth of knowledge due to language and framework complexity. That is not to say there are not web apps developed with a good depth of knowledge, but the minimal skills to build an Objective-C or Java application are much greater than HTML + Javascript. Don't kid yourself into thinking more technology names = harder to learn. Also remember, good programmers usually can do good work with any programming technology.

  2. When developing web applications you are at the mercy of the framework for device features. if iOS 7 comes out with something cool, you must wait until the framework (phonegap etc) integrates those features (if ever or even possible). Natively, you have access to them day one.

  3. Code should very rarely be "rewritten" only refactored. If number of rewrites a year is a metric for you, you have bigger problems. I would expect no difference in time needed to rewrite or refactor either native or web apps, but once again you may be at the mercy of the framework you choose.

EDIT

For all you naysayers - benchmarks. http://sealedabstract.com/rants/why-mobile-web-apps-are-slow/

10
  • "the app could probably be built to run faster natively in almost the same time" there are lots of situations where that isn't true. Examples: if you are supporting many platforms; if frequent updates are necessary/expected; you have limitations on testing team resources, etc.
    – DA01
    May 7, 2013 at 22:19
  • Can you back up your assertion "Mobile web apps contain acceptable feedback ... inferior to a native app experience, simply because of the amount of time it takes to respond to user touches." with any evidence?
    – sirtimbly
    May 7, 2013 at 22:26
  • @DA01 True, but if you ask any native feature at all, the code is not 1-1, modifications have to made for each platform anyway. Write once run anywhere is rarely true. Also you have to test regardless of programming language... It doesn't go away because you are writing a web app. Server side updates are an advantage, but in that case you are throwing out any hope for native features.
    – user28446
    May 7, 2013 at 22:31
  • @sirtimbly I have hard evidence showing the time of feedback loop is longer. I don't have a scientific number that says users like things to happen faster, but generally laggy input = not good. Download that app I link to. You can see the app does everything right, but is just limited by the web platform.
    – user28446
    May 7, 2013 at 22:33
  • @JustinMeiners yep, that specific point is true, but in and of itself doesn't mean one type of app is any better/worse that the other. Now, if the particular app depends on native UI components, and access to said components available in each OS release, then yes, I'd say in that particular situation, a native app is the better UX.
    – DA01
    May 7, 2013 at 22:34
0

If you want your app to look good, function quickly and smoothly, native is the best choice. Though there’s extra time and effort involved in coding native apps for each operating system, the benefits in terms of user experience are worth it. Native app behaves much more responsively, providing a full native look and feel – and a better, smoother user experience. Specially with iOS 7 Flat UI, Depth and UI Dynamics, user's expectation from the app have risen. And to keep the user glued to your application, one must provide visual and interaction experience like every other app on that platform. Native Rocks!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.