As a developer I see a great potential in the direction of mobile and device application development. It is evident that the platforms like IOS, Android and Windows Phone are making themselves better with each passing days such that they can excite more developers and eventually the consumers. A huge marketing perception is consumers and proper marketing make a product successful. May be, but when it comes to mobiles and devices, I don’t buy this argument. When I decide to buy a smart phone or tablet, first and foremost, I evaluate whether useful and popular applications are available in my local market place or not ? Applications are essential for the success of any platform. I believe a smart device with smarter platform is a void combination if there is dearth of applications to use on that. Applications are output of a developer work hence any platform need developers to succeed.
As a developer I want to write applications and get connected with user of all types of devices and platforms. At any given day I want to see my applications are running on all platforms and used by users of all types of devices.
Let us go bit mathematical here. For instance take an example, I want to run my application on three popular platforms and roughly I may need to learn three different technologies and need three different development environment.
Learning three different technology is exciting though I am more worried about writing three different sets of code for same business requirement. I am reluctant to put thrice of my work for the same application. After creating application I will have to manage and support three different codes as well. At any given day I do not find creating three different application for same business requirement a wise and smart idea. Having said that there may be some scenario when my application is relying heavily on a particular platform and device capability, in that case I may want to write code specific to platform. However when I see majority of the applications are data driven and just consuming data from remote services. In these types of applications I would consider to write one code running on various platforms.
Let us get more mathematical here, assume we are writing an application and want it to run on three popular platforms and application creation for each platform requires 100 lines of codes. So I have to write 300 lines of codes and later I need to manage and support three different sets of codes.
I may not want to do it if I am writing an application which is just consuming services and nowhere using device capability extensively.
I may consider to write one application and expect it to run on all platforms. This type of application is known as Hybrid Application
There are many awesome products out there which help to create Hybrid Application. One of the best could be jQuery Mobile and Kendo UI Mobile
So I may summarize Hybrid Application Development in following steps
- Create application using HTML
- Build application using PhoneGap
- Deploy it to various platform via respective marketplace
In block diagram, I can summarize hybrid application development as following
So if I am opting for hybrid application development, I may need to write only 100 lines of codes and my application is running on all the platforms. For the same requirement, if I am going to create native application, I will have to write 300 line of codes and I will have to manage 3 different set of codes.
I will end this post by saying if I am not going to write application that is going to use hardware and device capability heavily then Hybrid Application is my choice. At any given day I would like to write one set of code running on various platforms and being used by consumers from all across.
Any comment would be appreciated.