開發者眼中的SwiftUI:它為我和用戶帶來了什麼?
6 月份是蘋果用戶和開發者社群非常活躍的時期,蘋果幾大新系統在 WWDC 發布後,果粉們都會紛紛討論 iOS 13,iPadOS 和 macOS 10.15 等的新亮點,並發表自己的評價。而對於開發者來說,新的生態環境給他們帶來的最大驚喜是什麼呢?答案非常一致。從新面孔的蘋果獎學金獲得者到已經數度參加 WWDC 的資深開發者,對於「你看到的最激動人心的事情是什麼?」這個問題,回答無疑都是看到了 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 有想法但缺乏相關編程技能的人。通過使其開發工具更容易被學習和使用,蘋果可以繼續在全球範圍內擴展開發者基礎,為他們提供最好的平台來展示和銷售作品,當然這也是廣大蘋果用戶們喜聞樂見的成果。
※蘋果發布iOS 12.3.2 只為iPhone 8 Plus
※蘋果2019款iPod Touch悄然上架 性能升級
TAG:威鋒網 |