美文网首页
SwiftUI和Combine简单介绍

SwiftUI和Combine简单介绍

作者: Joshua666 | 来源:发表于2019-10-21 14:56 被阅读0次

    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右侧见到


    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简单介绍

          本文链接:https://www.haomeiwen.com/subject/osjtvctx.html