As technology continues to evolve, the emphasis on mobile devices is showing no signs of slowing down. Because of this, there is a constant demand for people who know how to develop apps, and this goes for every industry. From banking to video games, to independent hobby development, knowing how to develop apps is an invaluable skill.
This situation can be a bit of a double-edged sword. Sure, there are so many possible applications for app development, but that can also be an issue in and of itself. There is such a wide choice for how and when to apply these skill sets. Where do I start with programming? How long does it take to become an app developer? Which programming language should I start with?
Today, I will give some general tips for these questions, as well as several more. Learning to become an app developer can seem daunting at first, so let’s break things down into more manageable sections.
First, let’s go over the two major operating systems that users rely on: Android and iOS. If you’re just starting out, which mobile OS is the best one for a beginner programmer?
In the next couple of sections, I will list some pros and cons, which can help narrow the decision-making process a bit.
To understand the context of mobile computing with these two operating systems, it’s also important to go over their history.
Android: History, Pros, and Cons
When do you think Android was first started? It would be perfectly reasonable to assume around 2007 or 2008, which was when iPhone began. Contrary to what some may believe, Android was not released as a response to the iPhone at all—its origins are much farther back before there were even rumors of the iPhone existing. At the time, Windows Mobile was the competitor of note.
Here’s a fun fact: Android’s origins were all the way back in 2003 as Android Inc. That’s only a couple of years after the first iPod.
Google and the Open Handset Alliance quietly worked on the Android operating system in 2007, coincidentally the same year as the first iPhone. While the iPhone was not what inspired Android in the first place, it did push Android Inc to announce its operating system to the public.
The first Android-powered smartphone was then released in the fall of 2008: The HTC Dream. This cute little handset had a familiar trackball—much like ones seen on Blackberry devices at the time—and a physical keyboard, which set it apart from the iPhone’s virtual keyboard-centered design. The physical keyboard was tucked away behind a sliding screen when not in use, which allowed the phone to remain compact. Nowadays, smartphones generally avoid excess physical buttons, which means hardware keyboards were among the first things to go away.
Android has come a very long way since its first iterations. Because of its open-source nature, this allows for near-infinite configurations and customizations. This can manifest in the form of interface themes, automation, and even installing apps from outside of the Google Play Store. This openness extends to how apps are made for Android as well.
[How Android Apps are Made]
As mentioned previously, Android is an incredibly versatile operating system because of its open-source structure. For tinkerers, this is a blessing—tweaking things is not only allowed but it is also encouraged. This pairs well with first-time programmers, rather than being intimidating. There is a playful nature to this setup; experiment with settings, build hobby apps, and gradually build your skill with readily-available tools and resources.
Android apps can be made via multiple different programming languages. However, the most popular programming language for building Android apps is Java, which means it also has the most learning resources readily available.
[Android App Development Cost and Hardware]
The internet can be a bit of a blessing and a curse. There is a plethora of freely-available information—but what programming advice should I follow? What is the most up-to-date study guide on these programming languages? There is also a matter of cost to consider: how much does it cost to start programming Android apps?
You will be happy to know that developing an app for Android is actually extremely affordable, with a one-time fee of $25 to access developer tools and even publish your app. This lower barrier of entry is a very solid option for first-time developers, as the stakes are much less stressful. If you decide app development is not for you, the initial investment doesn’t sting nearly as much as iOS app development.
[Android App Development Study Resources and Benefits]
Android app development also lets you create applications from a much wider variety of hardware than iOS app development. While it is always recommended to have a powerful machine for your development setup, you can get started with most modern computers. It may not be the most efficient computer setup, but most modern machines will get the job done. This is regardless of the operating system—Android apps can be developed via macOS, Windows, and Linux.
As for learning tools, there is a large catalog of resources one can rely on. To cut through the huge selection and make it feel less overwhelming, we have a recommendation for your first place to start, and it’s totally free and self-paced. FreeCodeCamp has a beginner course for Android app development—and there’s no pressure, either: there are no quizzes, no deadlines, and no cost at all for the complete course.
In FreeCodeCamp’s course for Android app development, they strongly emphasize the focus on beginner-friendly knowledge. While you are following along with this course, this is the perfect time to grab a copy of Android Studio—Google’s very own software for building Android apps from the ground up.
[Downsides to Android Development]
While there are so many pros to developing Android apps, there are some tradeoffs as well. These might not affect you if you’re doing this development strictly out of passion and not an income, however.
The most readily apparent downside of Android app development is the sheer variety of programming languages you can use. This is a strength and a weakness—it allows for Android apps to do truly incredible things, but it can absolutely scare off beginners.
Next is the revenue aspect of things. It’s understandable to want to turn your app development efforts into an income. Unfortunately, while Android apps have been catching up in revenue with iOS apps, the income for Android apps remains significantly lower than their iOS counterparts. This is at least in part due to Android’s openness. Because users can download apps from outside of the Google Play Store by doing something called “side loading”, some apps users would normally have to pay for can be found online for free.
While this openness helps for getting your app out into the world, it means that users can avoid paying you for your labor in developing the app. This is a bit of a non-issue if you want to develop apps solely for the love of it, however. Plus, you can always put donation requests or ad banners in the app, which can give users the app for free and still give them an opportunity to help out if they can.
iOS: History, Pros, and Cons
When it comes to app development, there are many differences between iOS and Android. With Android’s more open nature, iOS is the complete opposite. iOS is a very closed-off operating system that started in 2007 with the first iPhone, originally touted as a mobile version of macOS. The first version of the iPhone’s operating system didn’t even have apps—that was a feature first available on iOS 2, called iPhone OS 2 at the time. In this aspect, Android was way ahead of the game.
With this closed-off nature, iOS app development is both helped and hindered. Let’s go over how it differs from Android app development.
[iOS App Development Study Resources and Benefits]
When developing an iOS app, the place to start is much clearer. The main programming language you will need to learn is Apple’s own programming language: Swift. Apple even makes its own study guide for learning how to program in Swift, though there are many resources available for it. One very helpful resource is Code With Chris’s Swift Tutorial which assumes no prior experience with Swift.
If you like to learn in more fun, hands-on ways, Apple has developed a game called Swift Playgrounds. You can download it for free to any recent iPad or Mac. This super-focused nature of development makes it seem way less daunting, and thus makes it a great place for beginners to tinker around with.
Unfortunately, you can probably see the downside to iOS development a mile away: the cost.
[Downsides to iOS Development]
Let’s start with the good news: iOS apps typically make much more money than Android apps. The tradeoff? It’s very expensive to get started with developing for iOS, to begin with.
First, you need a Mac with the most up-to-date version of Xcode, a free Mac app for making iOS apps. There is no way to develop iOS apps on anything but a Mac, so Windows machines won’t cut it. Unfortunately, there is no way around this.
Next, to publish apps, you need to pay for a developer license. Android’s is a $25 one-time fee. An Apple Developer License is $99 per year.
Apple also has some very strict guidelines for App Store submissions. This strictness can help increase the quality of apps for users, but it can be a great source of frustration for app developers. Sometimes the app rejections can be for seemingly no reason or for very minor things falling within gray areas.
Another issue is this: if your Mac is too old to run the latest version of Xcode, it is no longer a viable machine for developing iOS apps. This means a perfectly functional machine may fall outside of arbitrary cutoffs for app publishing, leading to developer frustration and added expense.
One way to help reduce the overall cost of hardware is to check the Apple Refurbished Store, specifically to look for refurbished Mac Mini machines. If you prefer new devices, the M1 Mac mini is the absolute cheapest option for beginning iOS development. You will still need to supply a keyboard, a mouse, and a display with an HDMI cable, but this is the lowest-cost way to start development.
In the end, Android and iOS app development have their benefits and tradeoffs. Android is more customizable with typically lower revenues, while iOS has more opportunity for revenue while being much more expensive to start out with—and the environment is much more closed-off.
Which app development environment will you prefer to develop for?