I first learned Android development in high school and then again on an internship in San Francisco.
When I became a full-time software engineer, I switched over to iOS development. Since I have experience learning both, I’ll explore which one you should learn first in this article.
Should you learn iOS development or Android development first? For most beginners, you should learn iOS development first. It’s easier to pick up, has less devices to test on and has a great IDE (Xcode). However, the choice will depends on your unique situation.
Different factors will change your choice. These factors include learning time, equipment you own, development tools, target market, and previous experience.
This should be the major deciding factor in deciding whether or not to learn Android or iOS. The device you own will become your test device unless you’re willing to pay for another mobile device. It will also be motivating for you to see your own apps on your phone on a regular basis instead of just on the simulator. The simulator can is almost as good as the device for testing, but there are some bugs that will only be caught on a physical device.
If you have an Android phone I’d recommend starting with Android development. Android phones can be purchased for $100-$1100 USD depending what you are looking for.
If you have an iOS phone I’d recommend starting with iOS development. iPhones can be purchased for $600 USD and up.
The computer you currently own is also quite important when deciding which platform to develop for. Whether you own a Windows or a Mac machine will determine if you can develop on iOS.
Xcode, the integrated development for iOS, only runs on Mac machines. It’s possible to rent a mac or run Xcode in a virtualized environment on Windows, but this requires additional effort and may not be worth the time invested.
If you own a MacOS machine, you are able to develop on Android and iOS easily, as both Android Studio and Xcode will run on Mac machines.
In general, software engineering and development is typically easier on MacOS laptops. Although this is changing as Microsoft creates better and better development tools for Windows. I personally prefer a MacBook Pro if I have to do any software engineering or coding.
Learning time is the biggest factor for most people when picking either iOS or Android development. Although neither will be easy or quick, there are differences in learning time between the two platforms.
If you’re familiar with Java, Android will be quick to pick up for you. This is because Android apps can be written fully in Java. You can also write Android apps in Kotlin. Not having to learn the language will provide a huge boost in your learning curve.
Swift is the language iOS is written in. It’s an amazing language and one of my favorites. For beginners with little programming experience, it’s a great language to start out in. Swift is also released by Apple. With learning tools such as the Swift Playground and the Swift app on the iPad, I believe Swift is one of the easiest languages (next to Python) for beginner developers to pickup.
The closed ecosystem (iOS platform, the integrated development environment, and the language) can make it easier for newbies to pick up. Since it’s all developed by the same company Apple, everything flows together nicely and there’s plenty of documentation on most topics.
iOS also has fewer devices that it runs on. There are a limited number of iPhones and iPads. Android has hundreds of different phones, screen sizes, and screen densities. The limited number of devices makes it simpler to develop for.
In the iOS world, you’ll have to also learn the interface builder. The interface builder is a design tool used to build user interfaces. It can be similar to apps such as PhotoShop or other drawing apps. If you’re not comfortable learning those types of tools, this could add more time to your learning.
The development tool you’ll use for iOS is Xcode and the tool you’ll use for Android is called Android Studio.
Xcode is a great integrated development environment (IDE), complete with everything you need for iOS development. It’s a mature software that has large community support.
The interface builder in Xcode makes it easy to develop beautiful user interfaces and works quite well to scale to different iOS devices.
The Swift playground built into Xcode makes it easier for beginners learning Swift or development in general. The fundamentals of Swift and programming are often taught in playground tutorials. Playgrounds offer a way to test new ideas.
Xcode includes great features such as:
Android Studio is a great IDE based off of the IntelliJ software. If you’ve used IntelliJ before or any of their similar products (WebStorm, PyCharm, etc), you’ll find Android Studio really easy to pick up.
Android Studio includes amazing features such as:
Ultimately, which IDE you find easier to use comes down to personal preferences and familiarity.
Although Android and iOS are both mobile phone platforms, their target markets are very different.
Android definitely has more devices on the global level. Over 80% of mobile phone devices world-wide are Android devices. You may think, this is a no brainer then, I should develop Android!
Hold up – although Android dominates the global market share, iOS has strongholds in several countries. The countries that still have more iOS devices than Android include:
For example, the United States is 65%+ iOS devices.
This will influence your decision depending if your app will be a global product or a more localized one.
If your making an app that is only targeting American or British customers, it would make sense to develop for iOS. However, if you’re aiming for adoption outside of these iOS dominant countries, perhaps it would be better to go with Android. Emerging markets are favoring Android devices over iOS devices.
The demographics and user behavior on these platforms are also very different. According to a study by Business Insider, iOS developers are likely to spend twice as much money on in-app and app purchases than Android users.
When you think about this stat, it makes sense as iPhones are much more expensive than most Android devices. iPhone users are already spending more money on their mobile device, by their device choice.
These statistics should influence whether you should develop for iOS or Android platform.
Apple completely dominates the tablet market. There are very few people using Android Tablets. iPads are a household name and used widely throughout the world.
Although Android Tablets are getting better and better every day, the market share is heavily in Apple’s favor. iPads age better, have a larger app selection and are used heavily in business applications.
Worldwide, iOS dominates with over 70% of the tablet market share. In the United States, it’s close to over 80%.
Both Android and iOS release new versions of their operating system around the same time. About once a year a new Android OS and iOS version will come out.
However, Android is open source. This means many different variants of it are in the market place. Many carriers or device manufacturers will have their own version of Android OS. It often takes months for Android devices to be running the latest Android version.
Only about 20% of Android devices are running the latest version of Android according to Google themselves. The OS android devices are fragmented across the last 3 or 4 os versions! This can be problematic when trying to debug a problem that is OS specific.
However, in the iOS world, after a couple of weeks, over 80% of the iOS devices will be running the latest version of iOS. This allows you to build apps that utilize the latest features of the OS, without leaving your users behind.
The closed system of iOS and the open-source system of Android both have their pros and cons. It’s no doubt that the open source nature of Android has led to it’s global adoption.
Some apps are made just for fun, but many have a business goal behind them. The revenue model behind iOS and Android apps are very different.
Android apps have traditionally done better with in-app advertising as opposed to iOS apps. If you are planning to create a free application with ads as your revenue stream, Android is a good option.
iOS apps do better as paid apps or with in-app purchases. iOS app users typically have a much larger lifetime value to the business. Over time they are seen to continue to purchase and spend money inside applications.
Depending on your revenue or business model, you should select the right OS for your project.
If you already know Java, Android will be very simple to pick up. Android apps can be coded completely in Java code.
Newer Android apps are starting to use Kotlin, which can run in the Java Runtime. However, Java is still very much supported and you will find plenty of Android tutorials written in Java.
iOS is written in Objective-C or Swift code. Objective-C is slowly going out of fashion and thus learning Swift is required.
If you have experience writing C code, Objective-C is just a thin later on top of C. It will be quite simple for you to learn.
If you want to release your app to the public you’ll have to sign up for Androids or Apple’s developer program.
The cost of Apple’s developer program is currently $99 for personal use.
The cost of Android’s developer program is currently $25 for personal use.
The difference between the programs is about $74, which could be a factor in deciding which is right for you.
There’s no longer a need to choose between developing for Android or iOS. There are two strong cross-platform solutions that allow you to learn once and build for both platforms.
Flutter is a solution released by Google. It allows you to build Android and iOS apps from a single code base. It’s written in the language Dart and has also been on the rise. It offers native performance and fast development features.