Before you begin building iOS applications, it's crucial that you first understand the ecosystem. This article will examine the fundamentals of the iOS operating system, the various iOS devices available, and Apple's App Store.
Prior to the arrival of Android and Windows Phone, Apple was the dominant player in the mobile space, rivaled only by Nokia and BlackBerry. With the emergence of new mobile platforms, it has become more and more important to ask yourself which platform is best suited for you. In spite of Apple's head start in 2007, Android has surpassed iOS in market share. What does that mean for iOS? Is it still a platform worth developing for? It sure is. There are many great reasons to get started with iOS development.
- Strong Financial Incentives: People spend more money on Apple's App Store than on any other mobile platform. Despite the fact that Android has become the dominant player in the mobile space, the iOS platform remains more lucrative for developers.
- Walled Garden: Even though Apple's App Store has received a lot of criticism from developers and customers, especially Apple's review process, it is clear that this policy has led to an App Store in which the quality of the average application is higher than in any other mobile store. Customers also tend to feel much safer when purchasing applications from the App Store than they do on other more open platforms, such as Google Play.
- Community and Support: The iOS developer community is a great community to be part of. There is an almost unlimited supply of articles, tutorials, and documentation to help you out when you find yourself stuck with a problem. In addition, Apple's documentation of the iOS SDK is superb, not to mention the hundreds of WWDC (World Wide Developer Conference) videos available to every registered iOS developer.
People often forget or don't know that Android and iOS are very different platforms. Even though both platforms were designed for the mobile space, the iOS ecosystem differs in many respects from Google's Android ecosystem. From a development perspective, most people seem to find it easier to develop for the iOS platform than for the Android platform. Don't misunderstand me, I am not referring to the technology stack that each platform uses nor am I referring to the available tools for each platform. Two reasons are at the foundation of the chasm between iOS and Android, fragmentation and adoption rate.
One of Android's core strengths is at the same time one of its principal weaknesses. As most of you know, the Android operating system is released as an open source project and can therefore be used and modified. Numerous hardware manufacturers saw the potential of Android, especially as it was backed by Google. Android quickly gained in popularity as a result. The problem is that each hardware manufacturer has modified Android to fit their needs and a wide variety of form factors have emerged since Android's introduction.
Even though Android's market share may seem like a big pot of honey, it's a pain to create software that runs on each Android version currently available. Due to the thousands of different devices that run Android, testing software on hardware is no trivial task either. As you can imagine, support and compatibility become a real challenge.
Traditionally, in many countries, the wireless market is under tight control by cellular carriers. From the very beginning, Apple knew it needed to be in control of its mobile devices to provide the best user experience possible. The result is that customers can upgrade their iOS devices to the latest version of iOS the same day it is released to the public. This is a major advantage of the iOS platform and he result is substantial. Less than three months after the release of iOS 7, over 74% of iOS devices had been upgraded to iOS 7.
Let's compare this with Android. In December 2013, less than 55% of Android users had upgraded their devices to Jelly Bean (released in July 2012) and 1.1% had upgraded to KitKat (released in October 2013).
The reason for bringing up these numbers is not to downplay the Android platform or any other mobile platform. What I want to emphasize is the impact the adoption rate has on the application ecosystem of these platforms. The slower users adopt a new release of an operating system, the longer developers are forced to support older versions of the operating system and it becomes less appealing to adopt new technologies, which can only be used on a fraction of the Android devices.
Even though Android is catching up, iOS is still by far the best platform in terms of monetization. During Apple's most recent event, Tim Cook announced that customers had downloaded more than 60 billion applications and that Apple had paid more than $13 billion to iOS developers. In September 2013, during Apple's annual iPhone event, Tim Cook announced that the company had sold more than 700 million iOS devices. If you are thinking about developing for a mobile platform, then iOS is an excellent choice and the financial incentive for doing so is unlikely to change anytime soon.
- Web Applications: A web application is your first option and this was in fact the only option prior to the introduction of the native iOS SDK in 2008. The upside of web applications is that they don't have to deal with the App Store or Apple's review process. Why is that? A web application is a fancy name for a website that acts and behaves like an application. All you need is a browser, such as Mobile Safari or Google Chrome.
Web applications have clear advantages. They are cross-platform by default since the application runs in a browser. Another advantage is the learning curve to create web applications. If you are familiar with web development, then you will be up and running in no time.
Even though mobile development frameworks might seem like the holy grail for mobile development, there are a number of downsides that need to be considered. The most important downside is that your application depends on a third party framework. In other words, your entire code base becomes dependent on the company that provides the cross-platform solution. If that company goes broke or is slow to implement changes made to the native SDK, you could be forced to start over from scratch. That's a risk that shouldn't be ignored.
- iOS SDK: Choosing to develop with the native SDK is the best choice if you want to create applications that stand out and take full advantage of the device's capabilities. Opting for a native application also means that you will work in a robust development environment and that you can rely on Apple's development tools, utilities, and support.
One of the most appealing aspects of the iOS ecosystem is its simplicity. The list of devices capable of running iOS is surprisingly short when compared with Android or Windows Phone. This means that testing iOS applications is much less cumbersome compared with other platforms.
As stated earlier, Android has surpassed iOS in terms of market share, but this is only part of the story. The iOS platform accounts for more than 50% of web usage on mobile devices. What does this tell us about the mobile space? It tells us that iOS remains the most used operating system in the mobile space, at least online, and this despite Android's higher market share.
There are essentially two device families within the iOS ecosystem: the iPhone device family, which also includes the iPod Touch, and the iPad device family. For a complete overview, I recommend that you take a look at this list.
The primary differences in the iPhone device family are hardware capabilities and screen size. The iPhone 5, 5S, 5C, and the 5th generation iPod Touch all have a larger 4" screen, whereas the previous models come with the more familiar 3.5" screen. The difference in screen size does impact development, but it doesn't add much overhead for most applications. I will talk more about this in the course of the series.
In 2012, the iPad family was expanded with the introduction of the iPad Mini. Even though the introduction of the iPad Mini caused a ripple in the technology industry, it has little impact for iOS developers. The screen of the iPad Mini is significantly smaller than that of the 10" iPad and iPad Air, but the resolution is identical to the resolution of the 10" iPads. Due to the iPad Mini's smaller screen, the average size of the touch targets is smaller and this might pose a problem for some existing applications.
Apple traditionally releases a new version of its mobile operating system every year. To date, Apple has released seven major versions of its mobile operating system with the most recent release being iOS 7. Device support is an aspect of iOS that people often overlook. Take the iPhone 4, for example. The iPhone 4 was released in 2010 and is still capable of running iOS 7. There is no mobile platform that comes even close to this in terms of device support.
One of the key reasons to develop for the iOS platform is the incredible success of the App Store. Selling software has never been easier thanks to both the App Store and the Mac App Store. Apple recently announced that the App Store has surpassed the milestone of 1 million applications. It is getting a bit crowded in the App Store, but keep in mind that the number of iOS devices also continues to grow exponentially.
The mobile space is still in its infancy and there is still so much potential that is waiting to be uncovered. Just like it was with the web in the late nineties, the mobile space will continue to grow at a fast pace and the amount of money that can be made increases with every new smartphone or tablet sold.
You now have a clear picture of the iOS ecosystem and I hope that I was able to convince you to get started with iOS development. In the next post, I will show you how to get started with the native SDK by setting up the development environment. You will be surprised how easy this is.