SwiftUI 初探

作者: 切一斤桃花卖酒钱 | 来源:发表于2019-06-26 09:25 被阅读0次

    从 Swift1.2 就看好 Swift,逐渐在项目中使用,并且之后的代码完全用Swfit开发。享受到了便利,也遇到了很多坑,痛并快乐着。WWDC19 最令人兴奋的无疑是SwfitUI,这个即将统一Apple平台(iOS, padOS, macOS, TVOS, WatchOS)的声明式UI框架。也刚好作为这次内部 Tech Share 的分享,美滋滋。

    这是一场无关语言的分享,着重通过了解 SwiftUI 从而对于声明式UI前景的探索,以及苹果对于自家多平台生态的布局

    本地分享又叫 AppleFuckFlutter.framework

    这就开始吧!

    为什么

    为什么关注SwiftUI?

    因为声明式 UI已经成为主流,React、Flutter、Jetpack Compose、SwiftUI。

    为什么要实践SwiftUI?

    受够了Storyboard 和 每次更改都需要运行才能看到结果。

    为什么选择 SwiftUI?

    实时更新 live preview, (不能给上厕所找借口了),不但可以预览,还可以反向生成代码,真正的微调, 多屏幕预览,一次适配所有机型。

    声明式编程是未来

    • 代码是描述程序在做什么,可阅读性会大大提高;

    • 组件状态更容易维护在内部,减少副作用;

    • 组件之间的边界更明显,从而让组件复用更灵活。

    最知名的就是SQL了,SQL 最大的特点就是只声明我想要什么(What) , 就是不说怎么做(How)。声明式编程多和链式想嵌套,每次返回操作对象,对操作对象一直操作。

    什么是声明式UI:

    声明式UI描述的不是命令,是直接描述界面是怎样的,而忽略其实现细节。

    React、Flutter 包括刚出的 SwiftUI 都选择了声明式的 UI,从一个侧面也印证了这一点。摒弃了将 IB 生成的 UI 内容存储在 XML 的这种很老土的做法。

    实战:

    前期准备

    • 升级mac 系统 10.15 beta(新系统才能支持实时 preview)

    • 升级Xcode 10.1.5 beta

    例子

    实战例子选取了苹果 SwiftUI Tutorials 实现了常用组件 List (UITableview),以及点击事件跳转到详情的操作。总体涵盖了常用的UI和Action。并且每节课课后有 Check Your Understanding 几个简单题目检测你的理解。

    总结

    优点

    • 更加 autolayout, 更加相对,以及和系统的适应,比如字体的 head, 比如 leadding, 更接近 Flex 布局

    • 远离XIB & Storyboard

    • 实时预览 Live preview, 不但可以预览,还可以反向生成代码,真正的微调,可以预览多个 preview,同时适配多个 device

    • WatchOS, TVOS, macOS, iOS 会调整适配的UI

    • 新实现了UI,抛弃老旧冗余的 UIKit

    缺点

    • 反应还是有些不灵敏

    • 输入联想不太好,总错,总不联想

    • Live Previe & Debug Preview, 当你要相应事件以及操作,需要打开Live Preview 模式

    • 使用较小型,定制化低的应用

    • 不适配低于 iOS 13 的设备

    前景

    有理由相信 苹果可以考虑把 SwiftUI 内置在 APP 包内,使开发者可以更轻易地兼容低版本的操作系统。

    The shortest path to building great apps on every device

    展望

    image 未来可期

    参考:

    1. https://developer.apple.com/tutorials/swiftui/building-lists-and-navigation
    1. https://github.com/Jinxiansen/SwiftUI
    1. https://juejin.im/post/5cfe617c51882529c549b03c
    1. https://juejin.im/post/5cf5f4596fb9a07ede0b2fa1
    1. https://zhuanlan.zhihu.com/p/68057203

    相关文章

      网友评论

        本文标题:SwiftUI 初探

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