使用 Swift 语言重新编写的基于 Swift 的 SDK for iOS/macOS/tvOS/watchOS
- AVObject - AVObject doc issue
- save
- update
- delete
- fetch
- increase
- unset
- saveAll
- AVQuery - AVQuery doc issue
- find
- first
- count
- AVClient
- multiple AVApp
- request
- AVUser
- logIn
- signUp
- cache to local storage(use UserDefaults.standard).
- AVSMS
- send
- verify
- captcha
- AVCloud
- callCloudFunction
- rpcCloudFunction
- AVRealtime - AVRealtime doc issue
- connect
- connectWithUser
- createConversation
- send
- onMessage
- onEvent
- AVLiveQuery
- subscribe
- on
- AVPush
- registerDeviceToken
假设有一个 XCode 的 Project 叫做 Sights
,请编写如下 Podfile 放在根目录下:
platform :ios, '10.0'
use_frameworks!
target 'Sights' do
pod 'LeanCloud','~> 0.1.0'
end
target 'SightsTests' do
pod 'LeanCloud','~> 0.1.0'
pod 'Blocking', '> 4.0'
pod 'Test', '> 4.0'
end
首先需要引用测试的时候必要的 module :
import LeanCloudSwift
import Swift
import Test
import Blocking
在单元测试项目里面需要在 setup 里面进行如下初始化:
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
let app: AVApp = AVApp(appId: "uay57kigwe0b6f5n0e1d4z4xhydsml3dor24bzwvzr57wdap", appKey: "kfgz7jjfsk55r5a8a3y4ttd3je1ko11bkibcikonk32oozww")
let sdk = AVClient.initialize(app: app)
sdk.toggleLog(enable: true)
}
单元测试示例如下:
func testCreareNewAVObject() {
let todo = AVObject(className: "SwiftTodo")
todo["foo"] = "bar"
let result = todo.save()
.toBlocking()
.materialize()
switch result {
case .completed(let elements):
print(elements[0].createdAt)
//XCTFail("Expected result to complete with error, but result was successful.")
case .failed(let elements, let error):
print(error.localizedDescription)
}
}
首先要安利一下 ReactiveX/Swift 上社区主页的几篇介绍文章请英文好的同学一定要去阅读
以下两篇是 realm 公司出品的两篇文章,是由两位工程师做的公开分享里面的汇总,推荐阅读和仔细品读里面列举的代码示例
目前 LeanCloud 官方 iOS/macOS sdk 依旧保持着高速的迭代以及稳定的性能和完整的功能,假设不是特别喜欢 风格的编码或者说,或者项目已经基于旧版的 iOS sdk 上线运行了很长时间了,那十分建议仅仅把 LeanCloudSwift 当做一个小玩具去研究或者加入我们一起完善
但是我依然十分推崇所有新的项目或者说是练手的 app 采用 LeanCloudSwift 作为您 LeanCloud 旅程的第一站:
- 长远得看 Swift 会比较容易让新手学习,毕竟这门语言是新时代的产品,它汲取了许多语言的优良特性
- Rx 风格的语言格外的,尤其的适合编写客户端,等业务逻辑繁琐起来,你会发现循环嵌套的 block 回调绝对是噩梦
- 在 LeanCloudSwift 成为官方钦定语言之前,它不受到任何商业角度的限制,坚持社区化