Introduction to iOS Development: Understanding Your Platform
By Jack McGrath on February 19, 2011. Original article can be found here
How do you develop apps for iOS? It’s a common question, and and Jack McGrath hopes to answer it with a series of posts.
Learning how to develop software can be one of the most intimidating prospects for any computer enthusiast, and with the growing saturation of applications in mobile marketplaces, it is becoming increasingly difficult to get your work noticed. That’s what this series is for, helping you learn iOS development from a conceptual perspective. No prior knowledge of computer programming will be necessary. Over the coming weeks, we’ll examine the iPhone’s ability to deliver immersive, intuitive content, a unique opportunity for both developers and consumers.
Today we’ll be examining the iPhone and iPad, comparing them to similar devices made by competing manufacturers as well as outlining the good and bad aspects of each device.
What is iOS?
iOS is Apple’s proprietary operating system that runs on the iPhone, iPod Touch, and iPad. Built for multi-touch interaction, all user input in iOS is through touch gesturing, a technology that Apple has pioneered. Through the use of actions such as swiping, pulling, pinching, and tapping, users are put in a fluid, intuitive landscape. Many of Apple’s devices house gyroscopes and accelerometers, which allows users to change the orientation of applications as well as directly control by simply tilting the devices.
Mac OS X acts as the parent software for iOS, as it shares the Darwin operating system foundation, making it characteristically a UNIX operating system. There are four abstraction layers, ways of hiding the implementation details of a particular set of functionality, within iOS: the Core OS layer, Core Services layer, the Media layer, and the Cocoa Touch layer.
The overall trend of the operating system has given greater control to developers. There was no SDK (software development kit) for building native apps until iPhone OS 2.0, and at that point it was rather limited. iPhone OS 3.0 saw tremendous improvements, giving developers new abilities such as Core Location and Push Notifications. Finally, iOS 4.0 saw the introduction of multitasking, though in practice it asks more like app switching.
The App Store, one of Apple’s native applications found within iOS, is one of the largest mobile marketplaces in the world. As of January 2011, there are 400,000 apps in the App Store, and users have downloaded over 10 billion of these programs. While these numbers sound great, it makes it exponentially more difficult for your app to be noticed. However, if it does get noticed, the chances of it paying off are greater. Developers receive a 70 percent cut of whatever they choose to charge customers for their apps, with the other 30 percent going to Apple.
Xcode is the development environment we will be working with primarily, which is a free download from Apple’s developer portal. You have to sign up for an iTunes account in order to complete the process. If at any time you would like to test any of your applications on a device, or release them to the public, you will have to pay an annual membership fee of $99.
It is important to note that the installed base of iPhone users spans across four generations. It is nearly impossible to unleash the full potential of the iPhone 4 and include original iPhone owners, and that’s a consequence that developers have to live with.
What exactly makes each device a unique entry in the iPhone line?
iPhone – Boasting a 3.5-inch, 360 x 480 capacitance touchscreen and whole lot of potential, the original iPhone was announced and released in 2007. The phone was initially exclusive to AT&T, as Apple struck a deal with Cingular (who was then bought out by AT&T) that provided them with sufficient funds to develop the hardware in-house. With a fixed-focus 2.0 megapixel camera and a 412 MHz ARM processor, it was actually an impressive device at the time that quickly aged with the dawn of developers.
iPhone 3G – The iPhone 3G came next, announced in June of 2008 and released a month later. The main reason that the device was able to distinguish itself from its predecessor was the inclusion of a 3G antenna. There was also a rapid global deployment of the smartphone, allowing it to reach market in a greater number of countries. However, these were the only ways in which it was different. There was no significant change in battery life, camera, or screen. Instead, Apple shifted its focus onto developers, hoping that they would be able to utilize the full potential of the iPhone.
iPhone 3GS – Just when it seemed as if Apple’s hardware was becoming static, the iPhone 3GS was announced. Containing a faster processor as well as new features such as video recording, this device was a definite improvement from its predecessor, allowing developers to augment reality, send push notifications, and use location technology to produce innovative content.
iPhone 4 – Antenna-gate aside, the iPhone 4 was also a positive improvement in the development of the series. With an even faster processor than the 3GS, a front-facing camera, a gyroscope, and its innovative “Retina Display,” the iPhone 4 was certainly the most distinguishable upgrade, yielding very positive sales for Apple as well as increased developer support.
The iPod Touch is simply an iPhone without the monthly obligation to pay for phone functionality. Many of the issues that would come out of this can be reconciled with alternative ways of presenting users with information. For example, location cannot be determined by GPS for the iPod Touch, so location can be pinpointed through MAC addresses acquired from Wi-Fi networks.
The Apple iPad truly opened up the tablet market. Featuring a 9.7-inch capacitive touchscreen and a lone button, it has become a haven for developers to attempt new things that have never been done before. User interfaces are unique and fresh, making for richer experiences. It shares a large amount of its hardware with the iPhone, only housing a 1 GHz processor and the same amount of RAM. Therefore, it would be fair to say that by developing for the iPhone 4, one can develop for the iPad, though it is usually a good idea to take the larger screen real estate into account.
Rumors about the iPad 2 have reached an apex recently, and it seems as if there are a few features that are almost certain. The device will see an updated screen that will double the resolution alongside a front-facing camera that will allow for video chatting through FaceTime, Apple’s own video conferencing application. Though this is simply conjecture at this point, I believe that the iPad 2 will see greater support from developers as a larger number of users adopt the device, noting its stability.
While it is great that iOS devices are everywhere, it should be noted that they have fractured an audience, and as a developer it is extremely difficult to offer graphically impressive software on all devices with different hardware. The increased saturation in the app marketplace makes it that much more important that you develop clean, intuitive, and above-all useful applications appealing to a wide-range of people.
Diatom Enterprises developed several application which could be downloaded on AppStore: