iOS

iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that presently powers many of the company’s mobile devices, including the iPhone, iPad, and iPod Touch. Globally it is the second most popular mobile operating system after Android. Originally unveiled in 2007 for the iPhone, iOS has been extended to support other Apple devices such as the iPod Touch and the iPad.
The iOS architecture is layered. It contains an intermediate layer between the applications and the hardware so they do not communicate directly. The lower layers in iOS provide the basic services and the higher layers provide the user interface and sophisticated graphics. Apps talk with the hardware through a collection of well–defined system interfaces. These interfaces make it simple to write apps that work constantly on devices having various hardware abilities.
Apple provides most of its system interfaces in special packages called frameworks. A framework is a hierarchical directory that encapsulates shared resources, such as a dynamic shared library, nib files, image files, localized strings, header files, and reference documentation in a single package. Multiple applications can use all of these resources simultaneously. The system loads them into memory as needed and shares the one copy of the resource among all applications whenever possible.
Frameworks serve the same purpose as static and dynamic shared libraries, that is, they provide a library of routines that can be called by an application to perform a specific task.
Frameworks offer the following advantages over static-linked libraries and other types of dynamic shared libraries:
  • Frameworks group related, but separate, resources together. This grouping makes it easier to install, uninstall, and locate those resources.
  • Frameworks can include a wider variety of resource types than libraries. For example, a framework can include any relevant header files and documentation.
  • Multiple versions of a framework can be included in the same bundle. This makes it possible to be backward compatible with older programs.
  • Only one copy of a framework’s read-only resources reside physically in-memory at any given time, regardless of how many processes are using those resources. This sharing of resources reduces the memory footprint of the system and helps improve performance.
The layered architecture of iOS is given as follows:
Core OS
  • All the iOS technologies are build on the low level features provided by the Core OS layer. These technologies include
    • Core Bluetooth Framework,
    • External Accessory Framework,
    • Accelerate Framework,
    • Security Services Framework,
    • Local Authorization Framework etc.
Core Services
  • There are many frameworks available in the core services layer, including
    • Cloudkit Framework
      • medium for moving data between the app and the iCloud.
    • Core Foundation Framework
      • Provides the data management and service features for the iOS apps.
    • Core Data Framework
      • Manages the data model of a Model View Controller app
    • Address Book Framework
      • Provides access to the contacts database of the user.
    • Core Motion Framework
      • Access all the motion based data on the device.
    • Healthkit Framework
      • Handles health related information of the user.
    • Core Location Framework
      • Provides the location and heading information to the various apps.
    • Homekit framework
      • New framework for talking with and controlling connected devices in a user’s home.
    • Social framework
      • Simple interface for accessing the user’s social media accounts.
    • StoreKit framework
      • Gives support for the buying of content and services from inside your iOS apps, a feature known as In-App Purchase.
Media
  • The media layer enables all the graphics, audio and video technology of the system. The different frameworks are:
    • Graphics Framework
    • Audio Framework
    • Video Framework
  • Graphics Framework:
    • UIKit Graphics
      • Provides support for designing images and animating the view content.
    • Core Graphics framework
      • It is the native drawing engine for iOS apps and gives support for custom 2D vector and image based rendering.
    • Core Animation
      • Optimizes the animation experience of the apps.
    • Core Images
      • Provides advanced support for controlling video and motionless images in a nondestructive way
    • OpenGl ES and GLKit
      • manages advanced 2D and 3D rendering by hardware accelerated interfaces
    • Metal
      • It permits very high performance for your sophisticated graphics rendering and computation works. It offers very low overhead access to the A7 GPU.
    • Audio Framework:
      • Media Player Framework
        • It is a high–level framework which gives simple use to a user’s iTunes library and support for playing playlists.
      • AV Foundation
        • Provides support for playing playlists and enables the user to use their iTunes library.
        • Also handles the recording and playback of audio and video.
      • OpenAL
        • is an industry standard technology for providing audio.
      • Video Framework
        • AV Kit
          • Provides a collection of easy to use interfaces for presenting video.
        • AV Foundation
          • Provides advanced video playback and recording capability.
        • Core Media
          • Describes the low–level interfaces and data types for operating media.
Cocoa Touch
  • The cocoa touch layer provides the following frameworks:
    • EventKit Framework
      • Standard system interfaces using view controllers for viewing and changing calendar related events.
    • GameKit Framework
      • Implements support for Game Center which allows users share their game related information online.
    • MapKit Framework
      • This provides a scrollable map which can be included into the app user interface.
    • iAd Framework
      • allows you deliver banner-based advertisements from your app.
    • PushKitFramework
      • provides registration support for VoIP apps.
    • UIKit Framework
      • gives vital infrastructure for applying graphical, event-driven apps in iOS. Some of the Important functions of UI Kit framework:
        • Multitasking support.
        • Basic app management and infrastructure.
        • User interface management
        • Support for Touch and Motion event.
        • Cut, copy and paste support and many more.