iOS Developer Tools
To develop applications for iOS, you need an Intel-based Macintosh computer and the Xcode tools. Xcode is Apple’s suite of development tools that provide support for project management, code editing, building executables, source-level debugging, source-code repository management, performance tuning, and much more. At the center of this suite is the Xcode application itself, which provides the basic source-code development environment. Xcode is not the only tool, though, and the following sections provide an introduction to the key applications you use to develop software for iOS.
Xcode
The focus of your development experiences is the Xcode application. Xcode is an integrated development environment (IDE) that provides all of the tools you need to create and manage your iOS projects and source files, assemble your user interface, build your code into an executable, and run and debug your code either in iOS Simulator or on a device. Xcode incorporates a number of features to make developing iOS applications easier, including the following:- A project management system for defining software products
- A code-editing environment that includes features such as syntax coloring, code completion, and symbol indexing
- An integrated editor for creating storyboard and nib files
- An advanced documentation viewer for viewing and searching Apple documentation
- A context-sensitive inspector for viewing information about selected code symbols
- An advanced build system with dependency checking and build rule evaluation
- LLVM and Clang support for C, C++, and Objective-C
- GCC compilers supporting C, C++, Objective-C, Objective-C++, and other languages
- A static analyzer for validating the behavior of your app and identifying potential problems.
- Integrated source-level debugging using GDB
- Support for integrated source-code management
- Support for DWARF and Stabs debugging information (DWARF debugging information is generated by default for all new projects)
- Support for managing iOS development devices.
When you build your application in Xcode, you have a choice of building it for iOS Simulator or for a device. Simulator provides a local environment for testing your applications to make sure they behave essentially the way you want. After you are satisfied with your application’s basic behavior, you can tell Xcode to build your application and run it on an iOS-based device connected to your computer. Running your application on a device provides the ultimate test environment, and Xcode lets you attach the built-in debugger to the code running there.
Instruments
To ensure that you deliver the best user experience for your software, the Instruments environment lets you analyze the performance of your iOS applications while running in Simulator or on a device. Instruments gathers data from your running application and presents that data in a graphical display called the timeline view. You can gather data about your application’s memory usage, disk activity, network activity, and graphics performance. The timeline view can display all the types of information side by side, letting you correlate the overall behavior of your application, not just the behavior in one specific area. To get even more detailed information, you can also view the detailed samples that Instruments gathers.
In addition to providing the timeline view, Instruments provides tools to help you analyze your application’s behavior over time. For example, the Instruments window lets you store data from multiple runs so that you can see whether your application’s behavior is actually improving or whether it still needs work. You can save the data from these runs in an Instruments document and open them at any time.
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/Frameworks
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. Name | First available | Prefixes | Description |
---|---|---|---|
Accelerate.framework | 4.0 | cblas , vDSP | Contains accelerated math and DSP functions. See Accelerate Framework Reference. |
Accounts.framework | 5.0 | AC | Contains interfaces for managing access to a user’s system accounts. See Accounts Framework Reference. |
AddressBook.framework | 2.0 | AB | Contains functions for accessing the user’s contacts database directly. See Address Book Framework Reference for iOS. |
AddressBookUI.framework | 2.0 | AB | Contains classes for displaying the system-defined people picker and editor interfaces. See Address Book UI Framework Reference for iOS. |
AssetsLibrary.framework | 4.0 | AL | Contains classes for accessing the user’s photos and videos. See Assets Library Framework Reference. |
AudioToolbox.framework | 2.0 | AU , Audio | Contains the interfaces for handling audio stream data and for playing and recording audio. See Audio Toolbox Framework Reference. |
AudioUnit.framework | 2.0 | AU , Audio | Contains the interfaces for loading and using audio units. See Audio Unit Framework Reference. |
AVFoundation.framework | 2.2 | AV | Contains Objective-C interfaces for playing and recording audio and video. See AV Foundation Framework Reference. |
CFNetwork.framework | 2.0 | CF | Contains interfaces for accessing the network via Wi-Fi and cellular radios. See CFNetwork Framework Reference. |
CoreAudio.framework | 2.0 | Audio | Provides the data types used throughout Core Audio. See Core Audio Framework Reference. |
CoreBluetooth.framework | 5.0 | CB | Provides access to low-power Bluetooth hardware. |
CoreData.framework | 3.0 | NS | Contains interfaces for managing your application’s data model. See Core Data Framework Reference. |
CoreFoundation.framework | 2.0 | CF | Provides fundamental software services, including abstractions for common data types, string utilities, collection utilities, resource management, and preferences. See Core Foundation Framework Reference. |
CoreGraphics.framework | 2.0 | CG | Contains the interfaces for Quartz 2D. See Core Graphics Framework Reference. |
CoreImage.framework | 5.0 | CI | Contains interfaces for manipulating video and still images. See Core Image Reference Collection. |
CoreLocation.framework | 2.0 | CL | Contains the interfaces for determining the user’s location. See Core Location Framework Reference. |
CoreMedia.framework | 4.0 | CM | Contains low-level routines for manipulating audio and video. See Core Media Framework Reference. |
CoreMIDI.framework | 4.2 | MIDI | Contains low-level routines for handling MIDI data. See Core MIDI Framework Reference. |
CoreMotion.framework | 4.0 | CM | Contains interfaces for accessing accelerometer and gyro data. See Core Motion Framework Reference. |
CoreTelephony.framework | 4.0 | CT | Contains routines for accessing telephony-related information. See Core Telephony Framework Reference. |
CoreText.framework | 3.2 | CT | Contains a text layout and rendering engine. See Core Text Reference Collection. |
CoreVideo.framework | 4.0 | CV | Contains low-level routines for manipulating audio and video. Do not use this framework directly. |
EventKit.framework | 4.0 | EK | Contains interfaces for accessing a user’s calendar event data. See Event Kit Framework Reference. |
EventKitUI.framework | 4.0 | EK | Contains classes for displaying the standard system calendar interfaces. See Event Kit UI Framework Reference. |
ExternalAccessory.framework | 3.0 | EA | Contains interfaces for communicating with attached hardware accessories. See External Accessory Framework Reference. |
Foundation.framework | 2.0 | NS | Contains interfaces for managing strings, collections, and other low-level data types. See Foundation Framework Reference. |
GameKit.framework | 3.0 | GK | Contains the interfaces for managing peer-to-peer connectivity. See Game Kit Framework Reference. |
GLKit.framework | 5.0 | GLK | Contains Objective-C utility classes for building complex OpenGL ES applications. See GLKit Framework Reference. |
GSS.framework | 5.0 | gss | Provides a standard set of security-related services. |
iAd.framework | 4.0 | AD | Contains classes for displaying advertisements in your application. See iAd Framework Reference. |
ImageIO.framework | 4.0 | CG | Contains classes for reading and writing image data. See Image I/O Reference Collection. |
IOKit.framework | 2.0 | N/A | Contains interfaces used by the device. Do not include this framework directly. |
MapKit.framework | 3.0 | MK | Contains classes for embedding a map interface into your application and for reverse-geocoding coordinates. See Map Kit Framework Reference. |
MediaPlayer.framework | 2.0 | MP | Contains interfaces for playing full-screen video. See Media Player Framework Reference. |
MessageUI.framework | 3.0 | MF | Contains interfaces for composing and queuing email messages. See Message UI Framework Reference. |
MobileCoreServices.framework | 3.0 | UT | Defines the uniform type identifiers (UTIs) supported by the system. |
NewsstandKit.framework | 5.0 | NK | Provides interfaces for downloading magazine and newspaper content in the background. See Newsstand Kit Framework Reference. |
OpenAL.framework | 2.0 | AL | Contains the interfaces for OpenAL, a cross-platform positional audio library. For more information, go to http://www.openal.org. |
OpenGLES.framework | 2.0 | EAGL , GL | Contains the interfaces for OpenGL ES, which is an embedded version of the OpenGL cross-platform 2D and 3D graphics rendering library. See OpenGL ES Framework Reference. |
QuartzCore.framework | 2.0 | CA | Contains the Core Animation interfaces. See Quartz Core Framework Reference. |
QuickLook.framework | 4.0 | QL | Contains interfaces for previewing files. See Quick Look Framework Reference. |
Security.framework | 2.0 | CSSM , Sec | Contains interfaces for managing certificates, public and private keys, and trust policies. See Security Framework Reference. |
StoreKit.framework | 3.0 | SK | Contains interfaces for handling the financial transactions associated with in-app purchases. See Store Kit Framework Reference. |
SystemConfiguration.framework | 2.0 | SC | Contains interfaces for determining the network configuration of a device. See System Configuration Framework Reference. |
Twitter.framework | 5.0 | TW | Contains interfaces for sending tweets via the Twitter service. See Twitter Framework Reference. |
UIKit.framework | 2.0 | UI | Contains classes and methods for the iOS application user interface layer. See UIKit Framework Reference. |
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.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
directory, 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 user’s system.
No hay comentarios:
Publicar un comentario