什么是SwiftUI?
Posted YungFan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是SwiftUI?相关的知识,希望对你有一定的参考价值。
2019 年 WWDC 大会上,Apple 在压轴环节向大众宣布了基于 Swift 语言构建的全新 UI 框架 — SwiftUI。开发者可通过它快速为所有的 Apple 平台创建美观、动态的应用程序。
特点
跨所有Apple平台
:SwiftUI 只需使用一套工具和 API即可为 Apple 的所有硬件设备构建用户界面。声明式语法
:SwiftUI 采用声明式语法,可读性比较高,编写的代码也比较容易理解。UI 是虚拟 Views 组织关系的一种描述。
决定 UI 状态的 State 存在某个/些对象中。
用一个函数描述 UI,参数为 State,即 UI = f(State)。
State 改变时,函数获取对应的新 State 的 UI 并与当前的 UI 进行差分计算,重新渲染。
预览功能
:SwiftUI 可与 Xcode 11 无缝协作,让代码和设计完美同步。同时还提供对动态类型、暗黑模式、本地化和可访问性的自动支持。
SwiftUI VS UIKit
SwiftUI 会替换掉 UIKit / AppKit / WatchKit ?当然会,但显然不是现在。SwiftUI 在 ios 13,macOS 10.15,tvOS 13 和 watchOS 6 上运行,需要几年甚至更久才能普及。
目前即使使用 SwiftUI ,还是需要使用 UIKit。UIKit 在很长一段时间内仍然是 iOS 开发的重要组成部分,两者会共存很长一段时间。
二者可以相互嵌套使用。
SwiftUI中视图与视图控制器
SwiftUI 提供了View
作为UIView
的继承者,但暂时没有提供专门的UIViewController
的继承者,仍然是用View
来代替。SwiftUI 通过新的框架Combine
进行数据的交互,这种新方法可以替代UIViewController
,因此SwiftUI + Combine
是今后 iOS 开发中的一对黄金搭档。
SwiftUI中的布局
SwiftUI 使用灵活的盒子布局系统,在开发中并没有直接使用自动布局AutoLayout
的相关知识和 API。
SwiftUI运行速度
SwiftUI 运行速度很快,甚至超越 UIKit。原因有2:
压平了图层层次结构,因此会做更少的绘图。
很多操作直接绕过
Core Animation
直接让Metal
进行处理。
学习要求
熟悉 Swift 语法,掌握 Swift 5.1 相关的几个新特性
熟悉 iOS 开发,掌握 iOS 开发中的各项知识
开发环境:macOS 10.15 及以上
开发工具:Xcode 11及以上
运行环境:iOS 13 / iPadOS 13 / macOS 10.15 / tvOS 13 / watchOS 6 及以上
我的公众号
以上是关于什么是SwiftUI?的主要内容,如果未能解决你的问题,请参考以下文章