SwiftUI 初探

栏目: Swift · 发布时间: 4年前

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

本次分享又名:AppleFuckFlutter.framework 初探

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

这就开始吧!

为什么

为什么关注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 11 beta

例子

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

总结

优点

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

  • 点开 SwiftUI Text 属性会发现是一个不同于 UIText 的新的属性,猜测SwiftUI 在较为底层重新实现了UI,抛弃了(或在逐渐抛弃)冗余UIKit,使渲染更高效。

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

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

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

缺点

  • 反应还是有些不灵敏

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

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

  • 使用较小型,定制化低的应用,精细的定制化反而破坏了声明式UI提供的系统定制UI

  • 不适配低于 iOS 13 的设备

前景

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

The shortest path to building great apps on every device
SwiftUI 初探
SwiftUI 初探

以上所述就是小编给大家介绍的《SwiftUI 初探》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Go Web 编程

Go Web 编程

[新加坡]Sau Sheong Chang(郑兆雄) / 黄健宏 / 人民邮电出版社 / 2017-11-22 / 79

《Go Web 编程》原名《Go Web Programming》,原书由新加坡开发者郑兆雄(Sau Sheong Chang)创作、 Manning 出版社出版,人名邮电出版社引进了该书的中文版权,并将其交由黄健宏进行翻译。 《Go Web 编程》一书围绕一个网络论坛 作为例子,教授读者如何使用请求处理器、多路复用器、模板引擎、存储系统等核心组件去构建一个 Go Web 应用,然后在该应用......一起来看看 《Go Web 编程》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具