More Related Content
Similar to Whats New Ini Phone Os
Similar to Whats New Ini Phone Os (20)
Whats New Ini Phone Os
- 2. Simultaneously published in the United States
Apple Inc. and Canada.
© 2009 Apple Inc. Even though Apple has reviewed this document,
All rights reserved. APPLE MAKES NO WARRANTY OR REPRESENTATION,
EITHER EXPRESS OR IMPLIED, WITH RESPECT TO
THIS DOCUMENT, ITS QUALITY, ACCURACY,
No part of this publication may be reproduced, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR
PURPOSE. AS A RESULT, THIS DOCUMENT IS
stored in a retrieval system, or transmitted, in PROVIDED “AS IS,” AND YOU, THE READER, ARE
any form or by any means, mechanical, ASSUMING THE ENTIRE RISK AS TO ITS QUALITY
electronic, photocopying, recording, or AND ACCURACY.
otherwise, without prior written permission of IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT,
INDIRECT, SPECIAL, INCIDENTAL, OR
Apple Inc., with the following exceptions: Any CONSEQUENTIAL DAMAGES RESULTING FROM ANY
person is hereby authorized to store DEFECT OR INACCURACY IN THIS DOCUMENT, even
if advised of the possibility of such damages.
documentation on a single computer for
personal use only and to print copies of THE WARRANTY AND REMEDIES SET FORTH ABOVE
ARE EXCLUSIVE AND IN LIEU OF ALL OTHERS, ORAL
documentation for personal use provided that OR WRITTEN, EXPRESS OR IMPLIED. No Apple
the documentation contains Apple’s copyright dealer, agent, or employee is authorized to make
any modification, extension, or addition to this
notice. warranty.
The Apple logo is a trademark of Apple Inc. Some states do not allow the exclusion or limitation
of implied warranties or liability for incidental or
Use of the “keyboard” Apple logo consequential damages, so the above limitation or
exclusion may not apply to you. This warranty gives
(Option-Shift-K) for commercial purposes you specific legal rights, and you may also have
without the prior written consent of Apple may other rights which vary from state to state.
constitute trademark infringement and unfair
competition in violation of federal and state
laws.
No licenses, express or implied, are granted
with respect to any of the technology described
in this document. Apple retains all intellectual
property rights associated with the technology
described in this document. This document is
intended to assist application developers to
develop applications only for Apple-labeled
computers.
Every effort has been made to ensure that the
information in this document is accurate. Apple
is not responsible for typographical errors.
Apple Inc.
1 Infinite Loop
Cupertino, CA 95014
408-996-1010
iTunes Store is a registered service mark of
Apple Inc.
Apple, the Apple logo, Bonjour, iPod, iTunes,
iWork, Keychain, Safari, and Xcode are
trademarks of Apple Inc., registered in the
United States and other countries.
iPhone is a trademark of Apple Inc.
Intel and Intel Core are registered trademarks
of Intel Corportation or its subsidiaries in the
United States and other countries.
Java and all Java-based trademarks are
trademarks or registered trademarks of Sun
Microsystems, Inc. in the U.S. and other
countries.
- 3. Contents
Introduction 5
Organization of This Document 5
iPhone OS 3.0 7
Apple Push Notification Service 7
Cut, Copy, and Paste 7
Accessory Support 8
In App Purchase Support 8
Peer to Peer Support 8
Maps API 9
iPod Library Access 9
Audio Recording and Management 9
Core Data 10
In App Email 10
Streaming Video 10
Safari Features 11
Shared Keychain Items 11
Additional Enhancements 11
UIKit Framework Enhancements 11
Foundation Framework Enhancements 12
Core Audio Enhancements 12
Document Revision History 15
3
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 4. 4
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 5. Introduction
Important: This is a preliminary document for an API or technology in development. Although this document
has been reviewed for technical accuracy, it is not final. Apple is supplying this information to help you plan
for the adoption of the technologies and programming interfaces described herein. This information is subject
to change, and software implemented according to this document should be tested with final operating
system software and final documentation. Newer versions of this document may be provided with future
seeds of the API or technology. For information about updates to this and other developer documentation,
view the New & Updated sidebars in subsequent documentation seeds.
This document provides developer-level information about features that were introduced in different versions
of iPhone OS.
This document is not intended as a complete list of features for each new version of iPhone OS. Instead, it
focuses on those features that affect the development of third-party software, providing overviews of each
feature along with insight as to how and when you might use them to create your own software. Wherever
possible, this document also provides links to other Apple conceptual and reference documentation for that
feature.
Organization of This Document
This document includes the following article:
■ “iPhone OS 3.0” (page 7) describes the new and updated features in iPhone OS 3.0.
Organization of This Document 5
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 6. Introduction
6 Organization of This Document
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 7. iPhone OS 3.0
This article summarizes the key features that are available beginning with iPhone OS 3.0. It also lists many
of the documents that were created or updated for the release.
Apple Push Notification Service
The Apple Push Notification Service provides a way to alert your users of new information, even when your
application is not actively running. Using this service, you can push text notifications, trigger audible alerts,
or add a numbered badge to your application icon. These messages let users know that they should open
your application to receive the related information.
From a design standpoint, there are two parts to making push notifications work for your iPhone applications.
First, you need to request the delivery of notifications to your iPhone application and then you need to
configure your application delegate to process them. The delegate works together with the shared
UIApplication object to perform both of these tasks. 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.
For more information about how to configure your application to use remote notifications, see Apple Push
Notification Service Programming Guide.
Cut, Copy, and Paste
In iPhone OS 3.0, the UIKit framework provides new classes to support pasteboard operations and also
incorporates selection and pasteboard behaviors into some existing UIKit views. You can use the new classes
to incorporate support cut, copy, and paste behaviors into your application. One of the key new classes is
the UIPasteboard class, which manages the content on the systemwide pasteboards. It is through this class
that you can now store selected content and transfer it within your application or to other applications.
The UIPasteboard object provides built-in support for storing standard data types such as strings, images,
colors, and URLs. These types represent some of the most common data types and make it easier to exchange
content between applications. However, you can also exchange content in custom data formats supported
only by your application or in more standardized interchange formats.
Several existing UIKit views now provide automatic support for text selection and pasteboard operations. In
particular, the UITextField, UITextView, and UIWebView classes automatically handle text selections and
the display of an editing menu with the appropriate Cut, Copy, Paste, Select, and Select all commands.
For custom views, the UIKit framework also includes the UIMenuController class for managing the editing
menu. You use this class, together with your application’s own custom selection behavior, to allow the user
to cut, copy, paste, and select custom content. The menu displays standard commands to cut or copy the
selected content or to paste new content based on the operations currently supported by your view.
Apple Push Notification Service 7
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 8. iPhone OS 3.0
For information about how to incorporate pasteboard support into your application, see Event Handling in
iPhone Application Programming Guide. You should also consult Handling Common Tasks in iPhone Human
Interface Guidelines for information about the interface guidelines associated with supporting cut, copy, and
paste operations.
Accessory Support
The External Accessory framework (ExternalAccessory.framework) provides support for communicating
with hardware accessories attached to an iPhone or iPod touch device. Accessories can be connected through
the 30-pin dock connector of a device or wirelessly using Bluetooth. The External Accessory framework
provides a way for you to get information about each available accessory and to initiate communications
sessions. After that, you are free to manipulate the accessory directly using any commands it supports.
For more information about how to use this framework, see Device Support in iPhone Application Programming
Guide. For information about the classes of the External Accessory framework, see External Accessory Framework
Reference. For information about developing accessories for iPhone and iPod touch devices, go to http://de-
veloper.apple.com.
In App Purchase Support
The Store Kit framework (StoreKit.framework) provides a means for you to make additional content and
services available from within your iPhone applications. For example, you could use this feature to allow the
user to unlock additional application features. Or if you are a game developer, you could use it to offer
additional game levels. In both cases, the Store Kit framework handles the financial aspects of the transaction,
processing payment requests through the user’s iTunes Store account and providing your application with
information about the purchase.
The Store Kit focuses on the financial aspects of a transaction, ensuring that transactions occur securely and
correctly. Your application handles the other aspects of the transaction, including the presentation of a
purchasing interface and the downloading (or unlocking) of the appropriate content. This division of labor
gives you control over the user experience for purchasing content. You decide what kind of purchasing
interface you want to present to the user and when to do so. You also decide on the delivery mechanism
that works best for your application.
For information about how to use the Store Kit framework, see Store Kit Programming Guide and Store Kit
Framework Reference.
Peer to Peer Support
The Game Kit framework (GameKit.framework) lets you add peer-to-peer network capabilities to your
applications. Specifically, this framework provides support for peer-to-peer connectivity and in-game voice
features. Although these features are most commonly found in multiplayer network games, you can incorporate
them into non-game applications as well. The framework provides you with networking features through a
simple (yet powerful) set of classes built on top of Bonjour. These classes abstract out many of the network
details, making it easy for developers who might be inexperienced with networking programming to
incorporate networking features into their applications.
8 Accessory Support
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 9. iPhone OS 3.0
For more information about how to use the Game Kit framework, see Game Kit Programming Guide and Game
Kit Framework Reference.
Maps API
The Map Kit framework (MapKit.framework) provides a map interface that you can embed into your own
application. Based on the behavior of this interface within the Maps application, this interface provides a
scrollable map view that can be annotated with custom information. You can embed this view inside of your
own application views and programmatically set various attributes of the map, including the currently
displayed map region and the user’s location. You can also define custom annotations or use standard
annotations (such as a pin marker) to highlight regions of the map and display additional information.
For more information about the classes of the Map Kit framework, see MapKit Framework Reference.
iPod Library Access
Several new classes and protocols have been added to the Media Player framework
(MediaPlayer.framework) to allow access to the user’s audio library. You can use these classes to perform
the following tasks:
■ Play audio items from the user’s library. This support lets you play all audio types supported by the iPod
application.
■ Construct queues of audio items to play back.
■ Perform searches of the user’s audio library.
■ Access the user’s playlists (including smart, on-the-go, and genius playlists).
For more information about the classes of the Media Player framework, see Media Player Framework Reference.
Audio Recording and Management
The AV Foundation framework (AVFoundation.framework) includes the following new classes and protocols
for recording audio and managing audio sessions:
■ The AVAudioRecorder class provides audio recording capabilities. This class works together with an
audio delegate (conforming to the AVAudioRecorderDelegate protocol) to manage state changes
during recording.
■ The AVAudioSession class provides control over audio context including audio session category, sample
rate, and I/O buffer duration. This class works with an audio session delegate (conforming to the
AVAudioSessionDelegate protocol) to respond to audio hardware route changes and audio
interruptions.
■ New constants for configuring audio formats, audio encoding, and sample rate conversion for recording.
Maps API 9
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 10. iPhone OS 3.0
For more information about the classes of the AV Foundation framework, see AV Foundation Framework
Reference.
Core Data
The Core Data framework (CoreData.framework) is a technology for managing the data model of a
Model-View-Controller application. Core Data is intended for use in applications where the data model is
already highly structured. Instead of defining data structures programmatically, you use the graphical tools
in Xcode to build a schema representing your data model. At runtime, instances of your data-model entities
are created, managed, and made available through the Core Data framework.
By managing your application’s data model for you, Core Data significantly reduces the amount of code you
have to write for your application. Core Data also provides the following features:
■ Storage of object data in a SQLite database for optimal performance
■ A new NSFetchedResultsController class to manage results for table views
■ Management of undo/redo beyond basic text editing
■ Support for the validation of property values
■ Support for propagating changes and ensuring that the relationships between objects remain consistent
■ Support for grouping, filtering, and organizing data in memory
If you are starting to develop a new application or are planning a significant update to an existing application,
you should consider using Core Data. For an example of how to use Core Data in an iPhone application, see
Core Data Tutorial for iPhone OS. For more information about the classes of the Core Data framework, see
Core Data Framework Reference.
In App Email
The Message UI framework (MessageUI.framework) is a new framework that provides support for composing
and queuing email messages in the user’s outbox. The composition support consists of a view controller
interface that you can present in your application. You can populate the fields of this interface with the
contents of the message you want to send. You can set the recipients, subject, body content, and any
attachments you want to include with the message. The user then has the option of editing the message
prior to accepting it. Once accepted, the message is queued in the user’s outbox for delivery.
For more information about the classes of the Message UI framework, see Message UI Framework Reference.
Streaming Video
In iPhone OS 3.0, there is now support for the playback of live video streamed over http. Streamed content
can be played back on an iPhone OS–based device using the MPMoviePlayerController class. The
semantics of using this class have not changed. The main differences are in the preparation of the streamed
content and how it is published on a web server.
10 Core Data
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 11. iPhone OS 3.0
For more information about how to prepare content for video streaming, see HTTP Live Streaming Overview.
Safari Features
In iPhone OS 3.0 and later, Safari supports the audio and video HTML elements, which allow you to embed
audio and video content into your web applications. Safari also supports the Geolocation JavaScript classes,
which work with the onboard location services to retrieve the current location of the device.
For more information about how to use these features in your web applications, see Safari Web Content Guide
for iPhone OS.
Shared Keychain Items
In iPhone OS 3.0 and later, it is now possible for you to share Keychain items among multiple applications
you create. Sharing items makes it easier for applications in the same suite to interoperate more smoothly.
For example, you could use this feature to share user passwords or other elements that might otherwise
require you to prompt the user from each application separately.
Sharing Keychain items involves setting up the proper entitlements in your application binaries. Using Xcode,
you must create an Entitlements property list file that includes the supported entitlements for your application.
The process for creating this file is described in iPhone Development Guide. For information about the
entitlements you can configure, see the description for the SecItemAdd function in Keychain Services Reference.
Accessing shared items at runtime involves using the Keychain Services programming interface with the
access groups you set up during development. For information about how to access the Keychain, see
Keychain Services Programming Guide.
Additional Enhancements
In addition to the major new features in iPhone OS, several frameworks and technologies have received
incremental updates to improve the development experience.
UIKit Framework Enhancements
The UIKit framework (UIKit.framework) has been enhanced to support major new features in iPhone OS
3.0, such as cut, copy, and paste operations. In addition, this framework has some new classes and has minor
improvements to existing classes, including the following:
■ New classes (UIPasteboard and UIMenuController) and general improvements to the UITextField,
UITextView, and UIWebView classes to support the selection of text and to support cut, copy, and
paste operations
■ Support for handling “motion” events, which currently consist of shake events. Typically, you use shake
events to initiate undo operations but you may use them for other purposes as well; see Event Handling
in iPhone Application Programming Guide for more information.
Safari Features 11
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 12. iPhone OS 3.0
■ Support in the UIDevice class for accessing the battery state and proximity sensor
■ Enhancements to search bar controls, including the new UISearchDisplayController class to manage
search results
■ New support for one-step view rotations from a view controller; see UIViewController Class Reference
■ New modal transition styles, including support for flip and cross-fade transitions; see UIViewController
Class Reference
■ Navigation controller support for a standard built-in toolbar whose contents can change to reflect the
currently active view controller; see UINavigationController Class Reference
■ Improvements to table views, including support for new cell styles, more table reloading options, and
support for customizing the title of delete confirmation buttons. There is also a new class
(UILocalizedIndexedCollation) to help with data sorting and organization for table view sections.
■ Support for content stretching in the UIView class, which allows the creation of 3- or 9-part stretched
images without using a stretchable UIImage or multiple image views
■ Enhanced support for data detection in the UITextView and UIWebView classes. This support lets you
configure what types of data (phone numbers, URLS, and addresses) should be automatically detected
in text and converted to clickable links.
■ Enhanced support in UIWebView for displaying previews of RTF, RTFD, PDF, iWork, and Office documents
For more information about the classes of the UIKit framework, see UIKit Framework Reference. For guidance
on when to use the new features in your applications, see iPhone Human Interface Guidelines.
Foundation Framework Enhancements
The Foundation framework (Foundation.framework) has been updated to support the following features
related to undo management and Core Data:
■ Inclusion of the NSUndoManager class to support Core Data and general undo operations
■ Inclusion of the NSExpression, NSPredicate, NSComparisonPredicate, NSCompoundPredicate,
and NSValueTransformer classes to support Core Data
For more information about the classes of the Foundation framework, see Foundation Framework Reference.
Core Audio Enhancements
Enhancements have been made to the Audio Toolbox, Audio Unit, and Core Audio frameworks, including
the following additions:
■ New support for decoding MP3 and AAC audio content in software. This support effectively allows you
to play multiple compressed files simultaneously (one using the hardware decoder and one or more
using the software decoder).
■ Enhanced support in the Audio Toolbox framework for determining if audio codecs are available in
software, hardware, or both
■ Enhanced support in the Audio Unit framework for registering your audio units and connecting audio
unit processing graphs in your iPhone application
12 Additional Enhancements
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 13. iPhone OS 3.0
■ Support for three new audio formats:
❏ DVI/Intel IMA ADPCM
❏ Microsoft GSM 6.10
❏ AES3-2003
For more information about the Core Audio interfaces, see Audio Toolbox Framework Reference, Audio Unit
Framework Reference, and Core Audio Framework Reference.
Additional Enhancements 13
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 14. iPhone OS 3.0
14 Additional Enhancements
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.
- 15. Document Revision History
This table describes the changes to What's New in iPhone OS.
Date Notes
2009-04-07 New document describing the features introduced in each version of iPhone
OS.
15
2009-04-07 | © 2009 Apple Inc. All Rights Reserved.