SwiftUI和Combine简单介绍

SwiftUI和Combine都是苹果开发者大会WWDC 2019中发布的,两者都是声明式(declarative )编程:一个是针对UI实现,一个是针对app中的并发执行管理。下面就先简单介绍一下他们,之后我也会写更深入的SwiftUI和Combine的学习笔记。

SwiftUI

SwiftUI可以直接通过拖拉的方式,自动为我们写code,并实时预览;declarative编程也让我们的代码更resuable,其他开发者读起来也方便!虽然刚刚发布,很多库都不全,但毫无疑问SwiftUI比之前的UI实现更简单、功能更强大!既然是新东西,当然要来一个hello world

struct ContentView: View {
  var body: some View {
    Text("Hello World")
  }
}
struct ContentView_Previews : PreviewProvider {
  static var previews: some View {
    ContentView()
  }
}

这样你就可以在xcode右侧见到


SwiftUI和Combine简单介绍_第1张图片
preview.png

Combine

从2009年微软创造了Rx.Net开始,Reactive Programming响应式编程就出现在了开发的世界里,之后就相继出现了各种语言的Reactive框架RxJS, RxPHP, RxJava等,也有RxSwift,而且已经存在了一段时间了,但毕竟是第三方的框架,而且学起来包括用起来都比较复杂,就没得到广泛的应用;

但是Combine的出现就表明苹果也要往declarative, reactive programming方向走了,以前我们想实现同步执行时,一般会用到NotificationCenter, delegate pattern, gcd&operation, closures等,因为我们无法控制同步执行的任务结束时间等因素,管理app中的asynchronous codes就变得复杂起来。当然你要是根据使用场景选择合适的方法,并多加小心好好写的话也没问题;但用了combine之后,管理同步执行任务的方法就统一了起来,让我们的代码更简洁、易懂、可复用!

同样的Hello World:

let just = Just("Hello shit")
_ = just.sink(receiveCompletion: {
    _ in
    print("completed")
}, receiveValue: {
    val in
    print("\(val)")
})
// Hello World
// completed

如果你对combine和感兴趣的话,可以继续看我的下一篇文章

你可能感兴趣的:(SwiftUI和Combine简单介绍)