iOS Developer Library一覧

(2015/10/13時点)
引用元：https://developer.apple.com/library/ios/navigation/

大枠を眺めて全容を掴むために作成。(正確な情報は必ず本家サイトを参照ください)
★：よく使う主要なもの(個人主観)

# Frameworks

## 1. Cocoa Touch Layer

Cocoa Touch層におけるフレームワークを使ってグラフィカルなイベント駆動型iOSアプリケーションを実装します。ユーザーの連絡先のようなキーデバイス機能へアクセスする場合にもこのフレームワークを使用します。低レベル層の詳細を知らなくても自動的に利点が得られる、最も上位層であるCocoa Touch LayerであなたのiOSプログラミングを始めましょう。
Implement a graphical, event-driven application in iOS with the frameworks in the Cocoa Touch Layer. In addition, use the frameworks in this layer to access key device features, such as user contacts. Start your iOS programming at this highest layer, and you'll automatically take advantage of lower-level layers without getting into their details.

| name | description |
|---|---|
|AddressBookUI| Use the Address Book UI framework to display the contact data contained in the Address Book database.<br> This C-based framework provides a graphical interface to gain access to users' contacts. |
|ContactsUI :new:| Use the Contacts UI framework to display the data contained in the Contacts database. <br>This framework provides a graphical interface to gain access to users' contacts.|
|EventKitUI| Create the user interface for viewing and editing calendar data with the Event Kit UI framework. |
|~~GameKit~~| ~~Add networking capabilities to applications with the Game Kit framework.<br> Although you can use this framework in any type of application, it is commonly used to implement the kind of <br>peer-to-peer connectivity and in-game voice features found in multiplayer games.~~ |
|MapKit| Display map or satellite imagery from the windows and views of your custom applications with the Map Kit framework.<br> You can also use the framework to annotate your maps with points of interest and other custom information. |
|MessageUI| Create a view-controller-based user interface for composing email messages.<br> Use it in cases where you want the user to be able to create email messages without leaving your application. |
|NotificationCenter| Display information and enable brief tasks in a Today widget with the Notification Center framework. |
|PhotosUI| Provide extensions for editing photos and videos with the Photos UI framework.<br> A custom photo editing extension can be used from any app on a user's device. |
|ReplayKit :new:| ReplayKit provides developers with the ability to record audio and video directly from their apps.<br> Users can then share these recordings with others through email, text messages,<br> and social websites. |
|Twitter| Send tweets from your app using the Twitter framework.<br> You can also use this framework to simplify the authorization process when using the Twitter API. |
|UIKit★| Construct and manage your application's user interface with the UIKit framework.<br> This Objective-C framework provides an application object, event handling support,<br> drawing support, windows, views, and controls designed specifically for the Multi-Touch interface. |
|WatchKit :new:| Implement the interface for your watchOS apps using the WatchKit framework. |
|iAd| Place full-screen advertisements or banner advertisements in your application with the iAd framework. |

## 2. Media Layer

Media層内のフレームワークと、モバイルデバイス上で利用可能な最高のマルチメディア体験を作成します。
Create the best multimedia experience available on a mobile device with the frameworks in the Media layer.

| name | description |
|---|---|
|AVFoundation| Record, edit, and play audio and video, configure your audio session, <br>and respond to changes in the device audio environment with the AV Foundation framework. |
|AVKit :new:| Create view-level services for media playback, complete with user controls, chapter navigation, and support for subtitles and closed captioning. The AVKit framework is your ideal starting point for transitioning QuickTime-based applications to AV Foundation. |
|AssetsLibrary| Gain access to the assets in a user's media library with the Assets Library framework. |
|AudioToolbox| Record or play audio, convert formats, parse audio streams, <br>and configure your audio session with opaque types from the Audio Toolbox framework |
|AudioUnit| Open, connect to, and use audio plug-ins, known as audio units, with the Audio Unit framework. |
|CoreAudio| Represent audio streams, complex buffers, and time values with essential data types from the Core Audio framework. |
|CoreAudioKit :new:| Provide user interfaces for Cocoa-based audio units with the CoreAudioKit framework. |
|CoreGraphics| Handle 2D rendering tasks using the Core Graphics framework. Use this C-based API,<br> which is based on the Quartz drawing engine, for path-based drawing, anti-aliased rendering, gradients,<br> images, color management, and PDF document handling. |
|CoreImage| Perform image processing and video image manipulation with the Core Image framework. |
|CoreMIDI| Communicate with MIDI devices, including hardware keyboards and synthesizers, using the Core MIDI framework.<br> Connect using the dock connector or a network. |
|CoreText| Layout text and perform font handling with the Core Text framework.<br> The text layout API provides high-quality typesetting, including character-to-glyph conversion and positioning of glyphs<br> in lines and paragraphs. The complementary font technology provides features such as automatic font substitution (cascading),<br> font descriptors and collections, and easy access to font metrics and glyph data. |
|CoreVideo| Playback and process movies, with access to individual frames, with the Core Video framework.<br> This C-based framework provides a low-level, pipeline-based API for working with movies.<br> You can use it to work with pixel buffers, OpenGL buffers, and OpenGL textures. |
|GLKit| Shorten the time required to create OpenGL ES applications by using the GLKit framework.<br> GLKit includes math libraries, a standard view and view controller to implement your rendering loop,<br> background texture loading and pre-created shader effects. |
|GameController| Support hardware game controller inputs using the Game Controller framework.<br> This Objective-C framework allows you to discover connected controllers,<br> connect new controllers to the device, and read the inputs of connected controllers. |
|ImageIO| Read and write most image file formats with the Image I/O framework.<br> This C-based framework also supports color management and access to image metadata. |
|MediaAccessibility| Coordinate the presentation of closed-captioned data for your app's media files using the Media Accessibility framework. |
|MediaPlayer| Find and play user-installed media items including songs, audio podcasts, and audio books with the Media Player framework.<br> You can also use it to play custom movie files, such as those used for cut scenes in games. |
|Metal| Render hardware-accelerated advanced 3D graphics and perform data-parallel computation workloads by using the Metal framework.<br> Metal gives fine-grain access to the graphics processor while minimizing CPU overhead. |
|MetalKit :new:| Shorten the time required to create Metal applications by using the GLKit framework. MetalKit includes a standard view that displays metal content, background texture loading and integration with ModelKit. |
|MetalPerformanceShaders :new:| Add low-level and high-performance image manipulation using the MetalPerformanceShaders framework. MetalPerformanceShaders provides standard image processing routines that can be queued alongside other Metal rendering commands. |
|ModelIO :new:| Import, export, and manipulate 3D models using Model I/O. Model I/O provides a common infrastructure for working with 3D assets and related resources, and integrates with MetalKit, GLKit, and SceneKit for rendering. |
|~~OpenAL~~| ~~Build compelling games for iOS using low-latency, positional audio playback.<br> OpenAL enables you to immerse users in directional sound that tracks onscreen animations.<br> Built upon Core Audio, OpenAL in iOS provides high performance and excellent audio quality.~~ |
|OpenGLES| Use a compact, efficient subset of the OpenGL API for 2D and 3D drawing on mobile devices.<br> The OpenGL ES framework includes EAGL, a C-based API that supports the integration of OpenGL ES rendering<br> with Core Animation layers and UIKit views.<br> You can also use EAGL to render to pixel buffers |
|Photos| Work with image and video assets and collections managed by the Photos app,<br> including iCloud Photos, using the Photos framework.<br> This API supports asynchronously fetching and caching thumbnails or full-sized assets,<br> as well as making edits to asset content that a user can later resume working with. |
|QuartzCore| Use the Quartz Core framework to configure animations and effects that are then rendered in hardware for optimal performance.<br> This framework contains the advanced animation and compositing technology known as Core Animation. |
|SceneKit| Use Scene Kit to integrate 3D models into the UI for an app. |
|SpriteKit| Create 2D sprite-based games using the Sprite Kit framework.<br> This Objective-C framework provides an optimized animation system, physics simulation,<br> and event-handling support. |

## 3. Core Services Layer

Core Services層内のフレームワークとの基本的なiOSサービス(アクセスファイル、低レベルのデータ型のBonjourサービス、ネットワークソケット、その他多数)へのアクセスを得ます。Cocoa TouchとMedia層のフレームワークがあなたのニーズに十分でない場合、この層のフレームワークを使用してください。あなたがコアサービス層での技術を使用すると、自動的に最下位層のCore OS層の詳細を知らなくてもCore OS層の利点が得られます。
Gain access to fundamental iOS services with the frameworks in the Core Services layer. With these services, access files, low-level data types, Bonjour services, network sockets, and more. Use the frameworks in this layer if those in the Cocoa Touch and Media layers aren't sufficient for your needs. When you use the technologies at the Core Services layer, you'll automatically take advantage of the Core OS layer without getting into its details.

| name | description |
|---|---|
|Accounts| Manage the user's external accounts using the Accounts framework.<br> You can also use this framework to simplify the authorization process when using external APIs,<br> such as the Twitter API. |
|AdSupport| Access the advertising identifier and a flag indicating <br>whether the user has chosen to limit ad tracking. |
|AddressBook| Use the Address Book framework to gain access to the centralized database for storing a user's contacts.<br> The database, known as Address Book,<br> is used by applications such as Mail and <br>Messages to present information about known and unknown persons. |
|CFNetwork| Use the CFNetwork framework to gain access to network services and handle changes in network configurations.<br> The CFNetwork framework provides a library of abstractions for network protocols.<br> These abstractions make it easy to perform a variety of network tasks,<br> such as working with BSD sockets, working with HTTP and FTP servers,<br> and managing Bonjour services. |
|CloudKit| Manage the transfer of data to and from iCloud using Cloud Kit. |
|CloudKit JS :new:| Access your CloudKit app’s containers and databases from your web app. |
|Contacts :new:| Use the Contacts framework to gain access to the centralized database for storing a user's contacts. The database is used by apps such as Mail and Messages to present information about known and unknown persons. |
|CoreData| Use the Core Data framework for generalized and automated solutions<br> to common tasks associated with object life-cycle and object graph management,<br> including persistence. |
|CoreFoundation| Use the Core Foundation framework for system services fundamental to all iOS applications.<br> Core Foundation provides abstractions for common data types,<br> it facilitates internationalization with Unicode string storage,<br> and it offers a suite of utilities such as plug-in support,<br> XML property lists, URL resource access, and preferences. |
|CoreLocation★| Use the Core Location framework to determine the current latitude and longitude of a device and to configure <br>and schedule the delivery of location-related events.<br> The framework uses the available hardware<br> to triangulate the user's position based on nearby signal information. |
|CoreMedia| Represent time-based audio-visual assets with the essential data types in the Core Media framework. |
|CoreMotion| Receive and handle accelerometer and other motion events with the Core Motion framework. |
|CoreSpotlight :new:| Index the content in your app and enable users to deep-link to that content from Spotlight and Safari search results with the Core Spotlight framework.<br> Core Spotlight is designed for apps that handle persistent user data, such as documents, photos, and other types of content created by or on behalf of users.<br> Use Core Spotlight APIs to add, retrieve, update, and delete items that represent searchable app content. |
|CoreTelephony| Gain access to cellular telephone call status and cellular service provider information with the Core Telephony framework. |
|EventKit| Read and write calendar data with the Event Kit framework. |
|Foundation★| Use the Foundation framework for the "nuts and bolts" classes for Objective-C programming.<br> This framework provides essential Objective-C classes, most importantly the root class,<br> NSObject, which defines basic object behavior. It includes classes for objects representing basic data types, collections,<br> and operating-system services.<br> Foundation also introduces several design patterns and mechanisms that contribute to the robustness<br> and efficiency of Objective-C programs. Along with UIKit, the Foundation framework provides the basic tools and<br> infrastructure you need to implement graphical, event-driven iOS applications. |
|GameCenter :new:| Create social game experiences with the GameCenter framework. Add leaderboards, achievements, matchmaking, challenges and more, so that players keep coming back to your game. |
|GameplayKit :new:| Implement common game play behaviors using the GameplayKit framework.<br> GameplayKit provides random number generation with characteristics that are appropriate for games<br> and provides infrastructure for implementing behavior for entities within your game. |
|HealthKit| Record and track important health information from multiple sources with the Health Kit framework. |
|HomeKit| Communicate with and control connected devices in a user’s home with the Home Kit framework.<br> Home Kit provides seamless integration between accessories that support Apple's Home Automation Protocol and iOS devices,<br> allowing for new advances in home automation. |
|JavaScriptCore| Evaluate JavaScript programs from within an Objective-C app <br>and provide support for JavaScript scripting of your app with the JavaScriptCore framework. |
|MobileCoreServices| Gain access to standard types and constants with the Mobile Core Services framework.<br> Use it in conjunction with other frameworks that rely on UTI type information. |
|MultipeerConnectivity| Support peer-to-peer connectivity and the discovery of nearby devices<br> using the Multipeer Connectivity framework. |
|NewsstandKit| Download and process magazine issues or other Newsstand content using the Newsstand framework.<br> You can also use this framework to manage downloaded issues. |
|PassKit| Create, distribute, and update passes with the Pass Kit framework.<br> You can also use this framework to interact with the user's pass library. |
|PushKit| Reduce battery impact and deliver a better experience by using PushKit to register for and receive notifications for VoIP apps. |
|QuickLook| Display view-based previews of items with the Quick Look framework. |
|SafariServices :new:| Use the Safari Services framework to enable web-based views and services in your app. |
|Social| Send requests to a supported social networking service to perform operations on behalf of your users,<br> integrating their social networking accounts with your app. |
|StoreKit| Embed a store in your app using the Store Kit framework.<br> Use it to process the financial transactions associated with the purchase of content and services from your application. |
|SystemConfiguration| Use the System Configuration framework to determine network availability and state on a device.<br> The System Configuration framework declares the functions, types, and constants related to network reachability. |
|UIAutomation| Automate integration tests that drive your app's UI with the UI Automation framework. |
|WatchConnectivity :new:| Use the Watch Connectivity framework to coordinate activities between your iOS app and your corresponding Watch app. |
|WebKit★| Use the WebKit framework to display web content in windows and to implement browser features<br> such as following links when clicked by the user,<br> managing a back-forward list, and managing a history of pages recently visited. |

## 4. Core OS Layer

Core OS層内のフレームワークと仮想メモリシステム、スレッド、ファイルシステム、ネットワーク、およびプロセス間通信を管理します。この層は、カーネル環境、ドライバ、IOSの基本的なインタフェースを含みます。この層でのドライバも利用可能なハードウェアおよびハードウェア機能を、販売システムフレームワークとの間のインタフェースを提供します。上位層のものは、あなたのニーズに十分でない場合は、この層にフレームワークを使用してください。
Manage the virtual memory system, threads, the file system, the network, and interprocess communication with the frameworks in the Core OS layer. This layer encompasses the kernel environment, drivers, and basic interfaces of iOS. The drivers at this layer also provide the interface between the available hardware and the system frameworks that vend hardware features. Use the frameworks in this layer if those in the upper layers aren't sufficient for your needs.

| name | description |
|---|---|
|Accelerate| Perform complex math or image calculations with the Accelerate framework. |
|CoreBluetooth★| Communicate with Bluetooth 4.0 low-energy devices using the Core Bluetooth framework. |
|ExternalAccessory| Communicate with accessories connected to an iOS-based device with the External Accessory framework.<br> Use it to interact with accessories connected through the 30-pin dock connector or via Bluetooth. |
|LocalAuthentication| Request authentication from users through passphrases or biometrics with the Local Authentication framework. |
|NetworkExtension :new:| Configure and control Virtual Private Network (VPN) tunnels using the Network Extension framework. |
|Security| Use the Security framework to secure the data your application manages.<br> This framework defines C interfaces for protecting information and controlling access to software. |
|System| The System framework offers a number of BSD and POSIX functions,<br> such as a subset of UNIX system calls and C library routines. |