Many veterans of mobile development swear by one or the other. Android native, iOS native, or mobile web. Native development has the benefit of fast response time, cutting edge implementation and features, and a more state-like, application-like user experience. Mobile web has the benefits of being quick to update, without long lag-times in the Store (for iOS). Web development is an easier-to-find, more accessible skill.
I have done a lot of both, and what I recommend is actually a combination of both native and mobile web. It’s difficult, but in the end you get a combination of those benefits, and, in addition, a single codebase (for mobile web), a quicker timeline to release, and breadth of installation base- iOS, Android, and web.
You split the duties between the development styles as: mobile web does screen activity, basically any displaying of database information, features, most of the guts of the application. The wrapper – the navigation generally, user session information, and any native features such as camera, or audio/mike, are handled by native.
The negatives of mobile web: you are making a REST-like web site behave like a state-like application. This takes some tricky rerouting, making it appear to the user like everything is happening one page (as native does). For native, you have to build a very robust web api interface, and largely not take advantage of caching objects, since you need to refresh frequently.
Once you’re ready to quickly deploy and iterate, a hybrid solution of mobile web and native becomes very seductive.