Should I learn to make apps on iOS or Android?
So you’re finally taking the jump into mobile development? Soon, you’ll be faced with deciding for which platform you will develop your apps. For the most part, apps written for iOS will run on iPhones, iPads, and iPods. Whereas apps written for Android will run on most any Android phone. Now there are ways to write an app for both at the same time, such as React Native or Flutter, but those are entirely different rabbit trails for another time. I’ll focus here on ‘Native Development’, which is writing for each platform individually.
I can speak personally here because I’ve made and published apps for both platforms! I made my first mobile app for Android (see https://play.google.com/store/apps/details?id=feature.a.its.bug.a.not.its.whataretheodds), and followed up with a second one a few months later https://play.google.com/store/apps/details?id=morhous.jeffery.mockmywords. More recently, I’ve been doing freelance iOS development, which has involved making apps for a few different clients.
Let’s take a look at a few different aspects of making apps for each platform.
Cost of entry:
This category is going to have some of the most obvious differences.
Android development is done in an IDE (integrated development environment, think Microsoft Word but for making apps) called Android Studio. Android Studio will run on both Windows and Mac, and is really flexible when it comes to system requirements. You can download it here for free — https://developer.android.com/studio/
iOS development is done in an IDE called xCode, which is made by Apple. The caveat is that xCode will only run on macOS, so you’ll need to have access to a Mac. If you don’t already have a Mac, this is a pretty serious upfront investment! (The cheapest option here is probably the Mac Mini -https://www.apple.com/mac-mini/ ) Once you’ve got your hands on a Mac, you can download xCode for free here https://developer.apple.com/xcode/
Fortunately, with both iOS and Android, simulators make it easy/cheap to test our apps without a physical device. However, it is still beneficial to be able to use your app with your own hands, on your own phone! If you already have an Android phone, you may find it enjoyable to test the apps you’re making on your own phone, and obviously the same is true if your have an iPhone.
The next question you should be asking yourself is, who do you want to use your apps? In the United States, iPhones are radically more common than Android phones. However, globally, Android takes the cake. 🎂
Technically, Android has more users that iOS does, but if you’re in the United States, and you want the people around you to be able to use your apps, then iOS is probably the better option for you.
If one of your goals in learning to make apps is monetization 💰, then the platform you choose will undoubtedly affect your revenue. It’s been shown that iOS users are more likely to pay for an app (or make in-app purchases or subscriptions) than Android users are. Conversely, Android users have a higher tolerance for advertisements.
In the end, if you want more users and are willing to sacrafice revenue, then Android is probably your fastest route for growth. On the other hand, you’ll likely experience lower download numbers but higher in-app purchases (or outright app purchases) on iOS.
Consistency of experience is something Android will always fall short on. The wide range of hardware makes it near impossible to ensure a consistent experience on all devices. Your app could run flawlessly on the few devices you test it on, and crash constantly on another. That’s not even considering the wide range of screen sizes you’ll have to account for when designing your interfaces.
Apple has always maintained incredible backwards compatibility for their software updates. When a new version of iOS comes out, it makes its way onto iPhones released YEARS ago. My Android phone from 10 months ago isn’t even running the latest version of Android 🤦🏼♂️. Writing any software that runs on multiple versions of operating systems adds complexity to your code and design process. This is a critical skill in software engineering, but it can be intimidating when you’re just getting started!
The question of which platform has more resources and documentation is definitely not black and white. While it is anecdotal, I’ve found the iOS community to be far more helpful than Android. When you want to do something new in Android, you’ll likely have trouble finding how people have approached similar problems. If you eventually do (congrats 🎉), it’s almost guranteed that you’ll find multiple (often outdated) ways of doing it. Even though iOS development has some of the same issue, the internet is flooded with bulletproof ways of approaching beginner problems.
It’s anecdotal, but it took me roughly a month (obviously as a hobby) to put together an Android app worth publishing. It took me a week to do the same for iOS. Your mileage may vary, but that’s enough to get me PUMPED about iOS.
To publish an App on Google Play, you must pay a 1 time fee of $20. After that, Google will scoop up 35% of any revenue you get (unless it comes from Ads, in which case that number is kind of invisible). While it is less common, you can actually distribute your app however you want. Things like other app stores, or even email are very possible.
To publish an app for iOS, you can only distribute it through the App Store. Publishing on the App Store will cost you $99 a year and (yet again) 30% of all revenue. This is a more restrictive policy surrounding app distribution, but Apple uses this to ensure that apps on the app store really really want to be there.
So, which is it?
Personally, I’ve found iOS development to be more enjoyable than Android development. This is all in spite of the Android phone in my pocket and the little Android mascot on my desk. That being said, Android has lowered the barrier to entry of software development, allowing pretty much anyone with a computer to get an app in the hands of millions of people. There’s immeasurable value in the ecosystem Google has built here, development can just be frustrating at times.
So the short answer to the question is, pick what you’re the most interested in! There’s no objective truth here. It boils down to preference and how much money you’re willing to put up when you go to publish your app. If you don’t already own a Mac, I would definitely suggest doing some Android development to see if you’re still pumped about mobile development before dropping money on a shiny new Mac. If you’ve already got a Mac, then take your pick!