The world is mobile these days. If you don’t believe that, take a look at your website’s analytics: chances are pretty good that the majority of your traffic comes from smartphones and tablets. And it’s not just the Web: Customers want mobile apps that fulfill every need, from booking airline tickets to controlling drones.
That demand for mobile has made mobile application developers some of the best-paid tech pros around; for example, analyst firm Robert Half estimates the median salary for mobile application developers at $141,000 per year.
But what skills do you need to become an effective mobile developer? That hinges largely on whether you want to develop for iOS, Android, or both.
If you’re interested in iOS, you’ll need to know:
Objective-C: Until a few years ago, all iOS apps were built in Objective-C, Apple’s longtime programming language. Although the newer Swift has eclipsed it, understanding how Objective-C works is useful if you plan on working on any legacy applications or platforms built with it.
Swift: Apple’s newer programming language is up to version 4.1, with version 5 slated for this fall. Version 5 will include ABI stability and other must-have features. If you’re completely new to Swift, check out Swift Playgrounds, Apple’s iPad app for learning the language; Apple’s developer site also has a nifty how-to for building iOS apps with Swift.
If you’re building for Android, there are different languages you need to learn:
Java: Android apps have traditionally been built in the Java programming language. Google offers a nifty development guide on its official Android developers site, including a breakdown of application fundamentals.
Kotlin: Google has included Kotlin in its Android Studio IDE, and with good reason: ever since Google named Kotlin a “first-class language for Android,” it has rapidly attracted a significant following. Kotlin’s release cadence has also accelerated, with successive rounds of bug-squishing and tooling updates making it even more powerful.
Whatever platform you choose, you also need to consider whether to use cross-platform tools. For example, Unity is a tool much beloved by tech professionals who build mobile games. But non-native tools such as React Native have been subject to restrictions by Apple and Google, forcing a decline in the number of non-native apps. In other words, if you’re just getting into mobile app development, consider carefully before you use a particular cross-platform tool; in doing so, you could save yourself a lot of time and effort.