開發者眼中的SwiftUI:它為我和用戶帶來了什麼?
6月份是蘋果用戶和開發者社群非常活躍的時期,蘋果幾大新系統在WWDC 發布後,果粉們都會紛紛討論iOS 13,iPadOS 和macOS 10.15 等的新亮點,並發表自己的評價。而對於開發者來說,新的生態環境給他們帶來的最大驚喜是什麼呢?答案非常一致。
從新面孔的蘋果獎學金獲得者到已經數度參加W WD C的資深開發者,對於“你看到的最激動人心的事情是什麼?”這個問題,回答無疑都是看到了SwiftUI的發布。
最好的工具
為什麼SwiftUI 對於開發者那麼重要呢?原因其實很簡單,因為新的SwiftUI 框架利用了蘋果自定義創建的Swift 語言的特性,使開發人員更容易、更快地構建更好的用戶界面代碼,同時錯誤會更少,也能創造更多的功能。
也就是說,我們將可以把更少的精力花在創建常規交互元素的應用上,從而可以減少代碼調試和維護的次數,以及使用如下功能:自動適應iOS 和macOS 的深色模式、支持新平台功能的催化劑項目(Project Catalyst)、先進的可訪問性、動態類型、允許用戶調整大小的文本、多語種的廣泛本地化、優美流暢的動畫、潔淨的蘋果UI 和導航。
SwiftUI 讓蘋果開發者專注於打造自己的原創內容,同時可開發出更統一、更強大、外觀更現代的軟件,影響將是巨大的。
蘋果在WWDC14 上推出了新的Swift 編程語言,該語言借鑒了多種流行語言的思想,形成了蘋果所希望的“一種工業質量的編程語言同樣應該具有表現力和趣味性”。因為創造Swift 的初衷就是為了簡潔、易於理解和調試,不僅對於Java 和c# 開發人員來說上手非常簡單,而對於新程序員來說學習該代碼通常比學習Objective C 更容易。
在WWDC16上,蘋果公司將為iPad推出了一款名為Swift Playgrounds的應用程序,旨在讓學生和初學者更容易地掌握Swift學習編程的技能。蘋果還發起了“人人都能編程”(Everyone Can Code)倡議,將操場推廣為學習編程的工具,並發布了為期一年的Swift軟件開發課程,名為“用Swift開發App”(App development with Swift)。
Swift代碼可為macOS創建AppKit項目,也可用於為iPhone、iPad、Apple TV和Apple Watch創建UIKit應用。在此之前,這些開發API是需要在Swift代碼產生前構建,而現在新的SwiftUI可以直接搞定上述這些工作,大大簡化該過程,加快跨平台App的用戶界面佈局工作。
交互獨特性
SwiftUI 的目的是創造一種讓開發人員“學習一次,就能在任何地方編寫出合適代碼”的工具。與Swift 本身一樣,SwiftUI 也是可視化的,允許程序員對UI 進行佈局,然後以適合於每種設備的方式調整UI 在多個平台上的外觀和工作方式。
雖然Android、Java和Windows 10都追求一個理想的代碼,但SwiftUI遵循蘋果獨特的思維方式,那就是可以讓每個產品的OS都能符合特定交互方式。例如,Apple Watch不僅僅是你手腕上的一個小iPhone,它運行的watchOS交互被設計為簡短和便於查看式,用戶的手勢很簡單,所呈現的數據簡短而有意義,它通過數字表冠提供了獨特的輸入機制,這在可穿戴設備上很有意義,但在平板電腦或台式電腦上就不一樣了。
今年,蘋果進一步擴大了iPhone和iPad在OS層面的差異性。新的iPadOS交互風格將明顯不同於手持iPhone或iPod touch,它將支持應用程序的拖放交互、屏幕分割和滑動功能。類似地,Mac用戶通常是固定坐著使用,屏幕更大,並附帶物理鍵盤和鼠標,更容易處理與重疊窗口、多個空格、甚至可以跨多個顯示器擴展屏幕。
蘋果還宣布了Project Catalyst 的跨平台並行計劃,使現有的iPad 應用能夠適應Mac 電腦的本地工作,並充分利用其複雜的交互模式。SwiftUI 提供了一種構建UI 代碼的替代方案,可以重用UI 代碼,並對其進行調整,以快速地創建跨蘋果平台運行的應用。
圖形化語言
從最初的麥金塔電腦問世以來,蘋果一直致力於使用動畫來強化用戶界面的想法,增強用戶體驗,並開創了可訪問性的先河,而且通過為有視覺、聽覺或運動障礙的人提供輸入數據和理解響應的新方法,確保任何人都可以使用它的計算工具。包括先進的本地化工作,也給不同地域使用蘋果產品的人帶來優秀體驗。
然而,這些特性都需要第三方開發人員進行大量工作,以確保他們的App 具有與原生系統相同的動畫、可訪問和本地化特性。通過SwiftUI,蘋果正在幫助開發人員盡可能輕鬆地支持這些功能。在許多情況下,SwiftUI 會自動完成這些工作。
使用SwiftUI 的可視化語法,開發人員只需聲明他們的用戶界面應該做什麼,在編寫上類似於web 上的JavaScript,這有助於創建簡單、易於閱讀、易於維護的代碼。SwiftUI 的可視化風格還支持複雜的動畫,可以通過從現成的效果集合中進行選擇,並輕鬆地將其添加到控件中,系統就能自動處理所有需要顯示平滑的UI 動畫了。
在設計畫布上,圖形化編輯與編輯器中的代碼同步。當你鍵入代碼時,代碼會立即顯示在圖形預覽中。Xcode 會立即重新編譯更改,並將其插入到應用程序的運行版本中,該版本在任何時候都是可見和可編輯的。
你還可以創建多個SwiftUI 視圖預覽,以顯示示例數據,並配置用戶可能設置的變體,如深色模式、較大的動態類型字體或外語本地化,預覽還可以在任何虛擬設備和任何方向上顯示UI。
蘋果還為開發者們創造了一系列教程演示如何構建一個SwiftUI iPhone應用程序,並一步一步解釋如何創建一個新的Xcode項目、文本佈局和視圖使用棧,如何自定義圖像視圖,如何使用UIKit SwiftUI視圖,如何構建列表和導航,如何處理用戶輸入,如何畫出路徑和形狀,如何實現動畫視圖和轉換,然後如何組成更複雜的接口,如何連接UI控件和UIKit的界面。
體驗大優化
那麼SwiftUI 將為用戶做些什麼呢?目前,SwiftUI 代碼只適用於蘋果的新操作系統:macOS Catalina 10.15、iOS 13、iPadOS 13、tvOS 13 和watchOS 6。這意味著普通用戶要到9 月左右才能看到SwiftUI 的應用程序,而且,由於App 的開發一般需要提前做系統適配,所以我們看到SwiftUI 設計的應用問世可能需要一些時間。
然而,正如Swift 幫助蘋果開發者變得更有效率一樣,SwiftUI 也是蘋果創造更熟練、更有能力的程序員的長期策略。這不僅有助於提高App 質量,還應該有助於讓iOS 開發者更容易地將他們的工作帶到蘋果平台上。正如“催化劑”項目承諾將幫助將iPad 應用程序引入Mac電腦一樣,SwiftUI 也將使iOS 應用更容易被移植到iPad、Apple TV 和Apple Watch 並進行適當的優化,與各自的平台原生完成配套,以提供盡可能最好的體驗。
SwiftUI 還承諾將改善應用的外觀,使開發人員更容易整合流暢的動畫,更好地支持全局本地化,支持深色模式和動態文本,以及幫助殘疾用戶的輔助功能等等。SwiftUI 在改進蘋果開發平台方面的自動特性也暗示了未來的功能:蘋果對其框架進行改進,第三方App 則可以免費繼承這些框架。
此外,SwiftUI 和Swift 還可以讓更多的用戶更容易進入到編程領域,包括那些對創作App 有想法但缺乏相關編程技能的人。通過使其開發工具更容易被學習和使用,蘋果可以繼續在全球範圍內擴展開發者基礎,為他們提供最好的平台來展示和銷售作品,當然這也是廣大蘋果用戶們喜聞樂見的成果。