2

开启第一个 30 天挑战 —— SwiftUI

 1 year ago
source link: https://kingcos.me/posts/gzh/30dc_1/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

开启第一个 30 天挑战 —— SwiftUI

2022.07.03 by kingcos
Preface · 序
公众号内容同步备份 - 人生应当是 BFS,而非 DFS。。
  • 本篇文章首发自我的公众号:
萌面大道

1.jpeg

是的,没错,我又想开一个新坑了。


前段时间,我开始在备忘录里分析和记录自己的弱点,并尝试冷静地思考如何改善,亦或扬长避短。坦白说,其中一个较为严重的弱点是:不坚持。我有一些好的想法或者灵感,但总是会因为缺乏坚持而只是浅尝辄止,没有达到积累的复利。我还十分「选择困难」,总是想要选中一个「既要又要还要」的选项,但这样本身就是一种幻想。

最近偶然读到一本关于财富和幸福的书,其中的许多观点也和我产生了共鸣,比如:

培养迭代思维。生活中所有的回报,无论是财富、人际关系,还是知识,都来自复利。

(如果你想了解这本书,或者我的书摘,可以点击下方「阅读原文」即可跳转。)

所以,与其沉溺在自我的缺点中,不如行动起来,尝试改变吧,即使失败了也没有什么损失。

30 天挑战

丑话说在前面。我其实很清楚,30 天对于一个习惯的养成或是技能的习得来说都很短,所以 30 天只是起步,如果它能融入到我的生活,那就再好不过了。好处是,30 天相比一两周要长,可以让我有更好的完成度;对于实在无法坚持的内容也能及时止损。喔对了,虽然我的备忘录里已经写满了我想要挑战的内容,但 30 天挑战每次只对应一个挑战,也摒弃了「选择困难」。

为了挑战能够完成(不要打脸),我希望从最简单、最容易的事情开始,所以我选择了 SwiftUI —— 和我的老本行相关的一项内容。每次开始挑战前,我都会尝试粗略地定义好输入和输出,输入即我会通过什么资源学习,输出即完成挑战时,我能带给大家或者他人一些什么。这样既避免了我在过程中心猿意马,也可以给其他同学参考的价值和意义,有了输出我也可以更好地和大家分享。

如有余力:

  • 更新挑战于社交平台
  • FOCUS app
    • 暂不考虑设计、动效等其他额外附加项

Day 8-9 - 07.02-03

  • 学习 SwiftUI 与 Combine 编程

Day 6-7 - 06.30-07.01

暂无进展。

Day 5 - 06.29

  • 学习 SwiftUI 与 Combine 编程

Day 4 - 06.28

  • 学习 Apple 官方 Sample Apps Tutorials 之 Responding to User Input 部分
  • 学习 SwiftUI 与 Combine 编程

Day 3 - 06.27

  • 学习 Apple 官方 Sample Apps Tutorials 之 Presenting Content & Retrieving Content from a Server
    • 其中 Editing Grids demo 涉及一些动画可参考
  • @Binding
    • 将绑定值传递到子视图时,该子视图可以修改其值,但只有父视图存储实际值
  • @State
    • SwiftUI 识别变化并更新 UI
  • AsyncImage
  • .task
    • 当视图首次显示时执行
  • ColorPicker

Day 2 - 06.26

  • 学习 Apple 官方 Sample Apps Tutorials 之 Navigating Apps
    • 其中 Date Planner demo 比较有参考意义
  • @StateObject
    • 每当数据发生更改时,SwiftUI 会自动更新使用(或观察)它的所有视图
    • 修饰的类型必须为 ObservableObject,内部的变量可以使用 @Published
  • ObservableObject
    • 如果其发布的任何值发生更改,SwiftUI 会通知所有观察者(使用这些值的视图)并自动更新这些视图
  • @Published
    • 可以指示 SwiftUI 在其发生更改时通知所有观察者并更新其视图
  • @EnvironmentObject
    • 访问最顶层注入的环境对象(.environmentObject
    • 修饰的类型必须为 ObservableObject

Day 1 - 06.25

  • 完成学习 Apple 官方 SwiftUI Tutorials
    • 将老版 demo 更新
    • macOS 部分内容暂跳过(暂不涉及)
    • 整体基于 iOS 14,相较于老版有部分更新(使用新 API 等)
  • 在 GitHub 上找到一些 SwiftUI 开发的开源 app

阅读原文


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK