This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I had a couple of questions on Android as I am new to this.
# I was thinking to start Android development as the market capture is good, but then I got to know that there is framework called PhoneGap which converts the application into all major supported phones. So what you think do I learn Android or PhoneGap?
# Well we have seen too many frameworks and cellphone OS are being developed in recent years. If I would learn Android only then in future there might be some new OS would come up. In that case I believe learning PhoneGap would be worth. Because they would start supporting the new OS/framework. Please share your comments.
# How much we can earn with Ads in the application? Just an example would be fine.
Don't know why you targeted only Dave and Jeff in Public Forum.....
Nevertheless, As far as i know, you cannot do everything with PhoneGap as you can do with native Android API's. Phonegap has an advantage of targeting almost every platform which is obvious advantage. So the choice depends on the target application to be developed.
Moreover, you can only earn much from Ads iff you do no think much of earning it form ads, i mean you should focus on customer needs and rest is just a consequence. :-)
It is my opinion that, in the mobile space, whenever possible it is best overall to develop natively on a platform and not attempt to use the cross-platform frameworks that are out in the marketplace today. I develop applications daily on multiple mobile platforms (not just Android), and I do so in each platforms native language and SDK. I actually wrote a short opinion piece on this for SD Times not too long ago: http://sdt.bz/36683
My basic premise is that, in order for cross-platform frameworks to be considered functional on all platforms, the end up excelling on none of them. Not all mobile operation systems work the same way, and the users of those systems expect the applications they use to work in a consisten manner on their device. If you write your application once using a cross-platform framework then you have to define the behavior of that application to work in one specific way, so you pick one OS paradigm to design for (usually iOS) and then users of your application on other platforms have an application that doesn't fit with the rest of the apps on their device. Beyond that, as was already mentioned, the feature set available to you is limited. The frameworks can only provide APIs that can be supported on all platforms, so specific features of each platform that don't port well will not exist in the framework. These are the same reasons that Java ME never truly took off as an application platform, even though it was on all major smartphones very early on. I tried to write my very first mobile app with Java ME on a Windows Mobile 5 device, only to realize very quickly that I couldn't even access the basic API functions to do anything I wanted with the device hardware. Cross-platform frameworks today have since remedied some of this, but the portability concept will always keep them from completely overcoming it.
Learning new technologies associated with application platforms is simply a fact of working in technology, this is not an issue localized to mobile. However, the issue is exacerbated on mobile because the platforms behave so very differently from the user's perspective. Bottom line, cross-platform frameworks are for people more concerned with doing less work than creating a great application experience.