SwiftUI 学习曲线

黑客技术

点击右侧关注,了解黑客的世界!

Java开发进阶

点击右侧关注,掌握进阶之路!

Python开发

点击右侧关注,探讨技术话题!

作者丨Majid

来源丨知识小集(zsxjtip)

今年,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 版本发布之前,我们还有很多事情要学习。

 推荐↓↓↓ 

????16个技术公众号】都在这里!

涵盖:程序员大咖、源码共读、程序员共读、数据结构与算法、黑客技术和网络安全、大数据科技、编程前端、Java、Python、Web编程开发、Android、iOS开发、Linux、数据库研发、幽默程序员等。

万水千山总是情,点个 “在看” 行不行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值