When someone asks me, “should we go native or mobile web for our mobile app?” I immediately have one question: what type of interaction will your users have with your app? Will they be inputting their data, taking pictures, or searching through lists? Or will they be browsing content like an online catalog, wiki-type material, or data from a report? There are many factors to the native vs. mobile web discussion including target audience, application complexity, and many more. However, I submit that the type of content and interaction that you want to serve up should be at the heart of your native vs. mobile web decision.
The variety of user interactions in your app also have varying levels of complexity in navigation and thought process. The more complex the navigation can get, the more you should consider taking the native approach. As a user is working in your app, his navigation path may wind and weave into something more complex than you first imagined. This is where native mobile apps have a serious advantage. Simplifying navigation complexity is at the heart of good user experience, something that is imperative to a successful mobile presence. Native apps provide a higher level of usability at a lower cost because it is simpler to create clean and clear navigation using the components, methods, and philosophies pre-determined by the platform. Google and Apple are going to great lengths to provide developers with all the tools and guidelines they need to build consistent and standardized apps on their platforms. The result is that an iOS developer doesn’t necessarily have to create a lot of controls from scratch nor does he have to determine the best way to layout an intuitive navigation scheme. He simply follows the patterns and practices of the iOS platform, and he can quickly create a highly usable & performant mobile app. Even Android has caught up on the user interface guidelines standardization, enabling Android developers to create standards on a platform that is begging for common ground. While it may be true that native development can cost more upfront (learning the platform, etc.), the benefits of being able to quickly provide a highly usable and highly performant app will quickly make up for the costs.
But what about the costs of supporting multiple native platforms? Because the standards are very different amongst the platforms, you’re going to have to account for them whether you go native, mobile web app, or somewhere in between (hybrid). As a result, it is best to take advantage of pre-existing controls and best practices of the native platform if you can, as that will be where you can recover costs. For example, the presence of a back button on Android devices allows for a different type of navigation (and less code) than on iOS devices, which have only the home button. All navigation on iOS is done via gestures or navigation bars that all have to be coded for. However, these differences shouldn’t be ignored or shunned! You should embrace those differences because your audience has embraced them! They have already been trained on the standards and practices unique to the platform they’ve chosen. The more you can leverage the platform and what already comes with it, the easier it is to simplify your navigation and decrease your users’ learning curve. Again, there may be some additional costs up front, but in the long run, native is much better suited for applications with complex navigation and heavy user interaction (filling out forms, etc.).
The honest answer to the native vs. mobile web app is not easy. It depends on your business needs, your customer needs, and how you want to interact with your audience on mobile devices. You may end up needing both at some level (a mobile site + a native app), which is becoming more and more common. If the vision for your mobile app includes a lot of user interaction (filling out forms, editing lists, making decisions, etc.), then you should really consider finding a way to go native even if it’s a hybrid approach. Yes, there’s some upfront cost to learning new platforms, but the time to develop a solid app with standardized platform behaviors is much shorter in the long run. Of course, you may not have the luxury of time or money to accommodate that upfront cost. You can still succeed in providing a solid user experience in the mobile web app approach as long as you keep things simple. Keep complex interactions out of the mix, and your mobile web app will serve your users just fine.
Some sources used though not directly quoted: