Developing Applications for iOS using SwiftUI
Total Lecture: 15
current: [7-9]
Stanford CS193p - [4-6]
Developing Applications for iOS using SwiftUI
Total Lecture: 15
current: [4-6]
Stanford CS193p - [1-3]
Developing Applications for iOS using SwiftUI
Total Lecture: 15
current: [1-3]
并发编程带来的问题
并发编程的幕后
随着CPU、内存和I/O设备的不断升级,它们之间一直存在着一个矛盾,就是速度不一致问题。CPU的速度高于内存,内存的速度又高于I/O设备。
我们写的代码中大多数内容都会经过内存处理,有些内容会去读写I/O设备,根据木桶理论,整体的性能取决于最慢的操作,就是I/O设备,所以单单提升CPU的性能是不够的。
为了最大化体现出CPU的性能,计算机底层主要做了三部分优化:
-
CPU增加了缓存,比内存速度更快,平衡内存的速度
-
操作系统增加了进程和线程,可以对CPU分时复用
-
编译程序会进行指令的重排,使缓存更好的发挥性能
我们平时的工作中其实一直都享受着这些优化后的成果,但同时他们也会导致一些很难找到原因的BUG。
Swift语法遗珠
Switch
switch 语句会尝试把某个值与若干个模式(pattern)进行匹配。根据第一个匹配成功的模式,switch 语句会执行对应的代码。当有可能的情况较多时,通常用 switch 语句替换 if 语句。
1 | switch <#some value to consider#> { |
Swift花园笔记 - CoreData
结合 Core Data 和 SwiftUI
SwiftUI 和 Core Data 几乎是在十年前后被分别引入 —— SwiftUI 是伴随 iOS 13, 而 Core Data 是伴随 iPhoneOS 3 发布;
Core Data 是一个“对象图谱和持久化框架”,这是对于定义对象和对象属性,然后从永久存储中读写它们的高级叫法。表面上看,使用它意味着使用Codable
和UserDefaults
这些东西,但它远不止这些:Core Data 能够排序和过滤我们的数据,对于更大的数据也成立 —— 基本上对于数据量没有限制。更棒的是,Core Data 还实现了各种高级的功能,你会依赖它们:包括数据可视化,数据懒加载,撤销和重做,等等。
Swift花园笔记 - SwiftUI知识碎片 中
Swift花园笔记 - SwiftUI知识碎片 下
Random Lessons from the SwiftUI Digital Lounge . Part 1 [译]
Animations
视图从一个位置到另一个位置的过程可以动画化吗?比如改变父级视图的场景?
当然,你可以去看一看 matchedGeometryEffect() ,这是去年的 SwiftUI 2.0 版本引入的 API