SwiftUI 学习曲线

Posted 知识小集

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI 学习曲线相关的知识,希望对你有一定的参考价值。


今年,ios 开发领域发生了巨大变化。我们有了一个新的 SwiftUI 框架。SwiftUI 是为 Apple 生态系统构建应用程序的全新的声明式方式。在这里让我们来构建一个 SwiftUI 学习曲线。我想与您分享学习 SwiftUI 所需的所有的文章列表。

基本

苹果今年整理了一份 SwiftUI 教程1,这是一项出色的工作。我建议从这些教程开始学习 SwiftUI 的基础知识。

属性包装器是用于支持 SwiftUI 框架的 Swift 语言新功能之一。要了解最重要的属性包装器,例如 @State,@Binding,@ObservedObject,@EnvironmentObject 和 @Environment,请阅读我的 Understanding Property Wrappers in SwiftUI2 一文。

我写的另一篇有关 SwiftUI 机制的文章是 You have to change mindset to use SwiftUI3 。它应该可以帮助您了解 SwiftUI 的工作原理。

[1]https://developer.apple.com/tutorials/swiftui/ 
[2]https://swiftwithmajid.com/2019/06/12/understanding-property-wrappers-in-swiftui/ 
[3]https://swiftwithmajid.com/2019/11/19/you-have-to-change-mindset-to-use-swiftui/

布局系统

SwiftUI 也有一个全新的布局系统,它比 AutoLayout 拥有更多的乐趣。新的布局系统非常强大且直接。我强烈建议您阅读这些文章,以了解新的布局系统及其好处。

• SwiftUI Layout System5

• Inspecting the View Tree – Part 1: PreferenceKey6

• Inspecting the View Tree – Part 2: AnchorPreferences7

• Inspecting the View Tree – Part 3: Nested Views8

[5]https://kean.github.io/post/swiftui-layout-system 
[6]https://swiftui-lab.com/communicating-with-the-view-tree-part-1/ 
[7]https://swiftui-lab.com/communicating-with-the-view-tree-part-2/ 
[8]https://swiftui-lab.com/communicating-with-the-view-tree-part-3/

框架

SwiftUI 与 React 框架有很多相似之处,为 iOS 开发带来了许多新概念。我使用这些想法构建了一些应用程序,并且非常喜欢它的工作方式。以下是一些有用的文章列表。

• Introducing Container views in SwiftUI9

• Modeling app state using Store objects in SwiftUI10

• Redux-like state container in SwiftUI11

[9]https://swiftwithmajid.com/2019/07/31/introducing-container-views-in-swiftui/ 
[10]https://swiftwithmajid.com/2019/09/04/modeling-app-state-using-store-objects-in-swiftui/ 
[11]https://swiftwithmajid.com/2019/09/18/redux-like-state-container-in-swiftui/

SwiftUI 的声明式

SwiftUI 是一个声明式框架。这意味着您声明要实现的目标,然后框架会处理该问题并决定如何呈现您的视图。根据上下文,完全相同的视图可以具有另一种外观。我写了一些关于 SwiftUI 中声明式方法的文章。

• Building forms with SwiftUI11

• View composition in SwiftUI12

• Reusing SwiftUI views across Apple platforms13

• ViewModifiers in SwiftUI14

• Composable styling in SwiftUI16

[12]https://swiftwithmajid.com/2019/06/19/building-forms-with-swiftui/ 
[13]https://swiftwithmajid.com/2019/10/30/view-composition-in-swiftui/ 
[14]https://swiftwithmajid.com/2019/10/23/reusing-swiftui-views-across-apple-platforms/ 
[15]https://swiftwithmajid.com/2019/08/07/viewmodifiers-in-swiftui/ 
[16]https://swiftwithmajid.com/2019/08/28/composable-styling-in-swiftui/

动画和交互

SwiftUI 使用动画来为您处理所有状态更改。它使我们能够以一种非常直接且美观的方式来构建交互式视图。我在博客上多次讨论了这个主题。

• Animations in SwiftUI17

• Gestures in SwiftUI18

• Building Bottom sheet in SwiftUI19

• Building Pager view in SwiftUI20

[17]https://swiftwithmajid.com/2019/06/26/animations-in-swiftui/ 
[18]https://swiftwithmajid.com/2019/07/10/gestures-in-swiftui/ 
[19]https://swiftwithmajid.com/2019/12/11/building-bottom-sheet-in-swiftui/ 
[20]https://swiftwithmajid.com/2019/12/25/building-pager-view-in-swiftui/

我还想提提 Javier 关于 SwiftUI 中高级动画的出色系列文章。

• Advanced SwiftUI Animations – Part 1: Paths21

• Advanced SwiftUI Animations – Part 2: GeometryEffect22

• Advanced SwiftUI Animations – Part 3: AnimatableModifier23

[21]https://swiftui-lab.com/swiftui-animations-part1/ 
[22]https://swiftui-lab.com/swiftui-animations-part2/ 
[23]https://swiftui-lab.com/swiftui-animations-part3/

辅助功能

SwiftUI 采取了另一举措,使我们的应用程序默认可访问。它开箱即用,但是它也提供了一个非常好的 API 来自定义可访问性。要了解有关 SwiftUI 中可访问性的更多信息,建议阅读以下文章:

• Accessibility in SwiftUI24

• Dynamic Type in SwiftUI25

• Localization in SwiftUI26

[24]https://swiftwithmajid.com/2019/09/10/accessibility-in-swiftui/ 
[25]https://swiftwithmajid.com/2019/10/09/dynamic-type-in-swiftui/ 
[26]https://swiftwithmajid.com/2019/10/16/localization-in-swiftui/

绘制自定义视图

SwiftUI 提供了一个 Shape API,使我们能够快速构建自定义视图。我在其中一个应用程序中制作图表时了解了这一点。

• Building BarChart with Shape API in SwiftUI27

• Gradient in SwiftUI28

• GeometryReader to the Rescue29

[27]https://swiftwithmajid.com/2019/08/14/building-barchart-with-shape-api-in-swiftui/ 
[28]https://swiftwithmajid.com/2019/11/13/gradient-in-swiftui/ 
[29]https://swiftui-lab.com/geometryreader-to-the-rescue/

结论

2019 是非常重要的一年,我希望我们能在 WWDC 2020 期间获得具有许多新功能的 SwiftUI 2.0。在下一个 SwiftUI 版本发布之前,我们还有很多事情要学习。



推荐阅读

• 
• 
• 
• 
• 


以上是关于SwiftUI 学习曲线的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 动画:如何延迟重复动画

自学IOS开发第2天·学习基础SwiftUI

自学IOS开发第2天·学习基础SwiftUI

自学IOS开发第2天·学习基础SwiftUI

SwiftUI设计从入门到精通教程

SwiftUI基础学习日记TextImage