Some thoughts on the pros and cons of the basic approaches to develop apps for mobile devices. Feel free to give some feedback.

Web App / Mobile Website (jQuery Mobile, Sencha Touch, Kendo UI, …)

  • Runs in the phone’s browser (HTML5, CSS, Javascript and/or local storage for the data) 
  • Uses the same codbase to support all devices and os (depends on the chosen framework) 
  • Updates installed in real time 
  • Found through google web search and accessible by desktop browsers 
  • User has to wait until the app is loaded (slow/no connection can ruin the experience for the user)
  • No full integration of all phone features (accelerometer, push notification, camera, compass, etc.)
  • Extensive use of javascript effects and Ajax may have bad effects on the performance and the CPU and battery usage.

Native App (Objective-C, .Net/C#, Java)

  • Using native UI-Components and OS-Api (best user experience) 
  • Fully utilize all phone features (accelerometer, geolocation, push notification, camera, compass, etc.) 
  • Because the app is downloaded on the device it can be accessed at any time 
  • Good for high performance applications (e.g. games)
  • Requires implementation specific to handset OS (using local database and filesystem) 
  • Must be downloaded and installed from the Apple iTunes Store, the Android Market and other similar services 
  • The consumer has to upgrade to get new versions 
  • IPhone native apps must be approved by Apple

Hybrid App (PhonegapRhomobileTitanium)

  • Using Phonegap every Web App can be wrapped into a native app packed for appstore distribution, without the need of lower-level languages such as Objective-C
  • Natively target all smartphones with a single codebase 
  • Access to the device API (http://phonegap.com/about/features) 
  • All layout rendering is done via the webview instead of the platform’s native UI-Framework, so the performance issues remain the same.
Advertisements