追加の macOS Sierra フレームワークの変更
Accelerate フレームワークの機能強化
macOS Sierra 用の Accelerate フレームワークに対して、次の機能強化が行われました。
- 求積法 (積分法) を追加しました。
- ニューラル ネットワークを構築するための基本的な関数を追加しました。
- 2 つの幾何オブジェクトの交差などについてテストするための Geometric 述語関数を追加しました。
AppKit フレームワークの機能強化
macOS Sierra 用の AppKit フレームワークに対して、次の機能強化が行われました。
NSCollectionView
に対して、次のようないくつかの機能強化が行われました。- 折りたたみ可能なセクション - コレクション ビュー セクションを単一の水平行に折りたためるようにします。
- フローティング ヘッダー - iOS の UICollectionView と同じ API を使用して、ヘッダーとフッターを (フロー レイアウトで) フロート状態にできるようになりました。
- スクロール可能な背景ビュー - コレクションのビューの背景をコンテンツと共にスクロールするように設定できるようになりました。
- 遅延ビュー レイアウト パスが最適化され、拡張されました。
- ドラッグ アンド ドロップ API に、ドラッグ フロックをサポートする新しい
NSFilePromiseProvider
およびNSFilePromiseReceiver
クラスが含まれるようになりました。 - いくつかの便利なコンストラクターが既存のコントロールに追加されています。
NSButton
には、プッシュ ボタン、チェックボックス、ラジオ ボタンを作成するための新しいコンストラクターが含まれています。NSTextField
には、折り返し/非折り返しラベル、属性付きラベル、編集可能なテキスト フィールドを作成するための新しいコンストラクターが含まれています。NSSegmentedControl
には、ラベルまたは画像のグループからセグメント化されたコントロールを作成するための新しいコンストラクターが含まれています。NSSlider
には、水平方向の線形スライダーを作成するための新しいコンストラクターが含まれています。NSImageView
には、特定のNSImage
から編集できない画像ビューを作成するための新しいコンストラクターが含まれています。
- 新しい
NSGridView
が、動的に非表示または表示できるサイズ変更可能な行と列を持つグリッドにサブビューのコレクションを自動レイアウトするために追加されました。
AVFoundation フレームワークの機能強化
macOS Sierra 用の AVFoundation フレームワークに対して、次の機能強化が行われました。
- macOS では、コンテンツ タイプに基づいて異なる AVPlayerItem 動作を実装する必要がなくなりました。 単に
Rate
プロパティを設定するだけで、AVFoundation は、止まることなく再生に十分なコンテンツが使用できるタイミングを判別します。 - 新しい
AVPlayerLooper
クラスを使用すると、再生中にメディアの特定の要素を簡単にループできるようになります。 AVAssetDownloadURLSession
クラスを使用すると、FairPlay で暗号化された HLS ストリームをダウンロードしてから後で再生できます。
Core Data フレームワークの機能強化
macOS Sierra 用の Core Data フレームワークに対して、次の機能強化が行われました。
- ルートの NSManagedObjectContext オブジェクトは、シリアル化なしでコンカレントのエラーとフェッチに対応します。
- NSPersistentStoreCoordinator クラスは、SQLite データ ストアのプールを保持します。
- WAL ジャーナル モードの SQLite データ ストアを含む NSManagedObjectContext オブジェクトは、Managed Object Contexts (MOC) を将来のトランザクションのフェッチとエラーのために特定のデータベース バージョンにピン留めできる、新しいクエリ生成機能をサポートします。
- 上位レベル
NSPersistenceContainer
を使用して、NSPersistentStoreCoordinator
、NSManagedObjectModel やその他の Core Data 構成リソースを参照します。 - フェッチの実行とサブクラスの作成を容易にするために、いくつかの新しい便利なメソッドが
NSManagedObject
に追加されました。
詳細については、Apple の Core Data フレームワークのリファレンスを参照してください。
Core Image フレームワークの機能強化
macOS Sierra 用の Core Image フレームワークに対して、次の機能強化が行われました。
- CIFilter クラスの
ImageWithExtent
メソッドを使用して、フィルター操作にカスタム処理を挿入できます。 Core Image は、出力または表示用のイメージを処理するときに、フィルター間で指定されたコールバックを呼び出します。 - 処理の前後に色空間のイン/アウトを切り替えることで、Core Image コンテキストの作業中の色空間の外側にある色空間で画像を処理できるようになりました。
- Core Image カーネルで、特定のピクセル出力形式を要求できるようになりました。
- 次の新しい画像フィルターが追加されました:
CINinePartTitled
、CINinePartStretched
、CIHueSaturationValueGradient
、CIEdgePreserveUpsampleFilter
、CIClamp
Foundation フレームワークの機能強化
macOS Sierra 用の Foundation フレームワークに対して、次の機能強化が行われました。
- NSDimentions API を使用して、質量、長さ、速度、期間、温度など、最も一般的な物理単位の多くを表し、変換して表示します。
- NSISO8601DateFormatter クラスを使用して、ISO 8601 形式の日付を解析および生成します。
- 新しい NSDateInterval クラスを使用して、期間などの日付や時刻の間隔の計算を行い、間隔を比較し、間隔の交差をテストします。
- NSPersonNameComponentsFormatter クラスを使用して、文字列から人の名前の要素を解析します。
- 新しい NSURLSessionTaskMetrics クラスを使用して、URL ネットワーク セッションのメトリックを取得します。
詳細については、Apple の OS X v10.12 および iOS 10 の Foundation リリース ノートを参照してください。
GameKit フレームワークの機能強化
macOS Sierra 用の GameKit フレームワークに対して、次の機能強化が行われました。
- Game Center アプリは非推奨となり、macOS から削除されました。 アプリで GameKit を使用する場合は、ランキングなどの GameKit 機能を表示するための独自のインターフェイスを提示する "必要があります"。
- 新しい iCloud 専用アカウントの種類が GKCloudPlayer クラスによって実装されました。
- 新しい GKGameSession クラスは、Game Center で永続的なデータ ストレージを管理するための一般化されたソリューションを提供します。 プレイヤーの一覧は
GKGameSession
が保持し、参加者の日付の格納、取得、またはプレイヤー間で交換する方法とタイミングはアプリによって実装されます。 多くの場合、Game Session は、既存のターンベースのマッチ、リアルタイムのマッチ、永続的なゲームの保存メソッドを置き換えることができます。
GamePlayKit フレームワークの機能強化
macOS Sierra 用の GamePlayKit フレームワークに対して、次の機能強化が行われました。
- 手続き型のノイズ生成が追加されました。自然に見えるテクスチャのリアリズムを強化し、カメラの動きにリアリズムを追加し、豊富なゲーム世界を生成するために使用できます。
- Spatial Partitioning を使用して、効率的な検索のためにゲーム世界のデータをパーティション分割します。
- 可能な移動計算を網羅するために、新しいモンテカルロ戦略 (GKMonteCarloStrategist) が追加されました。
- ゲーム構築 AI を強化するために、新しいデシジョン ツリー API (GKDecisionTree と GKDecisionNode) が追加されました。
- 新しい GKAgent3D クラスと GKGraphNode3D クラスを使用して、既存のエージェントとパス検索の動作に 3D サポートを追加しました。
- 新しい GKMeshGraph クラスを使用して、高パフォーマンスで自然な見た目のパスを提供します。
- 新しい GKScene クラスと GKSKNodeComponent クラスを使用すると、GameplayKit と SpriteKit の組み合わせがこれまで以上に簡単になります。
Metal フレームワークの機能強化
macOS Sierra 用の Metal フレームワークに対して、次の機能強化が行われました。
- 3D アプリとゲームで Tessellation を使用して、GPU 経由で複雑なシーンとジオメトリを効率的にレンダリングできるようになりました。
- 関数の特殊化を使用して、シーンのマテリアルとライトの組み合わせ関数の高度に最適化されたコレクションを作成します。
- リソース ヒープとメモリレス レンダー ターゲットを使用して、Metal ベースのアプリのパフォーマンスを最適化するために、リソース割り当てをきめ細かく制御します。
詳細については、Apple の Metal プログラミングのガイドを参照してください。
Model I/O フレームワークの機能強化
macOS Sierra 用の Model I/O フレームワークに対して、次の機能強化が行われました。
- USD ファイル形式がサポートされるようになりました。
- 新しい
MDLMaterialPropertyGraph
クラスを使用して、モデルのランタイムの変更を簡単にサポートします。 - 符号付きディスタンス フィールドのサポートが、MDLVoxelArray クラスに追加されました。
- 新しい
MDLLightProbeIrradianceDataSource
クラスを使用して、Light Probe の配置を支援します。
Photos フレームワークの機能強化
macOS Sierra 用の Photos フレームワークに対して、次の機能強化が行われました。
- Photos フレームワークをサポートするアプリと写真編集の拡張機能 (フォト アプリとカメラ アプリ内で使用する) で Live Photo 編集を利用できるようになりました。
- 新しい PHLivePhotoEditingContext クラスを使用して、Live Photos のビデオと静止画コンテンツの両方に編集を適用します。
- CIImageProcessorInput クラスと CIImageProcessorOutput クラスを使用して、新しい Core Image プロセッサ機能を利用して編集を実行します。
- Live Photos をサポートするために、PHLivePhoto クラスと PHLivePhotoView クラスが iOS から macOS に移植されました。
SceneKit フレームワークの機能強化
macOS Sierra 用の SceneKit フレームワークに対して、次の機能強化が行われました。
- よりシンプルなアセット作成でより現実的な結果を得るための新しい Physically Based Rendering (PBR) システムが含まれるようになりました。
- 新しい SCNLightingModelPhysicallyBased シェーディング モデルを使用して、3 つの基本的なプロパティ (
Diffuse
、Metalness
、Roughness
) のみを必要としながら、幅広い現実的なシェーディング効果を作成します。 - PBR シェーディングは環境ベースの照明に最適であるため、
LightingEnvironment
プロパティを使用して、シーン全体にイメージ ベースの照明を割り当てます。 IESProfileURL
プロパティを使用して、強度 (ルーメン) や色温度 (ケルビン度) などの実際の値に基づいて照明を定義する現実世界のライト フィクスチャをインポートします。- SCNCamera クラスは、HDR の機能と効果を使用して、より優れたリアリズムを提供できます。 アダプティブ露出を使用して自動効果を作成するか、ビネット、カラー フリンジ、カラー グレーディングを使用して、フィルム効果をゲームに追加します。
- PBR と HDR の両方のカメラ機能は、従来のレンダリング手法よりも優れた結果を提供します。その結果、SceneKit は、すべてのカラー計算がリニア色空間で実行されるようになりました (広色域デバイス ディスプレイで P3 色域を使用)。
- SceneKit では、カラー プロファイル情報を読み取ることで、色がすべての色と一致するようになりました。
- SceneKit は、すべてのシェーダーの種類に対してリニア RGB 色空間内の色要素の値を解釈します。
- SceneKit はテクスチャ イメージのカラー プロファイル情報を読み取って調整するため、すべてのイメージに Asset Catalog 使用して、この情報が確実に提供されるようにします。
- リニア色空間のレンダリングと広色域の両方を無効にするには、アプリの
Info.plist
でSCNDisableLinearSpaceRendering
キーとSCNDisableWideGamut
キーを指定します。 - 任意の多角形の霊長類 (ファイルから読み込まれるか、プログラムによって生成される) を構築して、新しい SCNGeometryPrimitiveTypePolygon クラスを使ってジオメトリを指定します。
Security フレームワークの機能強化
macOS Sierra 用の Security フレームワークに対して、次の機能強化が行われました。
SecKey
インターフェイスが最新化され、すべてのプラットフォーム (iOS、tvOS、watchOS、macOS) に渡って統合されています。
SpriteKit フレームワークの機能強化
macOS Sierra 用の SpriteKit フレームワークに対して、次の機能強化が行われました。
- タイルマップは、2D、2.5D、および
SKTileMapMode
、SKTileGroup
、SKTileGroupRule
、SKTileSet
クラスを使用したサイドスクロール ゲームの正方形、六角形、アイソメトリックのタイル図形をサポートするようになりました。 - 新しい
SKWarpGeometry
クラスを使用して、SKSpriteNode または SKEffectNode レンダリングを伸縮させたり、歪めたりします。 新しい SKAction クラスを使用して、ワープ効果の間の画面切り替え効果をアニメーション化できます。 - カスタム シェーダーは、属性値 (
SKAttributeValue
) 指定することでシェーダーを使用する各ノードによって個別に構成できる属性 (SKAttribute
) を提供できます。 - SKView クラスには、シーンをレンダリングするタイミングと方法をきめ細かく制御するための新しいメソッドがいくつか用意されています。
新しいフレームワーク
次のフレームワークが macOS Sierra に追加されています。
- Intents Framework - このフレームワークにより、アプリはインタラクション (場所やユーザー アクションなど) を調べ、その情報に基づいてアクションを実行できるようになります。
- SafariServices Framework - このフレームワークにより、アプリは macOS と iOS の両方の Safari 用のアプリ拡張機能 (コンテンツ ブロッカーなど) を開発できるようになります。