[iOS 8] CloudKit を使ってみよう (1) 概要

2014.09.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

CloudKit とは

CloudKit は OS X アプリや iOS アプリで利用できる BaaS *1 です。 ユーザーの AppleID を利用して、Apple のサーバー上にあるプライベートまたはパブリックなデータベースやストレージに、データやファイルを格納することができます。格納する処理は CloudKit の API を呼び出すだけで良いので、サーバーサイドのロジックを記述する必要はありません。どなたでも手軽に利用することができます。

利用可能な機能

  • 認証
  • アセットストレージ
  • データベース
  • 検索
  • 通知

利用可能な容量

  • 1PBのアセット
  • 10TBデータベース
  • 1日5TBまでのアセット転送
  • 1日50GBまでのデータベース転送

利用料金

CloudKit は無料で使いはじめることができます。詳細は発表されていませんが、制限はあるそうなので完全に無料ではなさそうです。

CloudKit の位置づけ

CloudKit は iCloud サービスの一部として提供されています。以前までの iCloud では 3 つのストレージが提供されていましたが、これに CloudKit ストレージが加わりました。ここで、iCloud で提供されているストレージをおさらいしてみましょう。

iCloud で提供されているストレージ

Key-value Storage

設定やアプリの状態などを格納することが想定されている KVS です。1アプリ1MBまで格納することができます。データの種類は、Property-list でサポートされている形式を格納することができます。

iCloud document storage

ファイルベースのストレージです。ドキュメントやドローファイル、または複雑なアプリの状態などを格納するために利用できます。最大保存容量はユーザーの iCloud アカウントで決まります。

Core Data storage

Core Data のストレージです。iCloud のドキュメントストレージ上に格納されます。最大保存容量は iCloud document storage と一緒です。(※要確認)

CloudKit storage (これ!)

ユーザー同士で共有したいファイルやデータを格納。構造化されたデータや、ユーザーが生成したデータなどを格納するために利用できます。レコードは KVS で表現されますが、値には Property-list でサポートされる形式やファイル、他のレコードへの参照などをセットできます。

CloudKit ストレージの目的

以上のことから、CloudKit ストレージは主にユーザー同士で共有したいファイルやデータを格納する目的で用意されたストレージであることが分かりました。逆に言うと、プライベートなデータを保存するだけであれば、既存の iCloud ストレージだけでも問題なさそうです。

それぞれのストレージは目的が異なるので、CloudKit ストレージだけですべてが解決するわけではありません。アプリでどのようなデータ・ファイルを保存したいか明らかにした上で、適切なストレージを採用しましょう。各ストレージの特徴はこちらに書かれているので、合わせてご覧いただければと思います。

アプリで CloudKit ストレージを利用するには

アプリでどのストレージを使うかという設定は、Xcode のプロジェクト設定の Capabilities で行います。チェックを付けたストレージだけがアプリから利用可能です。

cloudkit01-v2

CloudKit Dashboard

CloudKit に保存した情報の検索, 追加, 編集, 削除などといった管理は CloudKit Dashboard から行えます。CloudKit Dashboard は下記 URL からアクセスすることができます(または Capabilities にあるリンクボタン)。開発者アカウントでログインすると、その開発者アカウントでアクセスすることができるアプリのデータにアクセスすることができます。

CloudKit Dashboard

まとめ

以上、CloudKit のサービスについての概要でした。データベースだけではなく、ファイルの保存などにも活用できるので、いろいろな場面で利用できそうですね。「ツールアプリの機能でバックエンドを使いたいけど、サーバーを構築するのはちょっと…」といった場合にも手軽に使うことができますね。ただ、OS X & iOS オンリーになってしまうので、Android などからは使うことができません。クロスプラットフォームで展開する予定の場合は別の BaaS を検討しましょう。

CloudKit の各種機能の使い方は、また別の記事で解説します。

参考

脚注

  1. mBaaS と言ってしまうとモバイルに限定されてしまう感じがあるので、BaaS という言い方が適切でしょう。