Creating native mobile apps for iOS, Android and Blackberry platforms involves using a variety of tools and APIs. The issue has always been maintenance. Maintaining three different code bases is always a tedious task. Moreover there is a practical problem finding resources who have a knack of developing apps in all these platforms. It’s even more difficult trying to maintain three different sets of people one for each platform for the same set of requirements.
There are two popular frameworks available for solving these issues. PhoneGap and Titanium. I have worked pretty extensively with PhoneGap and but not Titanium though. I am planning to get my hands dirty with Titanium this month and will let you know my of comments on the same.
Some points about PhoneGap.
- Supports different mobile platforms.
- It’s usually used with jQuery Mobile and Sencha Touch
The main advantage of PhoneGap is single codebase and multiple output files. Making changes is very easy. It removes a lot of pain for developers in learning(It’s actually fun though :)) different APIs, different languages(Java, Objective-C) to build native apps. It saves lot of money for the companies involved in developing native apps for these platforms.
I have found that the disadvantage of PhoneGap is in it’s generation of native executable file. Lot of things happen behind the screen and developers are usually left scratching their head trying to figure out why it’s working or not working the way expected in different platforms. The same code that works fine Android sometimes behaves weird on iPhones. Lot of times I have felt I should have simply written code using the native platform APIs so that you have more control over the code, though it’s a costly affair.
To me, even after working with PhoneGap I could not call myself a native app developer because I didn’t know what was happening in the background, till I started coding using the native APIs. In fact, lot of times working with PhoneGap applications reminded me of working with EJBs (1.x and 2.x particularly) though the code is not as weird as EJBs here.
Nevertheless PhoneGap is still a very good way to get into native mobile app development for beginners. You will definitely learn what is involved in developing apps for mobile devices.