Tuesday, February 28, 2012

Which mobile platform is the best Native or Web app ?


Mobilize your website: Native App or Mobile Web?

There is mobile buzz going on, every one want that there website should have access to smart phones. It was till last year that only Social/e-commerce sites have mobilized but now because of phenomenon growth of smart mobiles and tablets there is also good growth in enterprise applications. Each sector whether it is Education, Health, Social etc every one is trying to be mobilized.
In mobile world things are not simple as web development as there are lot of different devices  available. There is no standard in these devices and that's also changing at very fast rate. I will give you an example I am working on mobilizing BMC IT Service management. When we started we did a survey about which mobile device is mostly used by our Clients. The number of Blackberry users at that time were huge. So we started development concentrating on Blackberry but then we realized that iphone number has grown at very fast rate and our customers want the product for iphone also. It was good that we designed our API’s and code in good way that it does not take much time to release the same product for iphone also. So coming back to point the mobile world is changing at very fast rate, we can’t decide which platform will lead the future but choosing the right framework and designing good API will always help you.
I got frequently get mail and call by many companies and people asking which framework is good for creating Mobile application or asking which is better Native application or Web application. So just thought to consolidate all the ideas.

To start with we can create  mobile application in three type way:
Native Apps:
These are platform specific application which is coded in platform specific language like Objective C for iphone/ipad, Java for Andorid etc.
Mobile games are develop using this application.

Advantages:
  • This application are reliable, performance is good and very powerful.
  • Can use Device Cabiblity like GPS, phone book, camera etc
  • You can have push Notifications 

Disadvantage:
  • Take lot of time for Development
  • Creating and maintain cost is very high as we have to code for each platform.
  • Finding language specific resource for this language is big task. As we need dedicate resources which are expert in these languages.
  • Have to submit to Appstore which is a painful process.

Mobile Web application:
These are the simple web application which can be access from each web enable device.
Advantage:
  •   Don’t need for Appstore submission. This is the most painful and time consuming process.
  •  Cross platform- work on all HTML5 devices like iphone, Android and Blackberry
  •  Easy to create and maintain.
Disadvantage:
  •           Not work well for touch phones( Can use some CSS framework for touch effect)
  •           This application are not very fast and not reliable
  •           No Offline Capability
  •           Can’t use Device Capbilities and push notifications

Hybrid Applcations
These are application which are created with some HTML5 based framework like Rhomobie, phonegap, titanium. These application can access device capability with there API and easy to code.
Advantage
  • Development is very fast,
  • Cross platform
  • Can use device capability and push notifications
Disadvantage:
  • If you need any specific feature you have to wait until these framework support that feature.
  • Choosing between these framework is difficult task. Each has its advantage and disadvantages.

So choosing in between depends on your requirements:

Sites like standard e-commerce sites, Social Networking site speed and experience can make a huge difference in the effectiveness of a mobile commerce website or native application. Sites that are slow to load — even by just a second or two — can often lead to users forgoing the transaction altogether. For this type of application I think Native application is best solution.

Sites like Enterprise application, Events, meetups etc were ease and time of development is important  there Hybrid application are best solutions. You can also use device capability, offline capabilities with them. 

If your application is used to check certain information and don’t want any offline capabilities/Device capabilities than Mobile Web application is best solutions.

And most important, design your API in good way so that they can be reused easily.

To know about different framework available follow this link

Also i have presentation in RubyConfIndia 2012 about "Which Mobile platform should i choose?"