All Apple products
(like iPhone, iPod touch, and iPad) use iOS as the operating system. iOS supports the development of two types of applications, that are native applications and web applications . iOS manages the device hardware, ships with various system applications, and provides the technologies required to implement native applications. “The iOS SDK contains the tools and interfaces needed to develop, install, run, and test native applications. Native applications are built using the iOS system frameworks and Objective-C language and run directly on iOS. Unlike web applications, native applications are installed physically on a device and are therefore always available to the user, even when the device is in Airplane mode.”. Some other key components of the SDK are Xcode tools (includes Xcode and instruments), iOS simulator, and iOS developer library.
Figureshows that iOS acts as an intermediary between the underlying hardware and the applications that appear on the screen. The implementation of iOS technologies can be viewed as a set of layers as shown by figure 17 below.
The lower layer is the fundamental services and technologies where all applications rely on. While higher-level layers contain more sophisticated services and technologies.
The highest layer is the Cocoa Touch layer. “The Cocoa Touch layer contains the key frameworks for building iOS applications. This layer defines the basic application infrastructure and support for key technologies such as multitasking, touch-based input, push notifications, and many high-level system services. When designing your applications, you should investigate the technologies in this layer first to see if they meet your needs.”. Some key technologies available for this layer are storyboards, document support, multitasking, printing, data protection, apple push notification service, local notifications, gesture recognizers, file-sharing support, peer-to-peer services, standard system view controllers, and external display support. The frameworks provided by this layer are
1) Address book UI framework
2) Event kit UI framework
3) Game kit framework
4) iAd framework
5) Map kit framework
6) Message UI framework
7) Twitter framework
8) UIKit framework.
After Cocoa Touch layer, the next layer below it is the Media layer. “The Media layer contains the graphics, audio, and video technologies geared toward creating the best multimedia experience available on a mobile device. The technologies in this layer were designed to make it easy for you to build applications that look and sound great.” . Several technologies that can be used to manage application’s graphical are core graphics (also known as Quartz), core animation (part of Quartz), core image, openGL ES and GLKit, core text, image I/O, the assets library frameworks. The audio technologies that supported by iOS are AAC, Apple Lossless (ALAC), A- law, IMA/ADPCM (IMA4), linear PCM, µ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10, and AES3-2003. IOS supports movies file with the .mov, .mp4, .m4v, and .3gp filename extensions. The frameworks provided by this layer are 1) Assets library framework 2) AV foundation framework 3) Core audio framework 4) Core graphics framework 5) Core image framework 6) Core MIDI framework 7) Core text framework 8) Core video framework 9) Image I/O framework 10) GLKit framework 11) Media player framework 12) OpenAL framework 13) OpenGL ES framework 14) Quartz core framework.
Layer beneath the Media layer is the Core Services layer. “The Core Services layer contains the fundamental system services that all applications use. Even if you do not use these services directly, many parts of the system are built on top of them.”. Some key technologies available at this layer are iCloud storage (there are two types of features: iCloud document storage and iCloud ket-value data storage), Automatic Reference Counting (ARC), block objects, Grand Central Dispatch (GCD), in-app purchase, SQLite, and XML support. The frameworks provided by this layer are 1) Accounts framework 2) Address book framework 3) CFNetwork framework 4) Core data framework 5) Core foundation framework 6) Core location framework 7) Core media framework 8) Core telephony framework 9) Event kit framework 10) Foundation framework 11) Mobile core services framework 12) Newsstand kit framework 13) Quick look framework 14) Store kit framework 15) System configuration framework.
And the lowest layer is the Core OS layer. “The Core OS layer contains the low- level features that most other technologies are built upon. Even if you do not use these technologies directly in your applications, they are most likely being used by other frameworks. And in situations where you need to explicitly deal with security or communicating with an external hardware accessory, you do so using the frameworks in this layer.”. The frameworks provided by this layer are 1) Accelerate framework 2) Core Bluetooth framework 3) External accessory framework 4) Generic Security Services (GSS) framework 5) Security framework