第 23 章
探索 CloudKit

The most impressive people I know spent their time with their head down getting shit down for a long, long time.

- Sam Altman

我們回顧一下歷史,2011 年蘋果年度全球開發者大會(Worldwide Developers Conference,簡稱 WWDC)上,史蒂夫.賈伯斯(Steve Jobs )介紹了 iCloud 作為 iOS 5 與 OS X Lion 的補充功能,儘管並非完全出乎意料,但是該聲明還是引起了廣泛的關注。透過 iCloud,App 與遊戲可以在雲端儲存資料,並在 Mac 與 iOS 裝置之間無縫同步資料。

然而,iCloud 在一個方面上存在不足,即作為雲端伺服器。開發者被限制使用 iCloud 來儲存可在使用者之間共享的公有資料,其功能僅限於促進同一使用者擁有的多個裝置之間的資料交換。為了說明這個限制,我們以 FoodPin App 為例,使用 iCloud 的經典版,你不能公開儲存你喜愛的餐廳,並將其提供給其他的 App 使用者,儲存在 iCloud 上的資料只能由你訪問,而不能與他人共享。

在那段期間,如果你想建立一個社群 App,以在使用者之間共享資料,則你有兩個選擇,第一個是開發你自己的自訂後端伺服器,並配備用於資料傳輸和使用者身分驗證的伺服端 API;第二個是你可以依賴 Firebase 和 Parse 等第三方雲端服務供應商。

Note: Parse 是當時非常流行的雲端服務,但是 Facebook 在2016年1月28日宣布要終止該服務。

然而,2014 年蘋果公司對 iCloud 的功能進行了重大的改進,為開發者與使用者提供了全新及增強的功能。CloudKit 的推出代表了對其前身的重大飛躍,並為開發者帶來了巨大的可能性。有了 CloudKit,開發社群網路App 或整合社群分享功能變得更加容易。

但是,如果你有一個網頁 App,並且想要存取儲存在 iCloud 上與你的 iOS App 相同的資料時,該怎麼辦呢? Apple 透過導入 CloudKit 網頁服務(也稱為 CloudKit JS ),讓 CloudKit 進一步發展。這個技術利用 JavaScript 函式庫,讓你開發一個網頁 App,以存取 iCloud 上與你的原生 App 相同的資料,如圖 23.1 所示。

圖 23.1. 儲存你的資料至雲端
圖 23.1. 儲存你的資料至雲端

在WWDC 2016 期間,Apple 發布了一個導入共享資料庫功能的重要聲明,此更新擴充了 CloudKit 的功能,讓開發者不僅可以公開或私密儲存資料,還可以與特定使用者群組共享資料。

CloudKit 消除了建立與維護自己的伺服器解決方案的需求,從而簡化了開發者的開發過程。透過最少的設定與編寫程式,CloudKit 使你的 App 能在雲端中儲存各種類型的資料, 包括結構式資料與素材。這種簡化的方法節省了時間和精力,使開發者能夠利用雲端儲存的強大功能,而無須進行大量的後端開發。

最重要的是,你可以免費開始使用 CloudKit(有限制)。一開始你可以使用:

  • 10GB 的素材空間。
  • 100MB 的資料庫空間。
  • 2GB 的資料傳輸流量。

這是大量的免費儲存空間,足以滿足絕大多數 App 的需求。根據 Apple 的說法,該儲存空間應可滿足大約 1000 萬免費使用者的需求。

  • 1PB assets
  • 10TB database
  • 200TB data transfer

T這是大量的免費儲存空間,足以滿足絕大多數 App 的需求。根據 Apple 的說法,該儲存空間應可滿足大約 1000 萬免費使用者的需求。

有了 CloudKit,我們將能夠專注在我們的 App,甚至可以多做幾個。

- Hipstamatic

在本章中,我的重點是指導你使用 CloudKit 框架來整合 iCloud,不過我們的重點只會放在公共資料庫。與上一章中討論的網頁視圖類似,SwiftUI 框架不提供特定的 CloudKit 元件,儘管如此,我將示範如何將 CloudKit API 整合到 SwiftUI 專案中。具體來說,將會學習如何存取及管理 iCloud 資料庫中的紀錄。我們會改進 App 來讓使用者匿名分享他們最喜愛的餐廳,並將這些餐廳上傳到 iCloud 的公共資料庫,然後所有的使用者可以在 Discover 標籤中查看這些共享收藏夾。

不過,這裡有一個問題,要存取 CloudKit 儲存器,你必須註冊 Apple 開發者計畫(每年費用99 美元),Apple 只讓付費的開發者使用 CloudKit,如果你真的想建立自己的 App, 那麼是時候註冊 Apple 開發者計畫,並開始建立一些基於 CloudKit 的 App。


本文摘自《iOS 17 App程式設計實戰心法》(SwiftUI)》一書。如果你想更深入學習Swift程式設計和下載完整程式碼,你可以從 AppCoda網站 購買完整電子版

results matching ""

    No results matching ""