This action might not be possible to undo. Are you sure you want to continue?
Apple Inc. © 2010 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, mechanical, electronic, photocopying, recording, or otherwise, without prior written permission of Apple Inc., with the following exceptions: Any person is hereby authorized to store documentation on a single computer for personal use only and to print copies of documentation for personal use provided that the documentation contains Apple’s copyright notice. The Apple logo is a trademark of Apple Inc. Use of the “keyboard” Apple logo (Option-Shift-K) for commercial purposes without the prior written consent of Apple may 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, Instruments, iPod, iPod touch, iTunes, iWork, Keychain, Mac, Mac OS, Macintosh, Quartz, 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. OpenGL is a registered trademark of Silicon Graphics, Inc. Simultaneously published in the United States and Canada.
Even though Apple has reviewed this document, APPLE MAKES NO WARRANTY OR REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS DOCUMENT, ITS QUALITY, ACCURACY, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. AS A RESULT, THIS DOCUMENT IS PROVIDED “AS IS,” AND YOU, THE READER, ARE ASSUMING THE ENTIRE RISK AS TO ITS QUALITY AND ACCURACY. IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT OR INACCURACY IN THIS DOCUMENT, even if advised of the possibility of such damages. THE WARRANTY AND REMEDIES SET FORTH ABOVE ARE EXCLUSIVE AND IN LIEU OF ALL OTHERS, ORAL OR WRITTEN, EXPRESS OR IMPLIED. No Apple dealer, agent, or employee is authorized to make any modification, extension, or addition to this warranty. Some states do not allow the exclusion or limitation of implied warranties or liability for incidental or consequential damages, so the above limitation or exclusion may not apply to you. This warranty gives you specific legal rights, and you may also have other rights which vary from state to state.
0 17 Apple Push Notification Service 17 Cut. and Paste 17 Accessory Support 18 In App Purchase Support 18 3 2010-01-22 | © 2010 Apple Inc. Copy.2 7 User Interface Changes 7 Popovers 7 Split Views 7 Custom Input Views 8 External Display Support 8 Gesture Recognizers 8 Improved Text Support 9 Core Text 9 Text Input Support 9 Custom Font Support 10 ICU Regular-Expression Support 10 File and Document Support 10 File-Sharing Support 10 Document Support 11 PDF Generation 11 Xcode Tools 11 API Changes 12 UIKit Framework Changes 12 Media Player Framework Changes 13 Core Animation Changes 13 MapKit Framework Changes 13 Foundation Framework Changes 13 iPhone OS 3. All Rights Reserved.Contents Introduction 5 Organization of This Document 5 Getting the iPhone SDK 5 iPhone OS 3. .1 15 Video Editing Support 15 Core Animation Enhancements 15 Instruments 15 iPhone OS 3.
.Peer to Peer Support 18 Maps API 19 iPod Library Access 19 Audio Recording and Management 19 Core Data 20 In App Email 20 Streaming Video 20 Safari Features 21 Shared Keychain Items 21 Accessibility Support 21 Compass Support 22 OpenGL ES 2.0 22 Additional Enhancements 22 UIKit Framework Enhancements 22 Foundation Framework Enhancements 23 Core Audio Enhancements 23 API Changes 24 Document Revision History 25 4 2010-01-22 | © 2010 Apple Inc. All Rights Reserved.
2” (page 7) describes the new and updated features in iPhone OS 3. For a complete list of features you can use in your iPhone applications. this document attempts to provide insight as to how and when you might use those features in your own software. In addition to describing the new features for each iPhone OS release. Organization of This Document 2010-01-22 | © 2010 Apple Inc. Newer versions of this document may be provided with future seeds of the API or technology. For information about how to get the iPhone SDK. This document describes only features that affect the development of iPhone applications.Introduction Important: This is a preliminary document for an API or technology in development. see iPhone OS Technology Overview.2.5 or later. All Rights Reserved. Getting the iPhone SDK Development of iPhone applications requires an Intel-based Macintosh computer running Mac OS X v10. “iPhone OS 3.1” (page 15) describes the new and updated features in iPhone OS 3.0. 5 . it is not final. “iPhone OS 3. This document provides information about features that were introduced in different versions of iPhone OS and that affect the development of iPhone applications. This information is subject to change.com/iphone/. Apple is supplying this information to help you plan for the adoption of the technologies and programming interfaces described herein. Organization of This Document This document includes the following article: ■ ■ ■ “iPhone OS 3.1. You must also download and install the iPhone SDK.apple. and software implemented according to this document should be tested with final operating system software and final documentation. It does not include user-level features unless there is an aspect of the feature that affects application development. Although this document has been reviewed for technical accuracy. Wherever possible.0” (page 17) describes the new and updated features in iPhone OS 3. this document also provides links to other Apple conceptual and reference documentation for that feature. go to http://developer.
All Rights Reserved.Introduction 6 Getting the iPhone SDK 2010-01-22 | © 2010 Apple Inc. .
It runs only on iPad. It typically covers only a small portion of the screen and so does not obscure as much of the underlying content as a modal view might. Note: iPhone OS 3. The views themselves are managed by view controllers that you provide. All Rights Reserved. These content views are typically used to create a master-detail interface. see Views and View Controllers in iPad Programming Guide. 7 . The benefit of using a popover is that: ■ It appears only in response to specific user interactions and is dismissed automatically when the user taps outside of its bounds.2 does not support iPhone and iPod touch devices.iPhone OS 3.2. This behavior makes the popover less obtrusive to the user. whereby selecting an item in one view causes the other view to display detailed information about the selection. be sure to consult iPad Human Interface Guidelines. User Interface Changes 2010-01-22 | © 2010 Apple Inc. this article lists the documents that describe those features in more detail. User Interface Changes Applications running on iPad have several new options for presenting content and receiving input from the user. Split Views The UISplitViewController class is a new container view controller that you use to manage two side-by-side content views. ■ For more information about using popovers in your application. In addition to describing the features. Popovers Popovers are floating views that reside above your application’s window and help you organize the contents of your user interface. This version of the operating system runs on iPad only and many of the corresponding features were designed specifically for that device. For information and guidelines about how to use these new features. Popovers help to eliminate the clutter that might occur in applications that need to display important controls or information in an unobtrusive way that does not distract from the main content.2 This article summarizes the developer-related features introduced in iPhone OS 3.
forwarding any needed notifications to both of them. Accessory views are commonly used to provide additional buttons and controls when the keyboard is displayed. is accessible through the interfaces of the UIKit framework. the associated screen can be used by the application to display content.2 The split view controller coordinates any interactions between your view controllers and the system. including the dimensions that correctly take into account the size and pixel aspect ratio of the screen. the keyboard was the only supported input view. The gesture recognizer object then tracks the raw events and applies the system-defined heuristics for what the given gesture should be. For more information about how to configure and use custom input and accessory views. When connected. Each screen object contains information about the properties of the screen itself. and it was supported only by text view and text field objects. when the user rotates the device. the process for detecting a gesture involved tracking the raw stream of touch events coming to your view and applying potentially complicated heuristics to determine whether the events represented the given gesture. you can provide input views for any of your custom views and have them presented automatically by the system. Information about the screen. (Previously. ■ The UIScreen class provides support for retrieving screen objects for all available screens (including the device’s main screen). You also use that framework to associate your application’s windows with one screen or another.) In addition to input views. see the individual class descriptions in UIKit Framework Reference. 8 User Interface Changes 2010-01-22 | © 2010 Apple Inc. For more information about split views. Windows (represented by the UIWindow class) can now be assigned to a specific screen. see Custom Text Processing and Input in iPad Programming Guide and the UIResponder Class Reference. including its supported resolutions. Prior to gesture recognizers. ■ ■ For more information about the support offered by these classes. you tell it what action you want performed when the gesture occurs. including how to use them in your applications. After attaching it to your view. All Rights Reserved.iPhone OS 3. see Views and View Controllers in iPad Programming Guide. For example. you can also provide a custom accessory view to display above the input view. the split view controller rotates both view controllers together. External Display Support An iPad can be connected to an external display through a set of supported cables. Gesture Recognizers Gesture recognizers are objects that you attach to views and use to detect common types of gestures. The UIScreenMode class provides information about one particular size and pixel aspect ratio setting of a screen. The explicit support now provided by responder objects makes it easy to animate your accessory views into position. Custom Input Views Instances of the UIResponder class now support the ability to display custom input and accessory views when they become the first responder. Now. .
2. there are different protocols for receiving text input. All Rights Reserved.iPhone OS 3. Text Input Support The UIKit framework (UIKit. Depending on your needs.framework) contains a set of simple. Core Text The Core Text framework (CoreText. You can define your own custom gesture recognizer subclasses or use one of the system-supplied subclasses to handle any of the following standard gestures: ■ ■ ■ ■ ■ ■ Tapping (any number of taps) Pinching in and out (for zooming) Panning or dragging Swiping (in any direction) Rotating (fingers moving in opposite directions) Long presses For more information about using gesture recognizers in your application. pasteboard operations. see Core Text Programming Guide and Core Text Reference Collection. selections. such as word processors.2 UIKit now includes a UIGestureRecognizer class that defines the basic behavior for all gesture recognizers. that need more sophisticated text-handling capabilities. ■ The UIKeyInput protocol lets you define simple objects (like text fields) that are capable of character-by-character input. If your application requires only simple text input and display. such as word processing applications. The UITextInput protocol lets you define complex text views that support multiple lines of text. high-performance C-based interfaces for laying out text and handling fonts. 9 . Improved Text Support In iPhone OS 3. If you are implementing an application that requires sophisticated text-handling capabilities. For more information about using the Core Text interfaces.framework) includes new protocols that allow you to implement custom text-input objects. see Gesture Recognizers in iPad Programming Guide. The Core Text framework provides a complete text layout engine that you can use to manage the placement of text on the screen. The text you manage can also be styled with different fonts and rendering attributes. you can use these protocols to implement new views and controls for receiving incoming text. This support is provided for applications. and more. you should continue to use the existing classes of the UIKit framework. there is significant new support for text input and rendering. ■ Improved Text Support 2010-01-22 | © 2010 Apple Inc. Which protocols you use will depend on the complexity of your user interface. This framework is intended for use by applications that require sophisticated text handling capabilities.
see Information Property List Key Reference. Here’s how it works: 1.plist file. there is new support for exchanging and opening files. or dragging new files in. All Rights Reserved. a mount point is added to the system and the contents of any shared directories appear on the user’s desktop.2 of the International Components for Unicode (ICU) libraries. It puts whatever files it wants to share in its Documents/Shared directory. .plist file. 3. ICU is an open-source project for Unicode support and software internationalization.2. For more information about the keys you can include in your application’s Info. see the documentation and user guide at http://icu-project. 10 File and Document Support 2010-01-22 | © 2010 Apple Inc. ICU Regular-Expression Support The BSD layer of iPhone OS now exposes a modified version of 4. The installed version of ICU includes only those header files necessary to support regular expressions. An application indicates that it wants to share files by including the UIFileSharingEnabled key in its Info. it loads the specified fonts and makes them available to the application. 4. similar to what you might find on a desktop computer. Users can modify the contents of this directory freely by copying files out. This support makes it easier to implement more document-centric applications. Custom Font Support Applications that want to use custom fonts can now include those fonts in their application bundle and register those fonts with the system by including the UIAppFonts key in their Info.2 For more information about how to use the text input support to implement your own custom objects.2 library.org/apiref/icu4c/index.html. The value of this key is an array of strings identifying the font files in the application’s bundle. When the system sees the key.plist file. deleting files. For more information about using the functions of the ICU 4. while still maintaining a simplified interface for your users. File and Document Support In iPhone OS 3. 2.iPhone OS 3. see Custom Text Processing and Input in iPad Programming Guide. When the device is plugged into the user’s computer. File-Sharing Support Applications that want to share files with the user can now do so using the file-sharing support in iPhone OS 3.2.
see The Core Application in iPad Programming Guide Document Support An application can now register the file types it supports with the system and receive notifications when a file of the given type needs to be opened. Core Graphics. For more information about supporting documents. including the following: Xcode Tools 2010-01-22 | © 2010 Apple Inc.) For more information about how to use the new UIKit functions to create PDF content. Xcode Tools Xcode includes new features to make developing applications that run on iPad much simpler. It does this by implementing the application:didFinishLaunchingWithOptions: method in its application delegate and look for a file in the UIApplicationLaunchOptionsURLKey key of the provided dictionary. The document interaction controller provides options for previewing the contents of a file in place or opening it in another application. The UIKit functions manage the setup and pagination for the PDF data. if the user added files to the directory. Core Text.2 Applications that support file sharing should recognize when files have been added to the directory or removed and respond appropriately.plist file. nor should your application rely on any files being in this directory. 11 . You can use this support to generate PDF-based content for use within your application or for storing to the local disk. All Rights Reserved. You provide the actual content using the same native platform graphics technologies (UIKit.iPhone OS 3. It is strictly for sharing files with the user’s computer. For detailed information about how to support file sharing in your own applications. For example. An application that registers one or more file types may also be expected to open files of those types at some point later. see The Core Application in iPad Programming Guide. Complimenting the ability to open files of known types is the addition of the UIDocumentInteractionController class in the UIKit framework. It does this by including the CFBundleDocumentTypes key in its Info. (You cannot draw to a PDF context directly using OpenGL commands. and so on) already available for drawing to the screen. Document interaction controllers are particularly useful for email applications or applications that may download files from the network. This class provides a user-based interaction model for managing files that your application does not know how to open. your iPad application might make those files available from its interface. However. PDF Generation The UIKit framework (UIKit. you can transfer the pixels of your rendered content to a CGImageRef data type and draw that. see Graphics and Drawing in iPad Programming Guide. You should never expect the user to go searching for files in this directory.framework) includes new functions for generating PDF files and data objects from your application’s custom content.
UIKit Framework Changes The UIKit framework includes the following additions: ■ The UIBezierPath class is a new class that supports the creation of vector-based shapes. Paste. all you have to do is import the resulting data file into Xcode on that computer. described in “Split Views” (page 7). You can use custom menu items to augment the Cut.2 ■ Xcode simplifies the process of sharing code between your iPhone and iPad applications by helping you update your existing iPhone projects to include the necessary files to support iPad. Interface Builder supports the new view controllers and window sizes available for iPad. described in “Custom Input Views” (page 8). . Support for previewing and opening documents. described in “External Display Support” (page 8) Support for creating PDF files. To begin developing on a new computer. Copy. The UISplitViewController class. and Select behavior provided by the system. Support for gesture recognizers. Xcode simplifies the validation and submission process of your applications by allowing you to debug signed applications. described in “PDF Generation” (page 11). The Transition command (in the Project menu) creates a new target for the iPad and modifies a copy of your project’s nib files to support the larger screen size. Modal view controllers can now be presented in a style other than full screen. The UIMenuController class now allows you to add custom menu items. Support for implementing custom input and accessory views. The UIViewController class includes a modalPresentationStyle property that allows you to present modal view controllers using one of several predefined styles. The Organizer window includes an option to export your profile and certificate information. ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ 12 API Changes 2010-01-22 | © 2010 Apple Inc. described in “Gesture Recognizers” (page 8). ■ ■ ■ API Changes The following frameworks and technologies include additional incremental changes.iPhone OS 3. For more information on how to use this command. All Rights Reserved. Support for getting information about externally connected displays. Support for popovers. described in “Popovers” (page 7). You can now easily transfer your iPhone developer identity information to a new computer. see iPad Programming Guide. described in “Document Support” (page 11). This class provides an object-oriented wrapper around Core Graphics paths. The UIScrollViewDelegate protocol includes additional methods for processing zoom-related events in a scroll view.
iPhone OS 3. see Media Player Framework Reference. ■ MapKit Framework Changes The MKReverseGeocoder class now includes a placemark property for accessing the placemark that was computed by the reverse geocoding service. Core Animation Changes The Core Animation technology (defined in QuartzCore. All Rights Reserved. You can use this property to retrieve placemark information after the results are reported to the associated delegate object.2 Media Player Framework Changes The video classes in the Media Player framework (MediaPlayer. This class also includes more sophisticated support for managing and controlling the playback of movies. Foundation Framework Changes The NSString class now includes the ability to search the text of a string using regular expressions. For situations where you want a simpler alternative to movie presentation. You can configure the rasterization behavior of the layer using the shouldRasterize and rasterizationScale properties. Instead of simply playing a video full screen. For information about the new classes available in this framework. This new class provides a view controller-based wrapper for a movie interface and is for applications that want the same basic behavior offered by the older movie player controller design. which you can use in conjunction with the following methods: ■ ■ ■ rangeOfString:options: rangeOfString:options:range: rangeOfString:options:range:locale: API Changes 2010-01-22 | © 2010 Apple Inc. shadowColor. The NSStringCompareOptions type includes a new flag called NSRegularExpressionSearch. you can now use the MPMoviePlayerViewController class. shadowOffset.framework) includes the following additional features: ■ ■ The CATextLayer class is now available for incorporating text-based content into your layer hierarchies. the MPMoviePlayerController class now vends a view that you can incorporate into your interface however you want.framework) have been redesigned to give you more control over the presentation of video content. 13 . You can now apply shadow effects to a layer and customize the appearance of the shadow using the shadowOpacity. shadowRadius. and shadowPath properties.
For more information about regular expressions in the ICU library. you should check both the location and range length of the result. When performing regular expression searches.iPhone OS 3. the search methods always return a range whose location is set to NSNotFound and whose length is 0.2 When you pass the NSRegularExpressionSearch as an option.org/.icu-project. the only other options you can include in the mask parameter are the NSCaseInsensitiveSearch and the NSAnchoredSearch flags. . the search string is interpreted as a regular expression instead of a string literal. 14 API Changes 2010-01-22 | © 2010 Apple Inc. go to http://site. The regular expression syntax conforms to the syntax used by the International Components for Unicode (ICU) library. see NSString Class Reference. If a match was unsuccessful. Because some regular expressions can trigger a match but still return a zero-length range. All Rights Reserved. For more information about the NSString class and its methods.
For more information about how to use this feature. the Instruments application includes support for gathering performance data wirelessly over Wi-Fi.1. which provides a standard user interface for editing video clips on supported devices. 15 . For example. Video Editing Support 2010-01-22 | © 2010 Apple Inc.iPhone OS 3. All Rights Reserved.1 This article summarizes the features that are available beginning with iPhone OS 3. Video Editing Support The UIKit framework now includes the UIVideoEditorController class. Instruments In iPhone OS 3. For more information about how to use this class. Graphics-intensive applications can use these notifications as a signal to begin preparing the next frame of content.1. the CADisplayLink class is essentially a timer whose notifications are synchronized with the screen refresh rate (or some partial interval thereof ). see Instruments User Guide. Core Animation Enhancements Introduced in iPhone OS 3.1 and later. For the latest updates and information. This support allows you to gather performance metrics for applications that might need to use the 30-pin dock connector for other purposes. see CADisplayLink Class Reference. you should also see iPhone SDK Release Notes for iPhone OS 3.1. you could use it to gather performance data for an application that is communicating with an external accessory.
. All Rights Reserved.1 16 Instruments 2010-01-22 | © 2010 Apple Inc.iPhone OS 3.
together with your application’s own custom selection behavior. or add a numbered badge to your application icon. These types represent some of the most common data types and make it easier to exchange content between applications. The UIPasteboard object provides built-in support for storing standard data types such as strings. 17 . First. even when your application is not actively running. Apple Push Notification Service 2010-01-22 | © 2010 Apple Inc. trigger audible alerts. to allow the user to cut. you can also exchange content in custom data formats supported only by your application or in more standardized interchange formats. paste. Paste. images. you need to request the delivery of notifications to your iPhone application and then you need to configure your application delegate to process them. and Select all commands. and select custom content. there are two parts to making push notifications work for your iPhone applications. From a design standpoint. colors. Copy.0 This article summarizes the key features that are available beginning with iPhone OS 3. which manages the content on the systemwide pasteboards. the UITextField. Second. 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. These messages let users know that they should open your application to receive the related information. Copy. you need to provide a server-side process to generate the notifications in the first place. One of the key new classes is the UIPasteboard class. Using this service. The delegate works together with the shared UIApplication object to perform both of these tasks. All Rights Reserved. see Apple Push Notification Service Programming Guide. In particular. However. You can use the new classes to incorporate support cut. You use this class. Apple Push Notification Service The Apple Push Notification Service provides a way to alert your users of new information. Several existing UIKit views now provide automatic support for text selection and pasteboard operations. It also lists many of the documents that were created or updated for the release. copy. For custom views. UITextView. Select. you can push text notifications. 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. the UIKit framework also includes the UIMenuController class for managing the editing menu. and Paste The UIKit framework provides new classes to support pasteboard operations and also incorporates selection and pasteboard behaviors into some existing UIKit views. Cut. and URLs. and UIWebView classes automatically handle text selections and the display of an editing menu with the appropriate Cut. and paste behaviors into your application.0.iPhone OS 3. copy. It is through this class that you can now store selected content and transfer it within your application or to other applications.
Accessory Support The External Accessory framework (ExternalAccessory.0 For information about how to incorporate pasteboard support into your application. ensuring that transactions occur securely and correctly. and paste operations. go to http://developer. you could use this feature to allow the user to unlock additional application features. see In App Purchase Programming Guide and Store Kit Framework Reference. this framework provides support for peer-to-peer connectivity and in-game voice features. see External Accessory Framework Reference. copy. Accessories can be connected through the 30-pin dock connector of a device or wirelessly using Bluetooth.framework) provides a means for you to make additional content and services available from within your iPhone applications. including the presentation of a purchasing interface and the downloading (or unlocking) of the appropriate content.apple. All Rights Reserved. These classes abstract out many of the network details.com. you are free to manipulate the accessory directly using any commands it supports. 18 Accessory Support 2010-01-22 | © 2010 Apple Inc.iPhone OS 3. Or if you are a game developer. You decide what kind of purchasing interface you want to present to the user and when to do so. The External Accessory framework provides a way for you to get information about each available accessory and to initiate communications sessions. see Device Support 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.framework) provides support for communicating with hardware accessories attached to an iPhone or iPod touch device. Peer to Peer Support The Game Kit framework (GameKit. For more information about how to use this framework. you can incorporate them into non-game applications as well. For example. The Store Kit focuses on the financial aspects of a transaction. The framework provides you with networking features through a simple (yet powerful) set of classes built on top of Bonjour. For information about how to use the Store Kit framework. This division of labor gives you control over the user experience for purchasing content. For information about developing accessories for iPhone and iPod touch devices. In App Purchase Support The Store Kit framework (StoreKit. processing payment requests through the user’s iTunes Store account and providing your application with information about the purchase.framework) lets you add peer-to-peer network capabilities to your applications. the Store Kit framework handles the financial aspects of the transaction. Specifically. For information about the classes of the External Accessory framework. After that. In both cases. see Event Handling in iPhone Application Programming Guide. You also decide on the delivery mechanism that works best for your application. Your application handles the other aspects of the transaction. making it easy for developers who might be inexperienced with networking programming to incorporate networking features into their applications. Although these features are most commonly found in multiplayer network games. you could use it to offer additional game levels.
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.0 For more information about how to use the Game Kit framework. see Game Kit Programming Guide and Game Kit Framework Reference.iPhone OS 3.framework) includes the following new classes and protocols for recording audio and managing audio sessions: ■ The AVAudioRecorder class provides audio recording capabilities. on-the-go. New constants for configuring audio formats. Based on the behavior of this interface within the Maps application. You can use these classes to perform the following tasks: ■ Play audio items from the user’s library. 19 . The AVAudioSession class provides control over audio context including audio session category. You can embed this view inside of your own application views and programmatically set various attributes of the map. This class works together with an audio delegate (conforming to the AVAudioRecorderDelegate protocol) to manage state changes during recording. see Media Player Framework Reference. sample rate. All Rights Reserved. see MapKit Framework Reference.framework) provides a map interface that you can embed into your own application. Perform searches of the user’s audio library. This class works with an audio session delegate (conforming to the AVAudioSessionDelegate protocol) to respond to audio hardware route changes and audio interruptions. and sample rate conversion for recording. this interface provides a scrollable map view that can be annotated with custom information. Construct queues of audio items to play back. including the currently displayed map region and the user’s location.framework) to allow access to the user’s audio library. ■ ■ Maps API 2010-01-22 | © 2010 Apple Inc. audio encoding. iPod Library Access Several new classes and protocols have been added to the Media Player framework (MediaPlayer. This support lets you play all audio types supported by the iPod application. Audio Recording and Management The AV Foundation framework (AVFoundation. and I/O buffer duration. Maps API The Map Kit framework (MapKit. and genius playlists). ■ ■ ■ For more information about the classes of the Media Player framework. For more information about the classes of the Map Kit framework. Access the user’s playlists (including smart.
you use the graphical tools in Xcode to build a schema representing your data model. The user then has the option of editing the message prior to accepting it. For more information about the classes of the Message UI framework. Streamed content can be played back on an iPhone OS–based device using the MPMoviePlayerController class.framework) is a technology for managing the data model of a Model-View-Controller application. . 20 Core Data 2010-01-22 | © 2010 Apple Inc. In App Email The Message UI framework (MessageUI. see AV Foundation Framework Reference. The composition support consists of a view controller interface that you can present in your application. subject.framework) is a new framework that provides support for composing and queuing email messages in the user’s outbox. filtering. For more information about the classes of the Core Data framework. see Core Data Framework Reference. managed. For an example of how to use Core Data in an iPhone application.0 For more information about the classes of the AV Foundation framework. The semantics of using this class have not changed. Core Data is intended for use in applications where the data model is already highly structured. Streaming Video There is now support for the playback of live video streamed over http. All Rights Reserved. You can populate the fields of this interface with the contents of the message you want to send. 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. body content. Once accepted. Core Data significantly reduces the amount of code you have to write for your application. Instead of defining data structures programmatically. the message is queued in the user’s outbox for delivery. and organizing data in memory If you are starting to develop a new application or are planning a significant update to an existing application. instances of your data-model entities are created. Core Data The Core Data framework (CoreData. At runtime. you should consider using Core Data. and made available through the Core Data framework. You can set the recipients. The main differences are in the preparation of the streamed content and how it is published on a web server.iPhone OS 3. and any attachments you want to include with the message. see Message UI Framework Reference. By managing your application’s data model for you. see Core Data Tutorial for iPhone OS.
Heading information obtained from such devices can be used to implement a real-time compass or other navigation-related programs.1 specification. For more information about OpenGL ES 2. you can use the new accessibility interfaces in UIKit to improve on the default support and provide more accurate descriptions of your application’s views and controls. and paste operations. For information about how to make your own applications accessible. Note: OpenGL ES 1. Providing more context-aware descriptions gives disabled users better access to your application’s content.0 Applications can now take advantage of the OpenGL ES 2. OpenGL ES 2. .1 is supported on all iPhone OS–based devices. such as cut.0.0 is a new version of the OpenGL ES specification that offers features not available in OpenGL ES 1. UIKit Framework Enhancements The UIKit framework (UIKit. and about OpenGL ES support in general.framework) has been enhanced to support major new features in iPhone OS 3. OpenGL ES 2. All Rights Reserved.0 is supported only on newer hardware. see Accessibility Programming Guide for iPhone OS. In addition. including fragment and vertex shaders. the new version provides support for shaders. Additional Enhancements In addition to the major new features in iPhone OS.0 specification on iPhone OS–based devices with appropriate graphics hardware. whereas OpenGL ES 2. several frameworks and technologies have received incremental updates to improve the development experience. The use of shaders now eliminates the need for many of the fixed function interfaces that were part of the OpenGL ES 1.0 in particular. All standard system views and controls now provide default descriptions for use by VoiceOver. Specifically. Compass Support The Core Location framework now includes support for obtaining heading information from iPhone OS–based devices with a built-in magnetometer. For more information about accessing compass information.iPhone OS 3. see OpenGL ES Programming Guide for iPhone OS. copy. However.0 Developers can make their own applications accessible to VoiceOver users by taking advantage of the support built-in to the UIKit framework. this framework has some new classes and has minor improvements to existing classes. see Core Location Framework Reference. including the following: 22 Compass Support 2010-01-22 | © 2010 Apple Inc.1.
Core Audio Enhancements Enhancements have been made to the Audio Toolbox. Enhanced support in UIWebView for displaying previews of RTF. and UIWebView classes to support the selection of text and to support cut. including the new UISearchDisplayController class to manage search results New support for one-step view rotations from a view controller. RTFD.0 ■ New classes (UIPasteboard and UIMenuController) and general improvements to the UITextField. see iPhone Human Interface Guidelines. you use shake events to initiate undo operations but you may use them for other purposes as well. iWork. more table reloading options. and Core Audio frameworks. which allows the creation of 3. UITextView. including the following additions: Additional Enhancements 2010-01-22 | © 2010 Apple Inc. Typically. Foundation Framework Enhancements The Foundation framework (Foundation. see UIKit Framework Reference. copy. including support for new cell styles. Support for content stretching in the UIView class. and addresses) should be automatically detected in text and converted to clickable links. For guidance on when to use the new features in your applications. There is also a new class (UILocalizedIndexedCollation) to help with data sorting and organization for table view sections. and Office documents ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ For more information about the classes of the UIKit framework. All Rights Reserved. see Foundation Framework Reference. NSComparisonPredicate.iPhone OS 3. URLS. Support in the UIDevice class for accessing the battery state and proximity sensor Support for capturing video (on hardware that supports it) using the UIImagePickerController class Enhancements to search bar controls. This support lets you configure what types of data (phone numbers. and paste operations Support for handling “motion” events. 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. NSPredicate. 23 .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. PDF. Audio Unit. and support for customizing the title of delete confirmation buttons. and NSValueTransformer classes to support Core Data For more information about the classes of the Foundation framework. which currently consist of shake events. see Event Handling in iPhone Application Programming Guide for more information. see UINavigationController Class Reference Improvements to table views. see UIViewController Class Reference New modal transition styles. NSCompoundPredicate.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.
0 and iPhone OS 2. hardware. 24 API Changes 2010-01-22 | © 2010 Apple Inc. see Audio Toolbox Framework Reference.1 API Diffs and iPhone 2. This support effectively allows you to play multiple compressed files simultaneously (one using the hardware decoder and one or more using the software decoder). and Core Audio Framework Reference. see iPhone 2.0.0 ■ New support for decoding MP3 and AAC audio content in software.2 and iPhone OS 3.2. see iPhone OS 3. or both Enhanced support in the Audio Unit framework for registering your audio units and connecting audio unit processing graphs in your iPhone application Support for three new audio formats: ❏ ❏ ❏ ■ ■ ■ DVI/Intel IMA ADPCM Microsoft GSM 6. For information about the changes that occurred between iPhone OS 2.2 API Diffs.10 AES3-2003 For more information about the Core Audio interfaces. .iPhone OS 3. All Rights Reserved. Audio Unit Framework Reference. API Changes For information about the changes that occurred between iPhone OS 2.0 API Diffs. Enhanced support in the Audio Toolbox framework for determining if audio codecs are available in software.
Date 2010-01-22 Notes Moved the iPhone OS 3.x versions of iPhone OS. .0 article to reflect features introduced in all 3.2. Added new features related to the introduction of new iPhone hardware. Updated the iPhone OS 3. All Rights Reserved. 2009-08-27 2009-06-16 25 2010-01-22 | © 2010 Apple Inc.Document Revision History This table describes the changes to What's New in iPhone OS.1 information to its own article and added a new article covering features in iPhone OS 3.
. All Rights Reserved.Document Revision History 26 2010-01-22 | © 2010 Apple Inc.
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.