💭

SwiftUIでCouldKitを使ってみたシリーズ1!

2022/03/11に公開

CloudKitを使いたい

FireBaseのその前に,Apple純正のBackend as a ServiceであるCloudkitを使ってみました.
今回は概要から最初のSetUPまでをまとめます.

CloudKitとは?

まず,CloudKitを利用する際の利点と弱点を簡単にまとめてみようと思います.

CloudKit Pros&Cons

Pros Cons
ユーザー認証 自動でやってくれるログインスクリーンいらん. 特になし
他サービスとの連携 他のAppleデバイスとの連携も楽 ユーザー間でのシェア機能もあり 他のアプリと連携できない. CSVなどのデータの取り込みも不可
費用 上限までは無料かつ上限もデカめ
(詳細は料金表)
Developperアカウントが必要
(1万2千円: 2022/3現在)
セキュリティー Privacyデータベースを使えば秘匿化され開発者からもみられない 特になし
  • 料金表
    料金表

FireBaseなどGoogleのサービス料金知らないうちにかかってたらどうしようと思って,使うのをためらっていたので,無料で使用できるというのが結構決め手になりました.

CloudKitを利用する際の登場人物を紹介するぜ!

Container

Containerは1アプリひとつ存在しています. このコンテナーの中にDataBaseとして3つのタイプがあります

データベース できること
Public アプリをインストールしている全ユーザーがアクセスできるデータベース
Private iCloudアカウントごとにアクセスが制限される. 開発者でも中身は見れないので安全
Shared Privateの中でもユーザーが許可したデータを他のユーザーに
共有することができるデータベース

CKRecord

Data ModelとしてEntityにPropertyを定義して扱います. Dictionaryとしてkeyを設定する必要があります.

CKReference

Core Dataで言うところのRelationに当たる機能になります.CKRecord間でPropertyが存在しているかなどをチェックする際に利用します.
https://developer.apple.com/documentation/cloudkit/ckreference

CKOperation

DataのFetchなど,いわゆるCRUDを処理を行うクラスです.
https://developer.apple.com/documentation/cloudkit/ckoperation

Projectの設定

Projectを立ち上げたら,Target → Siging & Capability → Capabilityの順に遷移して,iCloudを追加します.

詳細の設定方法はこちらのやり方を参考にしました.
https://developer.apple.com/documentation/cloudkit/enabling_cloudkit_in_your_app

最終的に完了するとこのような表示になります.

ダッシュボードを見てみよう

ProjectのCloudKit Dashboardをクリックするとダッシュボードに遷移します.
ホーム画面に4つメニューが表示されます.

今回はDatabaseの設定を見たいので,CloudKit Databaseの画面に遷移します.
この画面で先程追加したアプリのコンテナが表示されていると思います.この中でデータベースやRecordの定義を行っていきます

色々設定てんこ盛りという感じですが,ここの3つを抑えておけば最初はいいと思います

まとめ

初歩の初歩といった内容でしたが,これからCloudKitを使いたい方の理解の助けになれば幸いです.
次はDataの登録からFetch処理までをまとめたいと思います.

参考資料

https://developer.apple.com/icloud/cloudkit/designing/

https://www.youtube.com/watch?v=mXGg-iwZNUA

GitHubで編集を提案

Discussion