Every mobile app developer can relate to the experience of impromptu idea pitches. It seems like everybody you meet has an app idea, and they seem to consistently fall into one of these several categories:
About one-fourth are simply bad ideas. Developers always try to be kind and gracious (or at least they should), but software design and development is expensive and time-consuming, and not every idea is worth the effort. Don’t immediately dismiss bad ideas, though, because they can lead you down surprising paths to new, original ideas. The difference between bad brownies and great brownies is about 5 more minutes in the oven.
About one-fourth are either explicitly prohibited by the platform’s terms of use or they are physically impossible. No matter how skilled a developer is, he can’t make the iPhone’s screen project a 3-dimensional hologram in mid-air like in Star Wars. Obi-wan Kenobi can help you all he wants, but it simply isn’t going to happen. A Tivo-like AM/FM radio recorder for the iPhone simply isn’t going to happen because there’s not a radio tuner. All the software in the world can’t change the laws of physics.
About one-fourth are actually genuinely good ideas for mobile apps. They are fun or useful, they take good advantage of the capabilities and UI features of the platform, and they have an obvious potential user base. If your app idea falls into this group, be prepared to talk design fees, business models, and revenue streams. There’s no guarantee that it will be successful, but it has at least cleared the first hurdle.
What about the other 25%, though? These ideas are both good and possible, and they often have strong business models. So why aren’t they in the third category with the other good ideas?
Because those ideas can be better implemented as web apps than as native mobile apps.
”Apps are the hot new thing, though!” you exclaim. “Why wouldn’t I want an app?!”
There are several good reasons to consider web apps, especially mobile-optimized ones, rather than native apps (either mobile or desktop).
Choosing the web over a native app can rescue an otherwise good idea that is prohibited by a platform’s terms of service. Mobile device makers, and their respective app stores have no control over what services you can provide to their users via the web, beyond the normal restrictions of web browsers.
If your app can only function online, meaning that it has no need for offline capabilities at all, then it’s an excellent candidate for a web app. There is little reason to force users to download and install an app that will only tell them they need an Internet connection whenever they try to use it offline.
If you have an existing web app, your fastest, cheapest path onto mobile devices will be to build mobile-optimized versions. You may still eventually want a native app, but the mobile web will allow you to leverage your existing resources.
If you need your app to be available on multiple mobile platforms quickly, then building a web app may be your best choice. Despite the proliferation of cross-platform mobile app frameworks, some of them quite good, so far Steve Jobs has been right: Native apps still provide the best, most consistent user experience. Even with cross-platform frameworks, additional time and resources are required to hone and polish the different versions.
Consider the availability and experience of developers, especially if you prefer to work with local designers and developers. As of 2011, nobody outside of Apple has more than three years of experience building iPhone apps, but people have been building websites (and at least rudimentary web apps) for more than a decade. That longer time frame means that it may be easier (and cheaper) for you to find good, experienced web developers.
So, after considering all of these factors, what are some reasons that a native app might still be the best solution for you?
Your app may require direct access to hardware features that are not accessible via the web browser. Although modern browsers, even on mobile devices, are advancing quickly, and HTML5 promises to provide even more features, there are likely to always be hardware features that are only accessible to native apps using the sanctioned SDKs. This is especially likely to be true if the hardware features are unique to that particular platform.
High-performance apps, such as 3D games, still require the performance and responsiveness that is only available via optimized native code. Javascript running in a browser cannot (yet) match the performance of a native game engine.
Apps that would require lots of bandwidth to work are not good candidates for the web when bandwidth is likely to be restricted or unreliable. An example might be a photo or video editing app that required large file transfers to a remote server.
Don’t underestimate the marketing appeal of being available in a platform’s app store. That will be the first place that most users look for applications, and the visibility app stores provide can often justify the expenses or compromises necessary to gain access.
There is a third consideration as well: what I call hybrid apps. These are native platform apps whose main purpose is to provide a native interface to a web app. They might provide some basic offline functionality, but their primary function is to act as a stripped down frame for the web app. You can almost think of such apps as dedicated, customized web browsers. They can give you access to the app store while skirting around some of the limitations and obstacles involved. However, depending on their exact functionality, you will still need to be careful not to run afoul of the app store’s terms of use.
These are just some of the factors to consider if you think your idea is suited to a mobile app and keep in mind that in the rapidly evolving world of mobile technology what is impossible today may be commonplace tomorrow. HTML5-compliant web browsers are advancing by leaps and bounds, and the offline capabilities provided by the coming generation of web apps and web frameworks may obviate many of the advantages of native apps.
In any case, it is important to talk to an experienced, trustworthy designer or developer about your idea, your needs, and your plans. What appears easy from your perspective may be something they know to be impossible, and vice versa. Also, good designers and developers make it their business to keep abreast of the latest developments in technology, so they will be able to give you advice and recommendations on how to go about developing your idea today while laying a strong foundation for tomorrow, regardless of the platform you choose.