Native applications are those which are platform and hardware dependent. These are built using specific programming language like Objective C for iOS, Java for Android and .Net for Windows.
These mobile applications are fast, reliable, responsive and powerful but are tied to a specific platform.
Must be deployed or downloaded. Most apps requires approval and you have to wait for them to get approved.
Access to hardware sensors like Camera, Gyroscope, Microphone, Compass.
Few problems with Audio and Video. Flash works but only if device supports it.
Specific tools required for some platforms ( like Apple's) , You have to built a new app for each target platform.
Tight control over typefaces and layout.
You can charge whatever you wish for your application but most App distributors take a slice up to 30%.
Mobile-Web applications are simply the web-pages designed for the Mobile devices, i,e optimizing your websites for use on smaller screens.
Mobile-Web Apps refers to the use of internet connected applications, or browser based access to the internet from a mobile device, which is connected to a wireless network.
These Apps can be hosted on your already existing web-server and accessed at a standard URL through the device web-browser.
Since these are platform agnostic, content can be reformatted with CSS to suit any device.
Developing and delivering Mobile-Web apps means no high-level coding languages, no payments to App Store platforms, no approval process.
Scope of Mobile-Web Apps with HTML5:
With HTML5's introduction of the new video element , web developers can now include video within their pages without the need of embedding it in a plugin like flash. Given the high profile case of Apple refusing to support flash on their massively popular iOS devices, this is something of a huge relief to Mobile-Web developers.
The HTML 5 specification contains a standard for local storage that is implemented by a wide variety of browsers. Using the localStorage API You can create applications that store their data locally on the user’s phone rather than on your servers. This can be used to enable applications that use dynamic data such as calendars to also be used offline, or to support personalization of the app by users without them needing to log in or have an account on your site.
Giving your apps some level of offline capability can bring it closer to the native experience as your key interface features – buttons, images, styles, scripts, etc – can all still work even if the user has a poor internet connection.
HTML5 enables developers to specify which files should be stored locally on the user’s device. This saves your app from ending up being a blank page if the user doesn’t have a connection, thus improving the user experience.
HTML5’s Web Workers specification provides applications with the ability to use scripts that run in the background without interacting with users.
A primary reason that many companies are not already jumping on the HTML5 bandwagon is the belief that HTML apps cannot access native device features. Indeed, pure mobile web apps (i.e., those that run in the browser – not hybrid ones) are currently restricted in their access to features such as the camera, microphone, address book, and so forth.
There is work in progress at the W3C to allow web apps to access such devices services , mobile browsers do not currently provide such functionality – a key requirement for many innovative mobile apps.
A Hybrid-App is a native, downloadable app that runs all or some of its user interface in a embedded browser component.
Hybrid-App development employes native capabilities whiles also serving as a strategic stepping stone towards the adoption of HTML5.
To the user a Hybrid-App is almost indistinguishable from a native one, it is downloaded from the App-Store or Marketplace. It is stored on the device and launched just like any other App.
Unlike the Mobile-Web App, you don't browse to a Hybrid-App, you download and install it.