Who Won the Mobile Platform Wars? Android vs. iOS Development

logo
Infinum
  • Date Published
  • Categories Blog
  • Reading Time 8-Minute Read

The two big platforms in mobile development are Android and iOS, should you develop for one or both?

The two big platforms in mobile development are Android and iOS, and if your company is looking into mobile app development, should you develop for one or both? If you aim for both, which one should you start with? What is easier to develop on is only part of the answer.

A full answer depends on both the resources you can put in and the market you’re looking at. Back in 2015, we wrote an article about how Android development is more expensive than iOS but as the platform grew more mature, that isn’t always the case.

A related question is how you approach development. You can develop two completely separate apps, use a cross-platform development tool to create both at once, or create separate apps that share some elements. The choice you make here involves a trade-off between development time and a native-looking user experience.

The Development Environments

Google’s Android platform is used on many makes of devices, from smart watches to phones to tablets. It’s based on the Linux operating system, though developers rarely work at the Linux level. The large majority of applications are based on the Java language. They often make heavy use of HTML and JavaScript as well. iOS is used only on Apple’s own iPhone, iPod Touch, and iPad. The code is generally in Objective-C or Swift.

Android Studio is Google’s development kit. It’s available for free, and it includes tools for editing, building, and simulation testing. It can run on Windows, Mac, or Linux systems. Apple’s official development platform for all its operating systems is XCode, which requires a Mac. Development for iOS is similar in many ways to Mac OS development, so Mac developers can get up to speed on iOS quickly. The iOS platform is tightly under Apple’s control, which presents advantages and disadvantages.

Java is one of the most widely used programming languages, so there’s no lack of Android developers. Apple’s preferred language for iOS is Swift. Until recently, iOS developers worked mostly in Objective-C. Swift is a cleaner, more modern language.

There’s a growing trend on both platforms to use JavaScript for much of the application. If the developer uses a JavaScript-based framework, it may not be necessary to write any native code at all.

Style and Philosophy

The two platforms take different approaches to development. Apple has always maintained fairly tight control over its platforms, while Android is more wide-open.

Developers have to deal with the wide variety of devices that run Android. In addition, they have to keep their code compatible with older versions of the platform. It’s often difficult for users to update their devices until the manufacturer rolls out an Android release that runs on it, so adoption of the latest releases is fairly slow. An app that runs only on the latest release will have a limited market.

iOS runs on a small number of devices, all of them made by Apple. Developers don’t have to worry about Apple TV or the Apple Watch, which use a different platform. Users are strongly encouraged to stay updated to the latest system software. This allows a faster development cycle with less testing.

Android developers have to do a broad range of testing to make sure their applications will run without problems. This adds time to the development cycle. Apple’s requirements, on the other hand, are sometimes more stringent.

Getting to the Store

The Play Store is Google’s preferred method of distributing Android applications, but alternative distribution platforms exist. Apple’s App Store is virtually mandatory for iOS applications. It’s possible to distribute iOS applications to a restricted audience (e.g., for internal use in a company) without going through the App Store, but in general iOS devices won’t accept downloads from anywhere else.

The App Store does more thorough checks of applications than the Play Store does. This adds to the development effort, but experienced developers know how to avoid rejection. Only registered Apple developers can submit software to the App Store.

Comparing the Markets

The Android platform gets a lot more downloads, but that’s only part of the story. It has more applications, so yours has more competition in sheer numbers. The fact that it’s easier to get into the Play Store is a major reason for this. So is the fact that lots of people have Android phones.

While there aren’t as many apps in the App Store, its higher income figures attract high-quality applications to compete with. Both markets have strong competition in their own ways.

Starting Android development work presents less of a hardware hurdle. Development for iOS requires having a Mac and an iOS device. Android developers can use any computer and an inexpensive Android device.

Users of iOS tend to have higher incomes, and they spend more time using applications on their devices. This likely reflects the fact that iOS devices are all in the middle, or the high end, of the price range. People aren’t going to get them and then not make full use of them. Android devices are available at all price points, from very inexpensive ones to devices that compare with the high-end iPhones and iPads.

The low-end Android phones are a significant part of the market, and people who buy them may not be interested in much besides its telephone functionality.

Respective market shares vary by country. The highest iOS usage is in the United States, Australia, Canada, and western Europe. Android strongly dominates the rest of the world.

Even though there are more Android downloads, App Store downloads bring in more revenue. It’s easier to get iOS users to buy applications, generating immediate revenue. Android applications are more likely to be ad-supported or “freemium.”

Development Strategies

So we come back to the question: Should you develop for one platform or for both? It’s best to decide this up front, even if you start with just one platform. If there’s a reasonable chance you eventually want both iOS and Android versions, you should plan that from the start. Without cross-platform planning, writing the second version can take almost as much work as the first one did.

Assuming your long-term aim is to develop for both, several strategies are possible. One is to have a single design but two sets of code. Since one is in Java and the other in Swift, they have to be separate, but they can follow a common layout so that they both use the same structure and algorithms. This approach lets each application take full advantage of native features and look as if it belongs on the platform.

Going Hybrid?

The other end is to create only a native stub for the platform, or use a standard one that’s already available, and write everything else in HTML, JavaScript, and CSS. This amounts to packaging a Web application as an app instead of running it in the browser. This lets both applications be very nearly the same, saving on development time. On the downside, performance won’t be as good as a native app and the user experience will be heavily compromised. Those apps feel very generic. Going that way requires getting expert mobile JavaScript developers on the team.

A middle solution is to write some parts of the application as native code and use the HTML/JavaScript approach for others. This can help a lot in giving it a native appearance while requiring less coding than two completely separate applications.

Whether to pursue development in this direction or not depends on many factors. The type of the app you’re about to build, budget, audience and so on. The topic of hybrid development definitely deserves an article for itself, you can expect to see it on our blog sometime soon.

Making the Decision

We’re coming back to the question: Should you initially focus on iOS or Android? In his brilliant article, Benedict Evans stated:

“The smartphone platform wars are pretty much over, and Apple and Google won.”

Our experience indicates covering both platforms does the trick. This also appears to be true in practice. Most mobile projects we did in the past couple of years entailed both iOS and Android development, and in around 80% of cases, both apps were launched at the same time.

The ultimate answer still depends on what you’re trying to do. If you want to sell the app, you might start with iOS — you’ll reach people who are willing to pay. But you’d better have a good app.

If you want to give away the app in order to promote your business and your audience is international, then Android may be the place to start. There’s a much larger number of devices for you to reach. If your app is specifically aimed at your customers, it doesn’t really matter that there’s lots of competition.

Keep in mind that the best answer is to have your app work on both platforms, so you can reach everybody. Plan for that from the beginning to avoid unnecessary duplication of effort.