新手入门

简介

知晓云是个好用、顺手的开发工具。它免去了小程序开发中服务器搭建、域名备案、数据接口实现等繁琐流程。让您专注于业务逻辑的实现,使用知晓云开发 APP 应用,门槛更低,效率更高。

SwiftUI 是苹果最新推出 UI 开发工具,其具有以下特点:采用声明式语法,易于阅读、代码更少;跨所有苹果平台,共用一套 API;自动支持动态类型、暗黑模式、本地化等。采用 SwiftUI 将大大提高 UI 界面开发效率。

使用知晓云和 SwiftUI,能够帮助您更快速创建一款 iOS 应用。

新手入门章节将会带领大家如何从零开始将知晓云接入 SwiftUI 应用中。

在本章节中,你将会学到以下内容:

  • 知晓云账号注册,创建数据表

  • 了解知晓云 MinCloud iOS SDK 的使用

  • 使用 SwiftUI 创建一个接入 MinCloudiOS 应用

知晓云账号注册

注册并完成相关信息绑定

前往知晓云注册知晓云账号。

成功注册后,页面将跳转至控制台,需要用户进一步完成邮箱激活验证企业信息设置等步骤。

完成以上步骤,即可进入知晓云控制台 dashboard 页。

danger 如果注册或邮件激活失败,请开发者根据失败提示进行后续操作。如果开发者认为是服务提供方方面导致的失败,请邮件联系 mincloud@ifanr.com,我们会第一时间处理您的邮件。

书架 Demo

BookShelf 是一个简单的书架应用,以列表形式展示了存储在知晓云数据表中所有的书籍信息,点击每个书籍项,将跳转到书籍详情页。

我们以 BookShelf 为例,讲解如何在 iOS 中接入知晓云 SDK。示例代码可以在这里下载,建议下载代码,一步一步跟着做。

创建数据表

我们根据自身应用的业务逻辑,确定所需的数据表,确定好后即可在知晓云后台 >> 数据管理模块开始数据表的创建工作。

书架应用中,我们将创建一张名为 bookshelf 的数据表。打开数据管理模块

创建表

添加一个名为 bookName 的数据列

添加列

以同样的方式创建以下列:

列名 类型 说明
bookName string 书名
bookPrice number 价格
bookAuthor string 作者
bookContent string 内容
coverUrl string 封面链接

MinCloud 安装与配置

通过 Cocoapods,完成安装 MinCloud,在 BookShelf 工程目录下,新建 Podfile 文件,并输入以下内容:

  1. platform :ios, '9.0'
  2. use_frameworks!
  3. target 'MinCloud' do
  4. pod 'MinCloud', :git => 'https://github.com/ifanrx/hydrogen-ios-sdk.git'
  5. end

终端进入项目根目录,并执行以下命令,完成安装:

  1. pod install

初始化 MinCloud

在应用启动时,需要注册知晓云 clientId,即在 AppDelegate.swift 文件中,导入 MinCloud,并找到 application:didFinishLaunchingWithOptions 方法,插入下面代码: 示例代码

  1. func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  2. BaaS.register(clientID: "[[client_id]]") // 应用名称: [[app_name]]
  3. return true
  4. }

clientID 替换成你的应用 IDclientID 可在 dashboard 设置-应用页中获取)。

复制 clientID

使用 MinCloud 获取书籍列表

通过上面的步骤完成了数据表的创建和 MinCloud 安装和初始化,接下来就可以通过 MinCloudAPI 操作知晓云数据表了。

Book

Book 类,表示书籍信息,和数据表 bookshelf 的记录信息对应。Book 的属性如下:

  1. struct Book: Identifiable {
  2. let id: String
  3. var name: String
  4. var author: String
  5. var price: Float
  6. var content: String
  7. var coverUrl: String
  8. }

BookStore

  • 创建 Table 对象

Table 对应于知晓云的数据表,操作该对象即相当于操作知晓云对应的数据表。打开 BookStore.swift 文件,导入 MinCloud。为 BookStore 类增加一个属性:bookshelfTable。bookshelfTable 是一个 Table 对象,关联数据表 bookshelf

  1. let bookshelfTable = Table(name: "bookshelf")
  • 获取数据表 bookshelf 的书籍信息

接下来我们可以通过 bookshelfTable 来操作数据表。实现 BookStore 类的方法 fetch(),该方法从知晓云数据表 bookshelf 请求书籍信息,并保存到 books 中。具体实现如下:

  1. func fetch() {
  2. // 从 bookshelf 表获取书籍列表
  3. bookshelfTable.find { (recordList, error) in
  4. var books: [Book] = []
  5. recordList?.records?.forEach({ (record) in
  6. let id = record.Id!
  7. let name = record.get("bookName") as! String
  8. let author = record.get("bookAuthor") as! String
  9. let price = record.get("bookPrice") as! Float
  10. let content = record.get("bookContent") as! String
  11. let coverUrl = record.get("coverUrl") as! String
  12. let book = Book(id: id, name: name, author: author, price: price, content: content, coverUrl: coverUrl)
  13. books.append(book)
  14. })
  15. DispatchQueue.main.async {
  16. self.books = books
  17. }
  18. }
  19. }

其中,BookStore 是一个可观察对象 ObservableObjectBookList 为书籍列表界面,为了显示书籍信息,在该类创建一个 BookStore 实例,命名为 store,并声明 store@ObservedObject 观察对象,这就完成了数据和界面的绑定,即每当 store.books 有变化时,系统会自动根据 store.books 新的数据来更新 BookList。无需手动去更新相关的界面。更多关于 SwiftUI 的使用,请查阅 SwiftUI

书籍列表

至此, 接入 MinCloudSwiftUI应用,已经完成了,完整的代码可以从这里下载。

最后

通过这个简单的上手 demo,我们已经学会了知晓云注册、iOS 应用接入 MinCloud。希望进一步了解 MinCloud iOS SDK,可以点击这里