No matter what your age, profession, or liking is,  the marketplaces have got something for everyone. From playing games to reading news and mobile banking & shopping to networking, you will find a mobile application for almost everything you can think of.

There are quite a few ways in which mobile application types are defined and understood by the industry. Some of the mobile application types are as follows:

1. Native Applications: Native applications, built specifically for a platform,  reside on your mobile device and may or may not require communication with a server . Some in-built applications  like calendar, calculator etc. are classic examples.

Native applications leverage the device features, both hardware and software beautifully. Consequently, these are more efficient and provide a better user experience. On the flip side, a native application requires separate development work for each platform and testing effort is also manifold.

Native application development is generally done using libraries and platforms provided by the OS vendors or integrated Development Environments (IDEs). Native application for iOS will be done on Apple’s development platform called X-code and use Objective C as programming language with Cocoa Touch API. Similarly, one would need Google’s Android SDK to develop an android native application in Java/JavaScript. C# and .net is what you need for implementing a Windows Native application.

In ideal world, it would be perfect to always have a native application. Market fragmentation poses the biggest challenge for native application developers. It is not economically feasible and practical for every application to be developed separately for each platform. Every targeted application calls for dedicated development and testing leading to longer  time to market and affecting ROI.

2. Browser Based Applications/ Hybrid Applications: These applications are accessed using the mobile device’s browser.They are read on the fly by browser’s rendering and Javascript engines i.e applications communicate to the device using a browser engine.  iOS, Android, Symbian use Webkit browser engine. Due to this extra layer of processing between mobile device and the code, web applications do not perform as good as a native application. Unlike native applications, hybrid applications cannot fully utilize the potential of the operating system. They can use the APIs exposed by the browser to use some of the device’s features like gyroscope and accelerometer data. Due to these reasons, these are named as hybrid as they are platform independent from development perspective , still they can access some of the native device features.

Inspite of these limitations, if the application does not need to do extensive processing, web applications can be equally good. Applications are coded in browser rendered language like HTML. It’s a common practise to use HTML5, CSS3 and JQuery Mobile for the application and run in a native wrapper so that the applications can be downloaded from various  marketplaces. In other words, the application code would remain same and it is just wrapped in different platform specific shell to create .ipa and .apk files for iOS and Android respectively. Phonegap provides this service free of cost  for some projects (at the time of writing).

This “write once, run everywhere” promise makes HTML applications very popular. Developing web applications enables developers to bring their application in market sooner with a more scalable and affordable solution. Having said that, HTML5 is not a silver bullet, it has it’s own fragmentation issues due to inconsistency in HTML5 features supported by different browsers.

It would not be incorrect to refer hybrid applications as a type on native applications as they reside on  the device once installed. Marketplaces are flooded with  popular HTML5 applications like Meebo, wikipedia and many more.

3. Mobile Web applications (or mobile sites) : These applications are nothing but separate web applications for mobile devices. Generally catering to much lesser functionality than the desktop web applications, mobile web applications are on m. or mobile. domain. The mobile web applications do not aim to mimic the actual web applications, rather they provide you the most important and relevant functions as fast as possible.  Mobile sites will do similar things like a standard website but for a much smaller touch screen. Some people do not even consider mobile sites as a classification of mobile application types.

It is much easier to update a mobile site as compared to applications which requires notifications to be pushed to users for updates.

Facebook have got their mobile web application or site as m.facebook.com. The mobile site essentially performs most obvious functions from user’s point of view with a superior user experience as compared to the actual web application (on mobile device). It’s noteworthy to mention here that the mobile site has got a link to the access the web application on the mobile device, if you try both of these, you can see and feel the difference yourself! The idea is to provide the user with the best possible option and at the same time giving them access to the entire site from the mobile device.

According to many people, mobile applications are of two types only: Native and Web.

Apart from the above, mobile applications can also be classified as thin client applications and Fat Client/ Rich Client Applications.

Thin Client Applications: Just like their web applications cousins, thin client mobile applications will have most of the software and data residing on web server and accessed through a browser. Data flow between device and the server is facilitated using HTTP requests. These applications have lot of dependency on the network connectivity which can render them pretty much useless in case of low network strengths. Since, a thin client application requires un-interrupted network connection, it will incur more data costs on the use and reduced battery life.

On the contrary, Rich Client applications have the software and data on the mobile device. The data will be transferred between mobile device and server in the synchronisation sessions. Because, a smart client application need not talk to server constantly, it will have advantage in terms of battery life and data costs as compared to the thin client application.

Smart client applications are generally platform specific. Generally, native applications are smart client applications though it is not strictly true.

The decision to choose the type of mobile application depends on various factors like expertise, resources and the audience & the intended use of the application, ROI , time-to-market etc. While native applications trump hybrid applications in User Experience, the latter will always have a leg up when it comes to faster time-to-market.