When you set out to build a mobile app, one of the first things you will need to decide is just what kind of app to build. Should you build an app for the iPhone? What about the Android? Should you forego a traditional app, and bet it all on a HTML-based web app?
In this post, I’m going to walk you across the mobile development landscape, and share the lessons I’ve learned to help you decide the right mobile platform for your app.
Build Native, or Go Web-Based?
When you think of a mobile app, you are likely envisioning an app you download via a marketplace like Apple’s iTunes. Apps like these are called ‘native’ apps, because they live on your phone, and run directly atop your smartphone’s operating system.
An alternative to native apps is web-based apps that run within your mobile browser, more popularly referred to as ‘HTML5’ apps. A mobile web app is simply a web site that has been styled to fit the smaller screen of a smartphone. With the advent of HTML5, the latest version of the venerable web-browsing standard, mobile web apps can replicate much of what previously could only be done by a native app.
The great advantage of mobile web apps is platform independence, as they can be viewed using any device with a modern web browser. Additionally, if you have an existing web site and are looking to create a mobile experience from it, then the mobile web app route is very appealing as the effort to modify an existing web app for a mobile browser is much less than it is to write a native app from scratch.
However, mobile web apps have limitations because they run within a web browser, and not directly on the smartphone’s operating system. If you want your app to receive push notifications, use location services, or use the phone’s camera, a mobile web app will not work.
In general, mobile web apps are great for experiences that are consumptive in nature, like a cookbook or restaurant review app, but do not work for apps that require access to the smartphone hardware such as Instagram or Spotify.
Which Platform to Build On?
If you go down the path of a native app, then you need to choose which mobile platform to build upon. In smartphone land, there are 3 major mobile platforms to choose from: Apple’s iOS (i.e. the iPhone/iPad), Google’s Android (i.e. Samsung Galaxy), and Microsoft’s Windows Phone (i.e. Nokia Lumia). Apps written for iOS will not run upon Android or Windows, and vice versa.
Furthermore, porting an app from one platform to the next requires a complete re-write of the code. So depending on what you are building, who your audience is, and how you aim to monetize your app, you need to carefully choose which platform to build on.
Android vs iOS: Market Share vs. App Revenue
Google’s Android and Apple’s iOS are the two giants in the smartphone marketplace with Android claiming 56% of worldwide market share, and iOS 23%. Even though Android is the market leader, these market share numbers obfuscate the reality that Android users are not likely to pay for apps, especially when compared to iPhone users. In 2011, iOS claimed 85% of all global app revenue, with roughly $3.5 billion in revenue collected by app developers, compared to $340 million for Android developers. If your monetization strategy depends on users paying for your app, or through in-app purchases (i.e. ‘freemium’), then iOS is by far the more lucrative option.
Android’s Flexibility: Pros and Cons
Unlike iOS, Android is an open platform that allows developers to build apps that replace the keyboard or introduce completely new UI shells, both of which are impossible to do in iOS. Furthermore, prior to release every iOS app must be reviewed and approved by Apple, which has a somewhat arbitrarily enforced set of guidelines that commonly rejects apps for being ‘potentially offensive’, or for not following Apple UI design guidelines. On the other hand, Google Play (the Android app marketplace) allows developers to publish apps with very little review done by Google. For instance, building a photo-sharing app on Android will require less work than on iOS, because Apple guidelines require it to include content moderation functionality.
Yet, this flexibility is at the root of the problems with Android. At a technical level, it’s much easier to develop a high-quality app on iOS than it is Android. On iOS, you are only building an app to run on a small-set of Apple-built devices. On the other hand, Android is designed to run atop hundreds of different devices, with very few of them actually manufactured by Google. This device fragmentation causes real problems, as each phone introduces its own idiosyncrasies in how Android behaves atop of it, thus making it extremely difficult to build an app that will run smoothly across different Android devices. If you do choose Android, have some sympathy for your developer, and make sure to clearly specify which Android devices you want to support.
Windows Phone: 3rd Place Isn’t So Bad
The dark horse of mobile platforms is Microsoft’s Windows Phone. While it’s 1.9% market-share is tiny, and its app store relatively small (~80,000 apps), the Windows Phone has received critical acclaim for its design, and stands to benefit from Nokia’s move to it for all future smartphones. The small number of apps on the Zune Marketplace provides the last greenfield opportunity for app developers to build apps with little competition in categories that have long-since been flooded in iTunes and Google Play (there still is no Instagram app for Windows).
One great benefit of Windows Phone is that it’s continued integration with Microsoft’s full-stack of IT products makes Windows Phone particularly well suited for deployment in enterprise environments. Thus, if you are building a B2B app or one designed for enterprise users, Windows Phone is a good place to start.
Furthermore, because Windows Phone is built on Microsoft’s .NET framework, an experienced .NET developer can start building on Windows Phone 7 almost immediately. Given the number of .NET developers working for large firms in NYC, there is no shortage of local talent that you could recruit to build a Windows Phone app.
One shouldn’t confuse building a mobile app with building a native app on any of the 3 platforms outlined above. If you do not need to use the camera, or GPS, I recommend that you consider a mobile web app, which will immediately bring your app to any smartphone and avoid the heavy investment required to build a native app.
However, if you do choose the path of a native app, I prefer the iOS and Windows platforms, as they provide both a superior development experience, and increased revenue opportunities that make them a more attractive of a choice than Android.
Learn to build your own Android or iOS apps.
Bobby is the founder of Blue Label Labs, a mobile development lab based in General Assembly. He is a recent graduate of the Columbia Business School, and before that spent 4 years at Microsoft as a Program Manager. Follow more of his writing on mobile technology at http://www.oscial.com. Feel free to email him about your mobile app questions at firstname.lastname@example.org