You are on page 1of 10

Features

Features
[edit]Home

screen

The home screen (rendered by and also known as "SpringBoard") displays application icons and a dock at the bottom of the screen where users can pin their most frequently used apps. The home screen appears whenever the user switches on the device or presses the "Home" button (a physical button on the device). The screen has a status bar across the top to display data, such as time, battery level, and signal strength. The rest of the screen is devoted to the current application. When a passcode is set and a user switches on the device, the Lock Screen is displayed.

An iPhone 4S status bar displaying its icons. From left to right: Signal strength, wireless carrier name, Wi-Fi signal strength, VPNconnectivity, time, orientation lock, location services, alarm clock, TTY, AirPlay Mirroring, and battery status. (Not pictured: airplane mode, call forwarding, device lock, personal hotspot, cellular network mode, background audio, bluetooth, WiFi sync and Battery percentage)

Since iOS version 3.0, a Spotlight Search function has been available on the left page of the home screen page allowing users to search through media, applications, emails, contacts and similar files. [edit]Folders With iOS 4 came the introduction of a simple folder system. When applications are in "jiggle mode", any two can be dragged on top of each other to create a folder, and from then on, more apps can be added to the folder using the same procedure, up to 12 on iPhone and iPod touch and 20 on iPad. A title for the folder is automatically selected by the type of applications inside, but the name can also be edited by the user. [edit]Notification Center Main article: Notification Center In the iOS 5 update, the notifications feature has been completely redesigned. Notifications now collate in a window which can be dragged down from the top of the screen, much like the LockInfo tweak from Cydia. If a user touches a received notification, he/she will go to the application that sent the notification. [edit]Included

applications

The iOS home screen contains these default "apps". Some of these applications are hidden by default and accessed by the user through the Settings app or another methodfor instance, Nike+iPod is activated through the Settings app.

Primary

Name

Use

iPho

Phone

Telephone, FaceTime video calling

1.0 (FaceT

Mail

E-mail client

Safari

Web browser

1.0 Music/Videos Portable media player (Called "iPod" before iOS 5 on the iPhone only, iPad is "iPod" and "Videos")

Secondary

Name

Use iPhone

Messages

Text messaging, MMS, iMessage instant messaging

1.0 (MMS 3.0, iMessage 5.0)

Calendar

Calendar 1.0

YouTube

YouTube video streamer

Photos

Photo viewer, video viewer

1.0 (Video viewer 2.0)

1.0 Video recording and auto-focus 3.0 (iPhone 3GS onwards) Camera Camera, Camcorder 720p HD video 4.0 (iPhone 4 onwards) HDR (4.1) (iPhone 4 onwards) Crop, red eye fix, auto enhance and photo rotate 5.0 FaceTime Video calling 4.0 (iPhone 4 onwards, via Phone

app) Stocks Weather Notes Maps Yahoo! Finance Yahoo! Weather A simple note-taking program Google Maps 1.0 (Assisted GPS 2.0) 3.0 1.0

Voice Memos Voice recorder Newsstand Reminders Calculator Clock Settings Contacts iTunes App Store Compass A newspaper and magazine store A to-do list application Calculator (includes scientific version; trigger by rotating to landscape) World clock, stopwatch, alarm clock and timer 1.0 Settings Address/phone book Access to the iTunes Music Store and iTunes Podcast Directory To buy iOS apps Compass 3.0 (iPhone 3GS onwards) Nike + iPod Records the distance and pace of a walk or run; can connect to Nike + iPod sensor Allows the user to play multiplayer games with other users, track in game achievements and view leaderboards. A camera application with added special effects 4.1 (iPhone 3GS onwards)
N/A

1.0 (Scientific calculator 2.0)

Integrated in Phone app 1.0 Separate application 2.0 1.1 2.0

Game Center Photo Booth Voice Control/Siri

Simple voice control, Siri a personal voice assistant

Voice Control 3.0 (iPhone 3GS onwards) Siri 5.0 (iPhone 4S only)

Vo

All of the utilities, such as voice memos, clock, calculator, and compass are in one folder called "Utilities" in [22][23] 4.0. Many of the included applications are designed to share data (e.g., a phone number can be selected from an email and saved as a contact or dialed for a phone call). The iPod touch retains the same applications that are present by default on the iPhone, with the exception of the Phone, Messages, Compass and Camera (before the 4th generation) apps. The "iPod" App previously present on the iPhone was split into two apps with iOS 5, Music and Videos, as it always has been on the iPod touch. The bottom row of applications is also used to delineate the iPod touch's main purposes: Music, Videos, Safari, and App Store (Dock Layout was changed in 3.1 Update). For the 4th Generation iPod touch, it includes FaceTime and Camera, and the dock layout had changed to Music, Mail, Safari, Video. As of iOS 5.0, "iMessage" will be available on all iOS devices running iOS 5. iMessage is effectively a version of the iPhone Messages app that sends free text or multimedia messages to other iOS devices (similar to BlackBerry Messenger). The iPad comes with the same applications as the iPod touch excluding Stocks, Weather, Clock, Calculator, and the Nike + iPod app. Separate music and video apps are provided, as on the iPod touch, although (as on the iPhone) the music app is named "iPod". Although, that was changed in iOS 5 to "Music", to match the other devices in the family. Most of the default applications are completely rewritten to take advantage of the iPad's larger display. The default dock layout includes Safari, Mail, Photos and Music. [edit]Multitasking

Before iOS 4, multitasking was limited to a selection of the applications Apple included on the devices and an [24] array of jailbroken modifications. Starting with iOS 4, on 3rd-generation and newer iOS devices, multitasking is [25] supported through seven background APIs: 1. Background audio application continues to run in the background as long as it is playing audio or [26] video content 2. Voice over IP application is suspended when a phone call is not in progress 3. Background location application is notified of location changes 4. Push notifications 5. Local notifications application schedules local notifications to be delivered at a predetermined time 6. Task completion application asks the system for extra time to complete a given task
[26] [26] [26] [26]

7. Fast app switching application does not execute any code and may be removed from memory at any [26] time [edit]Switching applications Double-clicking the home button activates the application switcher. A scrollable dock-like interface appears from the bottom, moving the contents of the screen up. Choosing an icon switches to an application. To the far left are icons which function as music controls, a rotation lock, and on iOS 4.2 and above, a volume controller. Holding the icons briefly makes them "jiggle" (similarly to the homescreen) and allows the user to force quit the applications by simply tapping the red minus circle that appears at the corner of the app's icon. [edit]Game

Center
[27] [28]

Main article: Game Center Game Center is an online multiplayer "social gaming network" released by Apple. It allows users to "invite friends to play a game, start a multiplayer game through matchmaking, track their achievements, and compare [27] their high scores on a leader board." iOS 5 and above adds support for profile photos. Game Center was announced during an iOS 4 preview event hosted by Apple on April 8, 2010. A preview was [27] released to registered Apple developers in August. It was released on September 8, 2010 with iOS 4.1 on iPhone 4, iPhone 3GS and iPod touch 2nd generation through 4th generation. Game Center made its public [29] debut on the iPad with iOS 4.2.1. There will be no support for theiPhone 3G and original iPhone. However, Game Center is unofficially available on the iPhone 3G via a hack.

iOS Frameworks
This appendix contains information about the frameworks of iOS. These frameworks provide the interfaces you need to write software for the platform. Where applicable, the tables in this appendix list any key prefixes used by the classes, methods, functions, types, or constants of the framework. Avoid using any of the specified prefixes in your own symbol names.

Device Frameworks
Table B-1 describes the frameworks available in iOS-based devices. You can find these frameworks in the<Xcode>/Platforms/iPhoneOS.platform/Developer/SDKs/<iOS_SDK>/System/Library/Frame works directory, where <Xcode> is the path to your Xcode installation directory and <iOS_SDK> is the specific SDK version you are targeting. The "First available column lists the iOS version in which the framework first appeared. Table B-1 Name Accelerate.framework

Device frameworks
First available 4.0 Prefixes Description

cblas,vDSP

Contains accelerated math and DSP

functions. See Accelerate Framework Reference. Contains interfaces for managing access to a users system accounts. See Accounts Framework Reference. Contains functions for accessing the users contacts database directly. See Address Book Framework Reference for iOS. Contains classes for displaying the system-defined people picker and editor interfaces. See Address Book UI Framework Reference for iOS. Contains classes for accessing the users photos and videos. See Assets Library Framework Reference. Contains the interfaces for handling audio stream data and for playing and recording audio. See Audio Toolbox Framework Reference. Contains the interfaces for loading and using audio units. See Audio Unit Framework Reference. Contains Objective-C interfaces for playing and recording audio and video. See AV Foundation Framework Reference. Contains interfaces for accessing the network via Wi-Fi and cellular radios. See CFNetwork Framework Reference. Provides the data types used throughout Core Audio. See Core Audio Framework Reference. Provides access to low-power Bluetooth hardware. Contains interfaces for managing your applications data model. See Core Data Framework Reference. Provides fundamental software services, including abstractions for common data types, string utilities, collection utilities, resource management, and preferences. See Core Foundation Framework

Accounts.framework

5.0

AC

AddressBook.framework

2.0

AB

AddressBookUI.framework

2.0

AB

AssetsLibrary.framework

4.0

AL

AudioToolbox.framework

2.0

AU,Audio

AudioUnit.framework

2.0

AU,Audio

AVFoundation.framework

2.2

AV

CFNetwork.framework

2.0

CF

CoreAudio.framework

2.0

Audio

CoreBluetooth.framework

5.0

CB

CoreData.framework

3.0

NS

CoreFoundation.framework

2.0

CF

Reference. Contains the interfaces for Quartz 2D. See Core Graphics Framework Reference. Contains interfaces for manipulating video and still images. See Core Image Reference Collection. Contains the interfaces for determining the users location. See Core Location Framework Reference. Contains low-level routines for manipulating audio and video. See Core Media Framework Reference. Contains low-level routines for handling MIDI data. See Core MIDI Framework Reference. Contains interfaces for accessing accelerometer and gyro data. See Core Motion Framework Reference. Contains routines for accessing telephony-related information. See Core Telephony Framework Reference. Contains a text layout and rendering engine. See Core Text Reference Collection. Contains low-level routines for manipulating audio and video. Do not use this framework directly. Contains interfaces for accessing a users calendar event data. See Event Kit Framework Reference. Contains classes for displaying the standard system calendar interfaces. See Event Kit UI Framework Reference. Contains interfaces for communicating with attached hardware accessories. See External Accessory Framework Reference. Contains interfaces for managing

CoreGraphics.framework

2.0

CG

CoreImage.framework

5.0

CI

CoreLocation.framework

2.0

CL

CoreMedia.framework

4.0

CM

CoreMIDI.framework

4.2

MIDI

CoreMotion.framework

4.0

CM

CoreTelephony.framework

4.0

CT

CoreText.framework

3.2

CT

CoreVideo.framework

4.0

CV

EventKit.framework

4.0

EK

EventKitUI.framework

4.0

EK

ExternalAccessory.framework

3.0

EA

Foundation.framework

2.0

NS

strings, collections, and other lowlevel data types. See Foundation Framework Reference. Contains the interfaces for managing peer-to-peer connectivity. See Game Kit Framework Reference. Contains Objective-C utility classes for building complex OpenGL ES applications. See GLKit Framework Reference. Provides a standard set of securityrelated services. Contains classes for displaying advertisements in your application. See iAd Framework Reference. Contains classes for reading and writing image data. See Image I/O Reference Collection. Contains interfaces used by the device. Do not include this framework directly. Contains classes for embedding a map interface into your application and for reverse-geocoding coordinates. SeeMap Kit Framework Reference. Contains interfaces for playing fullscreen video. See Media Player Framework Reference. Contains interfaces for composing and queuing email messages. See Message UI Framework Reference. Defines the uniform type identifiers (UTIs) supported by the system. Provides interfaces for downloading magazine and newspaper content in the background. See Newsstand Kit Framework Reference. Contains the interfaces for OpenAL, a cross-platform positional audio library. For more information, go tohttp://www.openal.org. Contains the interfaces for OpenGL

GameKit.framework

3.0

GK

GLKit.framework

5.0

GLK

GSS.framework

5.0

gss

iAd.framework

4.0

AD

ImageIO.framework

4.0

CG

IOKit.framework

2.0

N/A

MapKit.framework

3.0

MK

MediaPlayer.framework

2.0

MP

MessageUI.framework

3.0

MF

MobileCoreServices.framework

3.0

UT

NewsstandKit.framework

5.0

NK

OpenAL.framework

2.0

AL

OpenGLES.framework

2.0

EAGL,GL

ES, which is an embedded version of the OpenGL cross-platform 2D and 3D graphics rendering library. See OpenGL ES Framework Reference. Contains the Core Animation interfaces. See Quartz Core Framework Reference. Contains interfaces for previewing files. See Quick Look Framework Reference for iOS. Contains interfaces for managing certificates, public and private keys, and trust policies. See Security Framework Reference. Contains interfaces for handling the financial transactions associated with in-app purchases. See Store Kit Framework Reference. Contains interfaces for determining the network configuration of a device. See System Configuration Framework Reference. Contains interfaces for sending tweets via the Twitter service. See Twitter Framework Reference. Contains classes and methods for the iOS application user interface layer. See UIKit Framework Reference.

QuartzCore.framework

2.0

CA

QuickLook.framework

4.0

QL

Security.framework

2.0

CSSM,Sec

StoreKit.framework

3.0

SK

SystemConfiguration.framework

2.0

SC

Twitter.framework

5.0

TW

UIKit.framework

2.0

UI

Simulator Frameworks
Although you should always target the device frameworks when writing your code, you might need to compile your code specially for Simulator during testing. The frameworks available on the device and in Simulator are mostly identical, but there are a handful of differences. For example, Simulator uses several Mac OS X frameworks as part of its own implementation. In addition, the exact interfaces available for a device framework and a Simulator framework may differ slightly because of system limitations. For a list of frameworks and for information about the specific differences between the device and Simulator frameworks, see Tools Workflow Guide for iOS.

System Libraries
Note that some specialty libraries at the Core OS and Core Services level are not packaged as frameworks. Instead, iOS includes many dynamic libraries in the /usr/lib directory of the system. Dynamic shared libraries are identified by their .dylib extension. Header files for the libraries are located in the /usr/include directory. Each version of the iOS SDK includes a local copy of the dynamic shared libraries that are installed with the system. These copies are installed on your development system so that you can link to them from your Xcode

projects. To see the list of libraries for a particular version of iOS, look in<Xcode>/Platforms/iPhoneOS.platform/Developer/SDKs/<iOS_SDK>/usr/lib, where <Xcode> is the path to your Xcode installation directory and <iOS_SDK> is the specific SDK version you are targeting. For example, the shared libraries for the iOS 4.2 SDK would be located in the/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/usr/lib direc tory, with the corresponding headers in/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/usr/include. iOS uses symbolic links to point to the current version of most libraries. When linking to a dynamic shared library, use the symbolic link instead of a link to a specific version of the library. Library versions may change in future versions of iOS; if your software is linked to a specific version, that version might not always be available on the users system.

The iOS Architecture


The iOS architecture is similar to the basic architecture found in Mac OS X. At the highest level, iOS acts as an intermediary between the underlying hardware and the applications that appear on the screen, as shown in Figure 1-1. The applications you create rarely talk to the underlying hardware directly. Instead, applications communicate with the hardware through a set of well-defined system interfaces that protect your application from hardware changes. This abstraction makes it easy to write applications that work consistently on devices with different hardware capabilities. Figure 1-1 Applications layered on top of iOS

Note: Even though your application is generally protected from changes to the underlying hardware, you still need to account for differences between devices in your code. For example, some devices contain a camera while others do not. If your application can work with or without a given feature, use the interfaces provided by the corresponding framework to determine the availability of that feature. Applications that require the presence of specific hardware should declare that requirement using their information property list (Info.plist) file. For more information on declaring required hardware, see Advanced App Tricks in iOS App Programming Guide. The implementation of iOS technologies can be viewed as a set of layers, which are shown in Figure 1-2. At the lower layers of the system are the fundamental services and technologies on which all applications rely; higherlevel layers contain more sophisticated services and technologies.

Figure 1-2 Layers of iOS As you write your code, you should prefer the use of higher-level frameworks over lower-level frameworks whenever possible. The higher-level frameworks are there to provide object-oriented abstractions for lower-level constructs. These abstractions generally make it much easier to write code because they reduce the amount of code you have to write and encapsulate potentially complex features, such as sockets and threads. Although they abstract out lower-level technologies, they do not mask those technologies from you. The lower-level frameworks are still available for developers who prefer to use them or who want to use aspects of those frameworks that are not exposed by the higher layers. The technologies and frameworks for each layer are described in later chapters of this document.

Whats in the iOS SDK?


The iOS SDK comes with all of the interfaces, tools, and resources needed to develop iOS applications from your Intel-based Macintosh computer. Apple delivers most of its system interfaces in special packages called frameworks. A framework is a directory that contains a dynamic shared library and the resources (such as header files, images, helper applications, and so on) needed to support that library. To use frameworks, you link them into your application project just as you would any other shared library. Linking them to your project gives you access to the features of the framework and also lets the development tools know where to find the header files and other framework resources. In addition to frameworks, Apple also delivers some technologies in the form of standard shared libraries. Because iOS is based on UNIX, many of the technologies that form the lower-levels of the operating system are derived from open source technologies. The interfaces for these technologies are therefore available in the standard library and interface directories. Some other key components of the SDK include:

Xcode Toolsthe tools that support iOS application development, including the following key applications:

Xcodean integrated development environment that manages your application projects and lets you edit, compile, run, and debug your code. Xcode integrates with many other tools and is the main application you use during development. Instrumentsa runtime performance analysis and debugging tool. You can use Instruments to gather information about your applications runtime behavior and identify potential problems.

iOS Simulatora Mac OS X application that simulates the iOS technology stack, allowing you to test iOS applications locally on your Intel-based Macintosh computer.

iOS Developer Librarythe reference and conceptual documentation that teaches you all about iOS technologies and the application-development process. For more information, see How to Use the Developer Library. Although you can run applications in iOS Simulator, Xcode and Instruments also let you run and debug applications directly on an attached device. Simulator is ideal for building and testing applications quickly but is no substitute for testing on a real device. Development on an actual device requires signing up for Apples paid iOS Developer Program and configuring a device for development purposes. You can find out more about the iOS Developer Program at the iOS Dev Center. For information on how to install the iOS SDK and use it for developing iOS applications, see Tools Workflow Guide for iOS.

You might also like