iOS Overview – Cocoa Touch Layer

At the highest level, iOS acts as an intermediary between the underlying hardware and the apps you create. Apps do not talk to the underlying hardware directly. Instead, they communicate with the hardware through a set of well-defined system interfaces. These interfaces make it easy to write apps that work consistently on devices having different hardware capabilities.

The implementation of iOS technologies can be viewed as a set of layers, which are shown in Figure I-1. Lower layers contain fundamental services and technologies. Higher-level layers build upon the lower layers and provide more sophisticated services and technologies.

Figure I-1  Layers of iOS
Layers of iOS

Cocoa Touch Layer ( High-Level Feature & Cocoa Touch Framework )

  1. provide the basic app infrastructure
  2. support for key technologies. multitasking, touch-based input, push notifications, and many high-level system services

High-Level Features

AirDrop

AirDrop lets users share photos, documents, URLs, and other kinds of data with nearby devices. 

To receive files sent using AirDrop, your app must do the following:

  • Declare support for the appropriate document types in Xcode. (Xcode adds the appropriate keys to your app’s Info.plist file.) The system uses this information to determine whether your app can open a given file.

  • Implement the application:openURL:sourceApplication:annotation: method in your app delegate. (The system calls this method when a new file is received.)

Text Kit

Text Kit comprises new UIKit classes, along with extensions to existing classes, including the following:

UIKit Dynamics

Apps can now specify dynamic behaviors for UIView objects and for other objects that conform to the UIDynamicItem protocol.

Multitasking

  • An app can request a finite amount of time to complete some important task.

  • An app that supports specific services (such as audio playback) can request time to provide those services.

  • An app can use local notifications to generate user alerts at designated times, whether or not the app is running.

  • An app can download content periodically from the network.

  • An app can download content in response to a push notification

Auto Layout

Apple Push Notification Service

From a design standpoint, there are two parts to making push notifications work for iOS apps. First, the app must request the delivery of notifications and process the notification data once it is delivered. Second, you need to provide a server-side process to generate the notifications in the first place. This process lives on your own local server and works with Apple Push Notification Service to trigger the notifications.

Local Notifications

Gesture Recognizers

 swipes and pinches in your app’s views 

Standard System View Controllers

  • Display or edit contact information. Use the view controllers in the Address Book UI framework.

  • Create or edit calendar events. Use the view controllers in the Event Kit UI framework.

  • Compose an email or SMS message. Use the view controllers in the Message UI framework.

  • Open or preview the contents of a file. Use the UIDocumentInteractionController class in the UIKit framework.

  • Take a picture or choose a photo from the user’s photo library. Use the UIImagePickerController class in the UIKit framework.

  • Shoot a video clip. Use the UIImagePickerController class in the UIKit framework.

 

 

Cocoa Touch Frameworks

Address Book UI Framework

use to display standard system interfaces for creating new contacts and for editing and selecting existing contacts.

Event Kit UI Framework

presenting the standard system interfaces for viewing and editing calendar-related events 

Game Kit Framework

iAd Framework

Map Kit Framework

provides a scrollable map that you can incorporate into your app’s user interface

Message UI Framework

provides support for composing email or SMS messages from your app

Twitter Framework

UIKit Framework

 

  • Basic app management and infrastructure, including the app’s main run loop

  • User interface management, including support for storyboards and nib files

  • A view controller model to encapsulate the contents of your user interface

  • Objects representing the standard system views and controls

  • Support for handling touch- and motion-based events

  • Support for a document model that includes iCloud integration; see Document-Based App Programming Guide for iOS

  • Graphics and windowing support, including support for external displays; see View Programming Guide for iOS

  • Multitasking support; see “Multitasking”

  • Printing support; see Drawing and Printing Guide for iOS

  • Support for customizing the appearance of standard UIKit controls

  • Support for text and web content

  • Cut, copy, and paste support

  • Support for animating user-interface content

  • Integration with other apps on the system through URL schemes and framework interfaces

  • Accessibility support for disabled users

  • Support for the Apple Push Notification service; see “Apple Push Notification Service”

  • Local notification scheduling and delivery; see “Local Notifications”

  • PDF creation

  • Support for using custom input views that behave like the system keyboard

  • Support for creating custom text views that interact with the system keyboard

  • Support for sharing content through email, Twitter, Facebook, and other services

In addition to providing the fundamental code for building your app, UIKit also incorporates support for some device-specific features, such as the following:

  • The built-in camera (where present)

  • The user’s photo library

  • Device name and model information

  • Battery state information

  • Proximity sensor information

  • Remote control information from attached headsets

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s