新機能概要(開発者向け)

新機能トピック一覧

Major Features

  1. iCloud Storage APIs
  2. Automatic Reference Counting
  3. Application Persistence
  4. Automatic Document Saving and Versioning
  5. Cocoa Autolayout
  6. Mac OS X File Coordination
  7. Full-Screen Application Enhancements
  8. Popovers
  9. Sandboxing and Privilege Separation

Framework-Level Features

  1. AV Foundation
  2. AppKit
  3. Core Data
  4. OpenGL 3.2
  5. QTKit

BSD And Kernel Features

  1. 64-Bit Kernel Support
  2. Folder Permissions and Ownership
  3. FileVault
  4. I/O Kit–launchd Integration
  5. In-Kernel Video Capture

Application Features

  1. Safari
  2. The Finder

Mac OS X Server

  1. Database Server Replacement
  2. Profile Management

一番最初に取り上げられていて、なおかつ文章全体の1/3程度のボリュームで記述されているのがiCloudです。

iCloudがLionの真髄なのかもしれません。

 

 

各トピックについてもう少しだけ、詳しく見ていきましょう。

各トピックに記述されている内容を日本語で簡単にまとめました。

 

 

各トピックの概要

Major Features

  1. iCloud Storage APIs
    • iCloudでの文書の保存と使用
      • 文章をiCloud上へ移動する
        1. ローカルにファイルを作成して保存
        2. NSDocmumentを使用しない場合は file presenterを作成する
        3. NSURLオブジェクトを作成してiCloud上の場所を明示する
        4. setUbiquitous:itemAtURL:destinationURL:error:  をコール
      • iCloud上の文章を検索する (NSMetadataQuery)
        1. クエリのスコープに適切な値をセット
        2. 検索結果を絞るための属性をセット
        3. notificationやクエリパラメータを登録
        4. startQueryメソッドをコール
        5. クエリオブジェクトが結果を返すようにカレントランループを実行
        6. notificationハンドラメソッドで結果を処理する
        7. stopQueryメソッドをコール
      • iCloud上の文書を使う
        1. NSFileCoordinatorクラスのインスタンスを作成して初期化
        2. NSFileCoordinatorのメソッドを使用してファイルの読み書きを行う
          • coordinateReadingItemAtURL:options:error:byAcc〜
          • coordinateWritingItemAtURL:options:error:byAcc〜
          • coordinateReadingItemAtURL:options:writingItem〜
          • coordinateWritingItemAtURL:options:writingItem〜
        3. file coodinatorオブジェクトをrelease
      • ファイルバージョンのコンフリクトをハンドリング
        1. 現在のファイルバージョンを取得( currentVersionOfItemAtURL:  )
        2. コンフリクトバージョンを取得(unresolvedConflictVersionsOfItemAtURL:)
        3. コンフリクトバージョンそれぞれに対して解決のアクションを実行
          • 現在のファイルバージョンにコンフリクトバージョンをマージ
          • コンフリクトバージョンを無視して捨てる
          • ユーザにどのバージョンをキープするか尋ねる
        4. 必要なら現在のファイルバージョンを更新する
          • 現在のファイルバージョンが選ばれたら、何もする必要なし
          • コンフリクトバージョンが選ばれた、現在ファイルバージョンをコンフリクトファイルバージョンで上書き
          • ユーザがコンフリクトバージョンを別名で保存することを選んだら、コンフリクトバージョンの内容で新規ファイルを作成
        5. コンフリクトバージョンのresolvedプロパティをYESにセット
    • iCloudでキーバリューデータを保存

      アプリは NSUbiquitousKeyValueStoreクラスを使用して 少量のデータを他のPCやiOSデバイスで動作してるアプリと共有できます。 これは、NSUserDefaultsと同じようにシンプルなデータタイプを保存して後で使うことができます。

      1つのキーバリューに保存できるのは64KBに制限されており、キーは4KBを超えてはいけません。 このキーバリューデータの情報を使って、ユーザのアプリ利用経験を向上させるようにしましょう。 例えば、雑誌アプリなら現在読んでる雑誌とそのページ番号を保存します。 すると、ユーザは他のiOSデバイスでアプリを起動しても、直前に読んでいた部分を表示することができます。

    • iCloud使用権の獲得

      アプリはiCloud領域を使用するためにbuild時に使用権を獲得する必要があります。

      • iCloud文書領域の使用には:com.apple.developer.ubiquity-container-identifiers
      • iCloudキーバリュー領域の使用には:com.apple.developer.ubiquity-kvstore-identifier
    • iCloudは責任を持って使いましょう
      • iCloudは限りある、全てのアプリで共有される領域です
        • 全文書を保存するのではなく、ユーザが必要なものだけ保存しましょう
        • iCloud上の削除は、全デバイスからの削除を意味します
        • iCloudに保存した文書は、ローカルにも保持しましょう
        • キャッシュなどはiCloud上に置かないようにしましょう
  2. Automatic Reference Counting
    • コンパイラレベルで自動的にオブジェクトのリファレンス数を管理します
  3. Application Persistence
    • アプリケーションの座標位置と状態を覚えています
  4. Automatic Document Saving and Versioning
    • 自動文書保存とバージョン管理が使えます
  5. Cocoa Autolayout
    • Cocoaに新しいレイアウトシステムができました
  6. Mac OS X File Coordination
    • ファイルの競合に関する新しいメカニズムが取り入れられました
  7. Full-Screen Application Enhancements
    • フルスクリーンモードがサポートされています
  8. Popovers
    • ポップオーバーがサポートされています
  9. Sandboxing and Privilege Separation
    • セキュリティ強化としてサンドボックスと権限分離がサポートされています

Framework-Level Features

  1. AV Foundation
    • iOSで使われていましたが、Mac OS Xでも使えるになりました。(ハードウェアアクセラレーションが自動的に効きます)
  2. AppKit
    • NSFontCollection APIができました
    • アイコンドラッグフロッキングという概念を取り入れました
    • スクロールバーをオーバーレイ表示にしました
    • 自動的にスクロールさせるなどの振る舞いを開発者が制御できるようになっています
    • テキスト自動修正に関するUIが拡張されています
    • NSTableViewとNSOutlineViewでNSCellの代わりにNSViewがサポートされました
    • ウィンドウサポート
  3. Core Data
    • managed object contextに関する拡張がなされています
    • 新しく2つのクラスができました
      • NSIncrementalStore
      • NSIncrementalStoreNode
  4. Foundation
    • Index Set Range Enumeration
    • JSON シリアライズ用の NSJSONSerialization クラスができました
    • 文法解析用に NSLinguisticTagger クラスができました(現在英語のみ)
    • NSFileWrapperがAppKitではなくFoundationで使えるようになりました
    • NSOrderedSet オブジェクトができました
    • ユニコード互換の正規表現クラス NSRegularExpression
    • NSXMLParser のXML解析がストリーミング解析できるようになりました
  5. OpenGL 3.2
    • OpenGL 3.2をサポートします
  6. QTKit
    • exportに関する2つのクラスができました
      • QTExportOptions
      • QTExportSession
  7. Quick Look Thumbnails
    • クイックルックサムネイル
  8. Store Kit
    • iOSのStore Kit フレームワークが使えるようになりました

BSD And Kernel Features

  1. 64-Bit Kernel Support
  2. Folder Permissions and Ownership
  3. FileVault
  4. I/O Kit–launchd Integration
  5. In-Kernel Video Capture

Application Features

  1. Safari
    • 描画処理とアプリケーション処理を分けました
    • プラグインを独自のプロセスで実行するようにしました
    • フルスクリーンモードに対応しています
  2. The Finder
    • 次のファイルとフォルダが非表示になりました
      • /lost+found

      • $HOME/Library

Mac OS X Server

  1. Database Server Replacement
    • 出荷時のデフォルトDBがMySql→PstgreSQLになりました
  2. Profile Management
    • iOSのプロファイルを管理できるようになりました

2011/8/15