Mobile apps choices: Native Apps vs Web Apps

td {vertical-align:top}

This post shows various differences, in various categories between building native mobile apps and web mobile apps. I know that everyone has their own experiences and opinions, which I would love to hear. So, don’t hesitate to hit the comments at the end of this post.

Native App Web App
Platforms
Platform Five different mobile platforms:

  • iOS
  • Android
  • BlackBerry
  • webOS
  • Windows Phone
Other notes:

  • Android also experiences a rather big fragmentation in terms of Android versions to various screen size and features from different phone manufacturers and tablets.
  • There are also Symbian and MeeGo, however, they are getting very little traction today.
Mobile web browser. Differences still exist as different versions of mobile platforms run different browsers, with different support for various latest HTML5 features.
App discovery, monetization, support
App discovery App Store – proven and popular. A number of options:

  • Same as desktop apps today, search, URL, etc.
  • Sold through web stores like Chrome app store.
  • Sold through standard app stores (Apple, Android, BlackBerry, etc) by placing the web apps inside a native wrapper. Usually called a hybrid app.
App approval App is published to an app store and goes through review process before being approved Instant, no approval process
App installation Downloaded from app market and installed Open URL in a mobile browser, or another popular option is to create a short cut on the phone. The short cut gives more of a “native app” feel.
App update Updated app goes through review process, then downloaded and installed No approval or download process. Just update the mobile web app and everyone gets the new version.
App support, maintenance, adding new features The more platforms you support, the more challenging and difficult it becomes supporting and adding new features.

It’s not uncommon to have different native apps for iOS and Android with different feature sets. The app for iOS is usually more mature and stable.
Supporting and adding new features is much simpler, as you write once and it’s available on every platform. Write once, deploy anywhere.
Monetization App Store – proven monetization strategy. Web apps have a number of options:

  • Each app has its own monetization strategy
  • HTML App Store, like Google Chrome Web Store
  • Standard App Store – putting apps inside a native wrapper/shell (hybrid apps)
  • Selling access or token in standard App Store and then getting access to mobile app
Porting/add new platform Need to learn another mobile platform
Need to learn platform’s “UI approach”
Nothing – build once, run anywhere (almost). Might need to tweak the UI a little bit to “fit” it better in to the underlying mobile platform. Difference in browsers and supported features.
Experience
Performance Faster for some UI functions, especially when heavy graphics are involved. HTML5 improves on the infrastructure of the Web and makes applications faster and more functional. JavaScript rendering engines are getting faster and are good enough for most Web applications.
User experience Native application have a lot of UI effects, usually more developed UI “logic”. Native apps can “feel faster” and screen sizes on mobile devices makes native apps more enticing as well. Can be “very good”. For example, an app like Gmail. Will continue to improve and get better.
Perception Today most people associate mobile apps with something you download and install. We are so used to desktop web apps, so it’s just a matter of time before we “get used” to mobile web apps. It’s also important for more and more (good) web apps to become available.
Phone features
Video/Audio Built-in Possible with HTML5
Offline or disconnected apps Native apps can work in disconnected mode. Offline mode can be achieved with HTML5.
Full screen mode Built-in. Can be in full mode by hiding browser address bar.
Accelerometer Built-in. Possible with HTML5.
Push Possible with native platforms. Possible with HTML5 technologies.
Integration with phone services Good integration with phone services:

  • Contacts
  • Calendar
  • Other applications
Still somewhat limited with HTML5. But, more and more apps like that get data from the Internet, and not the client device.
Integration with phone hardware Integration with phone hardware

  • Camera/Video
  • GPS
Some support via HTML5 is now available for camera/video.
Enterprise, development
Developer Skills Need to learn one or more of the mobile platforms and their underlying programming language/SDK:

  • iOS (Objective C)
  • Android (Java)
  • BlackBerry (Java)
  • webOS (HTML/JavaScript)
  • Windows Phone (Silverlight)
Every platform will also have its own approach and style to developing and designing mobile user interfaces.
Developers can use HTML, JavaScript and CSS to create mobile web apps without of learning new languages to code native applications. But, that doesn’t mean that some training won’t be necessary to adapt exiting HTML/JavaScript/CSS skills to mobile development.
Development cost Expensive, as still relatively small number of developers master these skills. Can be significantly cheaper. Large number of developers who posses web development skills – HTML, JavaScript, CSS. But, some training might be needed to learn how to develop UI for mobile apps.
Mobile development frameworks Every mobile platform has its own SDK. Even though Android and BlackBerry both use Java, applications are not compatible. BlackBerry plans to allow running Android applications on BlackBerry devices in the future, probably inside a special wrapper (virtual machine).

  • iOS (Objective C)
  • Android (Java)
  • BlackBerry (Java)
  • webOS (HTML/JavaScript)
  • Windows Phone (Silverlight)
A number of options available today for building web mobile apps:

  • Take “do it yourself approach” or adapt any existing framework to work on mobile web
  • jQuery Mobile
  • Sencha
Tools that can build both native and mobile web apps:
Tiggr Mobile (coming up), PhoneGap, Open plug, Adobe Flex Mobile, Titanium Appcelerator, Corona SDK
Enterprise integration Existing infrastructure could be reused but also need service layer to communicate between client (mobile) and server. Can use REST, SOAP or custom communication protocols Hessian, Protocol Buffers. Existing infrastructure can be reused.

Virtually any application we used to have on a desktop from email to drawing to CRM, is now available as a web application. I think a similar move will happen in mobile, as more and more natives apps are moved to become mobile web apps.

13 thoughts on “Mobile apps choices: Native Apps vs Web Apps

  1. There are other platforms available that let you develop apps that can be deployed across multiple mobile platforms like (open plug, adobe flex mobile, titanium appcelerator, Corona SDK, etc).

    It’s important that these frameworks are considered including the matrix above when such a decision needs to be made.

    Does anyone has good experiences to share using these technologies?

  2. Pingback: Pedro Newsletter 29.04.2011 « Pragmatic Programmer Issues – pietrowski.info

  3. To me, even though cross platform tools do allow building aps that run on multiple platforms they never actually look native. And this is for various reasons: they either mimic iPhone UI that makes them look stupid on other platforms or they are built around webkit which makes them look like a poor man’s solution.

  4. Web apps are more limited than you seem to suggest…even with HTML5. E.g., no access to local stuff like address book (that was a show stopper for my app) and push doesn’t work because the web app and browser aren’t going to be up all the time.

    IMO at this point in time, web apps are only good for rapid iteration for getting feedback and building requirements. In most cases, they are absolutely no match for native apps.

  5. Pingback: blupark.net » Blog Archive » Searching for Mobile Applications Technology Stacks

  6. Pingback: Slides: Mobile Development Choices: Native App vs. Web Apps from JAX conference | Maxa Blog

  7. Pingback: Confluence: UX&D Tablets

  8. Pingback: Mobile Web Apps Design « mcliw

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s