Hey Jecki,
We've touched on question 1 in a previous
thread, and I expect there will continue to be some good discussion there, so I'd recommend checking that out:
https://coderanch.com/t/524844/Android/Mobile/Android-web-app-other-devices
Question 2 is a good one, and one that I would likely rant at length about if given the chance. I will admit though I am biased given it is the business I am in, so
you should definitely take what I say with a grain of salt.
My opinion is that if you are developing applications for mobile that could be developed as a mobile web app, then you should definitely consider that approach over native app development. Why? Well consider the fact that we have a variety of different handsets out there, and according to the various stats around their web access, no platform has more than about %30 market share at most. My background before coding for the web was as a windows developer, and at that time I felt a little uncomfortable with the fact that software I was writing would only cater for 90+% of users. Move forward to today, when I am coding for mobile, I really just cannot bring myself to build applications that target only 30%.
Admittedly, using the techniques that we outline in the book won't get you to 100% mobile device coverage, or even close to the 90% that I used to feel bad about when coding windows. Mobile devices with a webkit browser are on the increase though, and using that as your "lowest common denominator" should in time bring you close to 70% (a rough estimate) device coverage. As per the thread I liked to regarding question 1 though, there is always small tweaks to do to get things working well on each of the devices, but build your application right and you will have a much more maintainable solution than attempting to manage separate native apps for a variety of platforms. The bigger companies and startups with VC funding can probably take that approach, but it's not going to be suitable or sustainable for the "rest of us" (or the businesses that are our clients).
I'll probably stop there, before I hit full rant mode, but I think I've communicated why
I think coding mobile web apps in most cases is a better approach than going native. There are of course things that are more challenging to using web technologies than native (games are a good example) but I think that will probably change over the next few years as well as HTML5 canvas support grows.
With regards to question 3, if you can manage to do both, then you are very well positioned for getting the absolute "best bang for your buck" right now. A knowledge of how Android apps work under the hood can assist you with writing PhoneGap (a mobile web application native wrapper) plugins and also allow you to mix and match technologies. My guess is that in 3 years time, we will all be writing mobile web apps (games being a likely exception), and in the meantime we are going to see quite a few Hybrid applications that mix and match native and web technologies.
Hope that answers your questions, and I didn't get too off topic. Re-reading over my response here, I would expect people to wonder exactly what constitutes an application that could be written as a web app, and I will definitely attempt to answer that as a follow-up if people are wondering.
Cheers,
Damon.