In the native vs. web discussion , I feel that one aspect of apps is often ignored: an operating system is more than a runtime. Most OS’s (mobile or native) implement some sort of vision.
For example, classic desktop operating system represent objects as icons, use windows to let you use multiple apps on one screen, and have menus to avoid cluttering the app with many buttons. iOS went a different route, opting for a drill-down approach with a navigation bar and a minimum of commands. In Unix, single-task tools work with streams to provide for powerful daisy chaining of commands. In Plan 9, everything is a file. Android’s “intents” and ”activities” provide for a very flexible flow, and the action bar gives you a menu to add less commonly used commands. Roku (streaming box) has a horizontal/vertically scrolling UI that works perfect with a remote control. Windows 8 embraces horizontal scrolling, big tiles, and chromeless UI. The list goes on.
The real value in a “native” app is that it can embrace the platform. Designers should not view an app as a blank canvas (like a web page), but instead as a new part in an existing system. For this reason, the oft-seen approach of taking an iPhone app and port it to Android as-is (I’m looking at you, Twitter) completely misses the point.
It may sound like a lot more work but actually, the platform designers have done much of the hard designing for you. What remains is adopting those concepts for your app’s structure and adding the touches that make your app unique.
← back to main0>