We seen  iOS Technology Overview  

iOS software architecture consists of four distinct layers. Each layer is associated with several frameworks. A framework is a package consisting of a dynamic shared library along with header files defining the application programming interfaces (API) to the library and other resources such as helper applications. Frameworks can be used in an application by simply linking them with the application project. iOS Technologies has two Level of Layers, Lower-Level Layer and Higher-Level Layer,  

These Levels are as follows:


  • Cocoa Touch Layer
  • Media Layer
  • Core Services Layer
  • Core OS Layer 

Cocoa Touch Layer: this Layer is placed on Higher-Level Layer, it contains key frameworks for building iOS apps and these frameworks define the appearance of your app, provides the basic app infrastructure and support for key technologies such as multitasking, touch-based input, push notifications, and many high-level system services. There are some Key Technologies that are available in this Layer: 

App Extensions: you might supply an app extension that helps users post content to your social sharing website. After users install and enable this extension, they can choose it when they tap the Share button in their current app. Your custom sharing extension provides the code that accepts, validates, and posts the users content. The system lists the extension in the sharing menu and instantiates it when the user chooses it. 

iOS supports app extensions for the following areas, which are known as extension points:        

Share: Share content with social websites or other entities. 

Action: Perform a simple task with the current content.


Widget: Provide a quick update or enable a brief task in the Today view of

Notification Center.


Photo editing: Perform edits to a photo or video within the Photos app.

Document provider: Provide a document storage location that can be accessed by other apps. Apps that use a document picker view controller can open files managed by the Document Provider or move files into the Document Provider. 

Custom keyboard: Provide a custom keyboard that the user can choose in place of the system keyboard for all apps on the device.

Handoff: Handoff enables users to begin an activity on one device, then switch to another device and resume the same activity on the other device. For example, a user who is browsing a long article in Safari moves to an iOS device that's signed into the same Apple ID, and the same webpage automatically opens in Safari on iOS, with the same scroll position as on the original device. Handoff makes this experience as seamless as possible.

Document Picker: The document picker view controller grants users access to files outside your application’s sandbox. It is a simple mechanism for sharing documents between apps. It also enables more complex workflows, because users can edit a single document with multiple apps. 

AirDrop: AirDrop lets users share photos, documents, URLs, and other kinds of data with nearby devices. Support for sending files to other iOS devices using AirDrop is built into the existing UIActivityViewController class. 

TextKit: TextKit is a full-featured, high-level set of classes for handling text and fine typography. Using TextKit, you can lay out styled text into paragraphs, columns, and pages; you can flow text around arbitrary regions such as graphics; and you can use it to manage multiple fonts. If you were considering using Core Text to implement text rendering, you should consider TextKit instead. 

Multitasking: Battery life is an important consideration for users of iOS devices and the multitasking model in iOS is designed to maximize battery life while giving apps the time they need to do critical work. When the user presses the Home button, the foreground app shifts to a background execution context. If the app has no more work to do, it is suspended from active execution and put into a "freeze-dried” state, where it remains in memory but does not execute any code. 

Auto Layout: Auto layout helps you build dynamic interfaces with very little code. Using Auto Layout, you define rules for how to lay out the elements in your user interface. These rules express a larger class of relationships and are more intuitive to use than the springs and struts model that was used previously. 

Storyboards: Storyboards let you design your entire user interface in one place so that you can see all of your views and view controllers and understand how they work together. You can use a single storyboard file to store all of your app’s view controllers and views, or you can use multiple view storyboards to organize portions of your interface. 

Gesture Recognizers: Gesture recognizers detect common types of gestures, such as swipes and pinches in your app’s views. Because they use the same heuristics as the system for detecting gestures, gesture recognizers offer a consistent behavior for your apps.

Media Layer: this Layer is also placed on Higher-Level Layer, it contains the graphics, audio, and video technologies you use to implement multimedia experiences in your apps. The technologies in this layer make it easy for you to build apps that look and sound great. 

Graphics Technologies: High-quality graphics are an important part of all apps and iOS provides numerous technologies to help put your custom art and graphics onscreen. The iOS graphics technologies offer a wide range of support, working seamlessly with the UIKit view architecture to make it easy to deliver content. 

Audio Technologies: The iOS audio technologies work with the underlying hardware to provide a rich audio experience for your users. This experience includes the ability to play and record high-quality audio, to handle MIDI content, and to work with a device’s built-in sounds. 

Video Technologies: The iOS video technologies provide support for managing static video content in your app or playing back streaming content from the Internet. 

AirPlay: AirPlay support is built into numerous frameworks—UIKit framework, Media Player framework, AV Foundation framework, and the Core Audio family of frameworks—so in most cases you do not need to do anything special to support it. Any content you play using these frameworks is automatically made eligible for AirPlay distribution. When the user chooses to play your content using AirPlay, it is routed automatically by the system.

Core Services Layer: The Core Services Layer provides access to the key systems services that are required by applications. One of the main frameworks in this layer is the Core Foundation framework, which provides capabilities such a string management, threading, socket communication and managing data types such as arrays, URLs and even raw bytes. The Core Foundation framework APIs are C- based.

However, the Foundations framework provides Objective-C wrappers for the interfaces provided by the Core Foundation framework. This layer also contains individual technologies to support features such as location, iCloud, social media, and networking. 

High-Level Features: some of the high-level features available in the Core Services layer 

Peer-to-Peer Services:  The Multipeer Connectivity framework provides peer-to-peer connectivity over Bluetooth. You can use peer-to-peer connectivity to initiate communication sessions with nearby devices.

iCloud Storage: iCloud storage lets your app write user documents and data to a central location. Users can then access those items from all of their computers and iOS devices. Storing documents in a user’s iCloud account also provides a layer of safety for users. Even if a user loses a device, the documents on that device are not lost if they are in iCloud storage: 

There are two ways that apps can take advantage of iCloud storage, each of which has a different intended usage: 

o   iCloud document storage: Use this feature to store user documents and data in the user’s iCloud account.

o   iCloud key-value data storage: Use this feature to share small amounts of data among instances of your app.

o   CloudKit storage: Use this feature when you want to create publicly shared content or when you want to manage the transfer of data yourself. Data Protection:  

Data protection allows apps that work with sensitive user data to take advantage of the built-in encryption available on some devices. When your app designates a specific file as protected, the system stores that file on disk in an encrypted format. While the device is locked, the contents of the file are inaccessible to both your app and to any potential intruders. However, when the device is unlocked by the user, a decryption key is created to allow your app to access the file. Other levels of data protection are also available for you to use.

Implementing data protection requires you to be considerate in how you create and manage the data you want to protect. Apps must be designed to secure the data at creation time and to be prepared for access changes when the user locks and unlocks the device. 

File-Sharing Support: File-sharing support lets apps make user data files available in iTunes 9.1 and later. An app that declares its support for file sharing makes the contents of its /Documents directory available to the user. The user can then move files in and out of this directory as needed from iTunes. This feature does not allow your app to share files with other apps on the same device; that behavior requires the pasteboard or a document interaction controller object. 

Core OS Layer: this is the base layer of iOS which deals with low-level functionalities related to network configuration and communication, accessing the file system, memory allocation, virtual memory management, threading and inter-processing communication.

The LibSystem library of iOS allows developers to access a number of these functionalities directly. 

However, for most developers it is much more convenient to utilize frameworks and associated APIs available in the higher layers for their applications.

One of the exceptions is the case where the application needs to interact with external hardware such as Bluetooth Low-Energy devices and accessories which are attached to an iOS device. In such case developer needs to utilize the Core Bluetooth or the External Accessory framework, which are part of the Core OS Layer.


Next, we will learn about Class cluster : iOS Concept : Class cluster


  Modified On Dec-27-2017 08:49:28 PM

Leave Comment