Smarter ideas worth writing about.

Native or Mobile Web App?


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.).

On the flip side of the complexity scale, your mobile app may be more geared toward browsing type activities. Take Wikipedia, for example. They have taken the mobile web app approach (web app packaged via PhoneGap) because the purpose of their app is purely informational. Their content and infrastructure are already well suited for web content, and really all they needed was to fit the content into smaller devices and provide some basic mobile functionality. There’s nothing complex about browsing Wikipedia. The most complex thing you can do in their app is search! The static nature of content like that eliminates the need for a lot of custom development to make the app usable. Of course, you can make any web app just as usable as a native one if you have enough time. The HTML/CSS/JavaScript stack is extremely versatile, but it can be very time consuming to create highly usable interactive interfaces that work well across the various platforms and devices. You’ll probably need a UX (user experience) designer for either approach.

It’s important to note that a pure mobile web app is not the only option available for taking a mobile web approach. Tools like PhoneGap and other frameworks give us another option somewhere in between going 100% native vs. 100% (mobile) website because they take an app built in standard web technologies (HTML/JavaScript/CSS) and package them in a native wrapper. The wrapper that PhoneGap provides also provides some basic hooks into some of the hardware and software features of the mobile device like access to the contacts list, calendar, GPS, and more. And PhoneGap isn’t the only option to consider. You can even create your own hybrid approach (Facebook, Netflix, LinkedIn) where some parts of it are native (navigation), but others are web views (the newsfeed). On the other side of this hybrid approach is creating a native app that serves up web content via web views. This can be a very effective method of blending performance of native with the cost savings of web to produce a very usable mobile application..

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:


About The Author

Practice Manager

As a maker of digital things, Rachel thrives on leading teams to deliver high quality software. She's been programming for over 15 years and leading for at least 6 of those years. Most recently, she’s been architecting mobile apps using Swift and React Native, and her teams are well-versed in development best practices. Invite her out for a mobile tech chat over a pint of craft beer, and you might make a friend for life.