為什麼要學習 SwiftUI,可以分成客觀與主觀兩方面。
SwiftUI 已經是 Apple 平台應用的主要開發方式
客觀來說,SwiftUI 是 Apple 主推的開發方式,投注了大量的資源。
從發表至今,我們可以看到,Apple 對於 SwiftUI 十分重視,投注了比其他框架更多的資源。
從一開始,Apple 就精心設計 SwiftUI 的專屬語法。
為了實現全新的語法,他們在 Swift 語言加了很多功能。例如許多 Swift 使用者熟悉的 property wrapper,就是在 SwiftUI 宣布之前不久加入的。
甚至跳過正常的 Swift Evolution 流程,直接加入 function builder 功能,讓 SwiftUI 可以使用 @ViewBuilder
打造專屬語法(當時是 _@functionBuilder
,後來正式名稱為 @resultBuilder
)。
而為了讓開發者能夠有管理狀態的工具,初代 SwiftUI 就搭配著推出了 Combine。還有後來追加的 Swift Observation 等等。
Apple 還在 Xcode 新增了 Preview 的功能,可以即時地看到效果。Apple 自己內部也大量使用 SwiftUI 來進行設計方面的開發,因為能更直接地看到回饋與效果,而且會與 app 真實運作時的樣貌相同。
後續的每一年,SwiftUI 都新增了不少 API,來強化功能。每一年的 Xcode 也都為了 Preview 增加了一些功能、效率,或是至少更穩定一點。可以看到 Apple 持續投注資源在 SwiftUI 上,而且遠比 UIKit、AppKit 等既有框架更多。
Apple 也讓 SwiftUI 在他們的所有平台都可以使用。因為是跨平台,所以這套語法,開發者只要學習一次,就可以在 Apple 各平台使用(learn once, write anywhere)。
在 watchOS 上,SwiftUI 取代了過往難用的 WatchKit。後來推出的 visionOS,雖然還可以使用 UIKit,但是比較新穎或專屬的元件,就只有提供 SwiftUI 版本。
而有一些框架,像是 WidgetKit,甚至只能使用 SwiftUI 開發。
理想與現實的落差
毫無疑問地,Apple 對 SwiftUI 有著很棒的願景。開發者也感受到 Apple 對 SwiftUI 的熱情。
但是,期待越高,現實與期望的落差越大。