(Here’s a fancy web version of this post.)
This post explains why I chose to develop my apps on Apple’s iOS platform first and the alternative development options available.
Platform development paths
There are two smartphone platforms to consider: Google’s Android (72% world market share) and Apple’s iOS (27% share). Native apps, i.e. those based on platform specific coding languages, typically offer a superior user experience relative to alternative options. This suggests the best path is to develop native Android apps first. However, developer’s decisions are often determined by what’s in their pocket, due to familiarity and ease of app testing. To enable a more balanced assessment, outlined below are the main platform related development options and factors to consider.
My decision to start developing iOS versions of my apps, including Scarper and Nip To, was based on the fact I had an iPhone and could scale my app designs for a limited set of screen sizes. I plan to explore the hybrid option mentioned below for my Aim For app.
Android
Android users tend to be concentrated in lower income areas of the world. The advantage of developing for Android is that there is no review process before apps are uploaded to Google Play. Hence, you can release a very beta version of your app, get user feedback and apply changes very quickly. This Build → Measure → Learn approach aligns with the product development methodology advocated in The Lean Startup. The downside of Android is the variability of mobile devices which makes it difficult to assure a good user experience.
iOS
Apple users typically attain higher educational levels, are more engaged and adopt changes quickly. Users are affluent, including many in the public eye, and spend more. With its devoted followers, Apple is considered the best choice if you wish to make a big splash with an app launch. The downside of iOS is that there is an app review process (1-2 days for most) and you need to develop on a Mac.
Other options
The following development options are available.
Single codebase translated into native code, e.g. React Native (JavaScript library), Flutter (Google’s framework coded in Dart). This avoids the need to write native iOS and Android code in different languages and maintain them separately. The downside is that you are working with features which represent the lowest common denominator across the two platforms and the latest native features cannot be used.
Web based app which is viewed on mobile devices and laptops/desktops. The advantage of a web based app is that there is a single codebase to maintain which is based on widely used web technologies such as HTML, CSS and Javascript. The downside is that the user experience does not feel as slick as native and is reliant upon good network connectivity.
Hybrid web plus native iOS and/or Android, e.g. Basecamp’s hybrid architecture. Much of the app is written in native languages with a significant portion of the content rendered using web technologies. This approach has the benefit of feeling like a native app, but is reliant upon good network connection.
Other resources
Android v iOS: Which platform to build for first? article by Ken Yarmosh
MobileApp Marketing and Monetization book by Alex Genadinik
In next Sunday’s post I’ll talk about design rules for Free to Play games.
Until next Sunday, see what’s in your pocket.
Phil…