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 開發大佬~