Since its release in 2007, the iPhone has revolutionized the smartphone market. It was followed by the iPad in 2010, a device that transformed the computing industry. Both devices run iOS, Apple’s mobile operating system, with the iPad running a customized version called iPadOS.
An iOS developer’s job revolves around creating software and services that run specifically on these two devices.
What Is iOS?
While iOS, and its iPadOS derivative, may be relatively new in the world of operating systems (OS), its roots go back decades to the UNIX OS. iOS is based on macOS, which in turn is based on NeXTSTEP, the operating system created by Steve Jobs’ second company.
NeXTSTEP was built around a Mach kernel with BSD elements as well, traits that macOS inherits. As a result, macOS is a POSIX-compliant OS. POSIX compliance ensures the various flavors of UNIX maintain compatibility with each other, with macOS (then called OS X) 10.5 Snow Leopard being the first BSD-based OS to be UNIX 03 certified.
Essentially, Apple created one of the first consumer versions of a UNIX OS that achieved widespread adoption. Prior to this, UNIX had largely been used for mainframes, servers, and workstations, thanks to its almost legendary stability. However, UNIX was relatively difficult to use, especially when compared to graphically-based systems like the original Mac OS and Windows OS.
While Apple succeeded in making UNIX user-friendly, macOS maintained many of the benefits of UNIX, including its legendary stability and the ability to run UNIX software. When Apple created iOS, releasing it with the iPhone in 2007, it used macOS as the basis. As a result, at its core, iOS has its roots in UNIX just as its parent, macOS, does.
The Tools of the Trade: What It Takes to Develop For iOS
Despite its open-source roots, developers can’t simply fire up any computer and release iOS software. Apple’s Xcode development environment is the best way to develop an iOS app.
That doesn’t mean there aren’t other options. Xojo, for example, is a development environment that allows a developer to use a BASIC-style language to develop software for macOS, Windows, Linux and iOS. Similarly, other languages and development environments can be used to create iOS apps, but only Xcode can be used to deploy applications.
Xcode also unlocks the full power of the iOS SDK, something that no third-party environment can do. As a result, in order to develop and release iOS apps, at some point a developer will need access to a Mac computer, as Xcode is macOS-only.
Types of iOS Developers
Like any other platform, there are different types of iOS developers.
The smartphone wasn’t the only thing Apple revolutionized with the release of the iPhone. When the company’s first phone hit the market in 2007, the only available third-party apps were glorified web apps.
A year later, however, Apple unveiled the App Store, a central place for iOS users to download and purchase native apps. The entire software model was turned on its head, as high-quality apps were available for just a few dollars, a fraction of the cost of most desktop apps. The result was a gold rush of app developers cashing in by releasing apps that filled specific needs on the burgeoning platform. To this day, many independent developers continue to really on iOS development as their bread and butter.
Beyond independent software developers, there are also developers for more established companies looking to expand to iOS. In some cases, these are companies looking to release commercial products and profit from the mobile OS while, in other cases, it’s companies looking to release free apps that compliment their existing services. Banks, for example, are now expected to offer an iOS app for their customers to manage their accounts. These established companies need a steady influx of iOS developers to build and maintain their mobile software.
Why Develop For iOS?
While iOS revolutionized the smartphone landscape, in short order it was followed by Google’s Android, which quickly went on to surpass Apple’s OS in market share. In fact, in the last couple of years, Apple has held roughly 22% of the worldwide market, with Android making up virtually all of the remainder. For a developer looking to get into mobile development, why choose iOS? Why not develop for the larger Android user base?
Market share isn’t everything. In fact, despite its smaller market share, iOS developer earnings dwarf those on Android. According to the latest figures, iOS developers have earned some $155 billion from the App Store since 2008. In contrast, Android developers have earned roughly half of that, coming it at $80 billion. While still a respectable figure, it’s important to remember that figure represents over three quarters of the smartphone user base.
Another factor that plays into the decision is the ability to get noticed. While the App Store has some 1.8 million apps, the Android store has far more, coming in at 2.5 million. As a result, there are somewhat better odds of getting an app noticed on the App Store than the Google Play Store.
Fragmentation is another issue that many Android developers face. Because Android is readily available to any company that wants to create a smartphone, there are a virtually infinite variety of devices that run Google’s mobile OS. Different processors, screen sizes and memory capacities all must be accounted for. In addition, many smartphone vendors lag far behind Google’s official Android releases, meaning there is a high degree of OS fragmentation. All of this makes it difficult to ensure an app runs equally well on the majority of devices.
In contrast, because Apple tightly controls the entire ecosystem, and is the sole iPhone manufacturer, it is generally much easier to develop an app that will run well and look good on all supported hardware.
The iPhone, iPad, iOS and iPadOS represent a family of products that have revolutionized industries and forever changed the software development landscape.
Developing for iOS, whether as an independent developer or for an established company, is an exciting career choice that offers virtually limitless opportunities. Check out Apple’s developer site to learn more.