Why SwiftUI ?
15年开始接触Android开发,20年因为需要开始接触微信小程序云开发。最近,通过学习SwiftUI,终于入门iOS了!
其实早在16年初的时候,伴随着Swift开源的热潮,我已经跟着官方文档在学Swift。但因为OC的累赘(当时Swift还未能完全胜任iOS开发)以及对iOS拖动式UI开发的不习惯,and 当时自己刚毕业技术池还较浅,理解不了很多概念,因此未能入门iOS开发。
随着苹果推出SwiftUI,以及Playgrounds官方案例的完善,我体验到了作为一名移动端开发者终于可以比较轻松地使用Swift来进行iOS的整个开发。并且一套代码就能适配苹果全家桶 ( iOS, watchOS, macOS, visionOS ) 真的很诱惑!
学习路径
对于和我一样的iOS初学者,我建议先学习Swift的语法:
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour
跟着官方文档学会了语法之后,可以跟着Playgrounds做几个官方案例。
接下来可以使用Xcode来进行真实场景的开发了。官方案例 Landmark 一定不能错过:
https://developer.apple.com/tutorials/swiftui
跟着官方案例 Landmark 开发,你会感受到这真的很接近真实场景,再加一些网络功能就算得上是一个完整App了。而这,完全使用SwiftUI开发。
对于开发过程中遗忘的基础语法,我习惯使用菜鸟教程来查阅:
https://www.runoob.com/swift/swift-arrays.html
对于一些不了解的UI控件,可以查阅官方文档:
https://developer.apple.com/documentation/swiftui/asyncimage
实战指南
跟着教程学习很顺利,有坑也能比较快速解决,这是因为问题空间较小,所以解空间也小。但实战则不同,实战是基于未知的需求来解题,问题空间大,解空间也就变得很大。因此,对于初学者,实战比较好的做法跟着范本来解题。
这里有一些系列iOS开源App:
https://github.com/dkhamsing/open-source-ios-apps
根据我刚从中参考的经验,建议选取带 SwiftUI 标签的和更新时间在 1 年内的。因为SwiftUI及Xcode开发方式在这几年变化还是非常大的。
多下载一些项目阅读与参考,有些项目虽然很nb,但是代码结构和开发方式其实并不适合初学者(看不懂),因此建议先看自己用得上的能看懂的。
实际开发碰到各种奇怪的坑很正常,毕竟代码是由一个个单词构成的,作为一种严谨的语言,Swift 不像 JS 那样拥有较高的宽容度,多一词少一词就报错很正常。可以借助 ChatGPT 等工具快速定位错误。
SwiftUI 学习笔记
接下来的该系列文章,我会使用 SwiftUI 开发一个猫咪社区App,并全程分享开发中使用的技术、遇到的坑与收获的技巧。
我使用的开发工具是Xcode,版本会跟随系统保持最新(当前是15.4)。猫咪社区的原型基于我独立开发的小程序“猫与猫寻”,但会根据iOS的特性与一些好玩的前沿技术做些自由改动。项目的源码会分享在GitHub上,欢迎大家交流与指导,一起学习 SwiftUI ,成为 iOS 开发大佬~