SwiftUI 會取代 UIKit 么?

Jatin Patel· 2020-07-09
本文來自 kodytechnolab.com ,作者 Jatin Patel

image.png

作者 | Jatin Patel
來源 | kodytechnolab.com

WWDC20 又為 SwiftUI 發展注入了強大的動力,在 200+ 個 Session 中,至少有 17 個 Session 直接或間接地與 SwiftUI 相關,足見 Apple 對 SwiftUI 的重視程度。

在 2019 年的 WWDC 上,蘋果發布了 SwiftUI 框架,在整個蘋果開發者社區中引起了轟動。Craig Federighi 在會議上向我們展示了如何使用 SwiftUI 將原本數百行的代碼變成幾十行。

這不正是每個開發人員想要的東西么?在這篇文章中,我們將討論 SwiftUI 的獨有功能,以及它將如何改變我們的編碼方式。

自從發布以來,開發人員就一直在期待 SwiftUI 的各種新功能。誠然,SwiftUI 是一個突破性的 Apple 框架,能幫助我們開發出出色的、功能強大的應用程序。如果你還是一個新手,并且不知道 "SwiftUI 到底是什么",那么答案都在這里。

用蘋果自己的話說:

SwiftUI 提供了一種創新的、非常簡單的方法,可以借助 Swift 強大能力在所有的 Apple 平臺上構建 UI。僅使用一組工具和 API 就可以為任何 Apple 設備構建 UI。SwiftUI 有易于閱讀且易于編寫的聲明式 Swift 語法,可以與新的 Xcode 設計工具無縫協作,以使你的代碼和設計完美同步。自動支持動態類型、Dark Mode、本地化和可訪問性,這意味著你的第一行 SwiftUI 就已經是你編寫過的功能最強大的 UI 代碼了。

所以,SwiftUI 打破了 Apple 現有的體系,它是一個新的高級工具包,將改變 iOS 設計、構建應用程序的方式。再次強調一下,SwiftUI 是針對 Apple 所有平臺的,即包括 iOS、iPadOS、macOS、watchOS 和 tvOS。

通過使用 Swift 語言,它使 Apple 中的應用程序開發更易上手,且開發得更快。SwiftUI 框架使代碼更具可讀性,減少了應用開發的時間。它能幫助開發人員以簡單且聲明式的方式構建用戶界面,例如自定義控制、動畫和特效。

讓我們更進一步,來探索 SwiftUI 的潛力。這個框架提供了一個 Apple 平臺經典和獨特功能的選項。你可以盡情享用諸如鼠標和觸控板的速度、touch bar、Dark Mode、動態類型、本地化等等功能。

SwiftUI 將很快成為 Google Flutter UI 框架的強大競爭動手。

不過,這里還有另一個問題,

SwiftUI 會取代 UIKit 么?

答案是"否",SwiftUI 不會取代 UIKit。原因是 Apple 已經讓 SwiftUI 與 UIKit 高度兼容。因此,在開發過程中并不需要更改現有代碼。另外,在 SwiftUI 中,還可以使用 UIKit 和 Swift 來創建自定義視圖。

接下來,我們將更深入在研究 SwiftUI 的功能,以及這些功能如何將各種范式轉移到應用程序開發中。

運行在 Apple 最新的操作系統中

使用 SwiftUI 開發的應用程序將在所有 Apple 的 OS 平臺上兼容,但不是支持老版本,同時需要 Xcode 11+。

Native 特征

即使使用 SwiftUI 開發的代碼可以在 Apple 所有操作系統上運行,但它是 native 開發。它適應了平臺的所有 native 特性和功能,從而可以快速地提供交互式 UI。

SwiftUI 框架可以與諸如 ARKit 和自動語言優化之類的 API 集成在一起,這更加增加了其靈活性。這意味著它將為開發人員和用戶帶來無縫的 Swift iOS 體驗。

不支持 Auto Layout

Auto Layout 允許開發人員更加靈活支使用 UI,曾經是布局聲明的首選方式之一。但是,新的 SwiftUI 并不支持 Auto Layout,而是支持結構化的布局。它的功能幾乎與 WatchOS 中的布局處理相同。

聲明式語法

聲明式語法為 SwiftUI 吸引了數百萬的目光。聲明式語法意味著以簡單易懂的方式來實現 UI。我們可以在應用程序中以聲明式的方式定義元素,并設置它們的字體類型、大小、對齊方式、顏色等屬性,還可以以簡單的幾行代碼輕松地引入復雜的動畫。這種聲明式語法使管理和創建 UI 元素變得更加順暢、一致和輕松。這種易于開發和部署的方式減少了應用程序的總體開發時間。

不支持Storyboard

SwiftUI 用代碼替換了 Storyboard。這意味著使用這個框架來制作可重用的視圖會更加容易。而 SwiftUI 的方式更加強大,因為開發人員可以決定是使用可視化視圖操作還是直接用代碼實現。

拖放 UI

令人驚訝的是,SwiftUI 允許開發人員選擇任何元素,只需從庫中拖動各種控件并直接在畫布并對其自定義即可。開發人員可以自由地重新排列控件,更改設計、字體、顏色等。通過這種方式,開發人員可以使 UI 與代碼完美同步。

支持 Dark Mode

Dark Mode 的適配需要一些時間,而 SwiftUI 卻是天生支持。SwiftUI 讓 UI 在夜間也能友好的顯示,從而讓用戶獲取更好的體驗。對于那些在晚上不習慣使用明亮主題的開發人員而言,這也是個非常好的消息。

預覽

利用 SwiftUI 框架的預覽功能,開發人員有機會創建多個設計預覽,并將其顯示在多種設備和不同的方向上。這是預先體驗 App 設計、顏色和其它方面的非常棒的方法。

動態替換

Xcode 11 集成了 Swift 編譯器和運行時。因此,可以實時構建和運行 iOS 應用程序的代碼。這意味著 canvas 不是只展示 UI 的大致外觀,而是實時展示應用程序及其功能的實際情況。同樣,使用 Xcode 的開發人員可以使用動態替換因子直接在實時應用程序中替換代碼。

視圖組合

新的 SwiftUI 中的視圖非常輕巧,在創建視圖時性能損失基本為 0。SwiftUI 的視圖以 Swift 結構體的方式進行訪問,開發人員可以創建或將其作為值類型參數傳遞。通過消除過多的內存分配以及一些子類和動態消息的處理,開發人員能從中受益。而 UIView 則不支持此功能。

此外,在顯示和布局周期中,可以將參數和修飾符統一為一個實體。對于開發人員而言,可以根據要求來構建特殊用途的視圖。

iOS 13+ 兼容性

由于擁有諸如 Dark Mode、本地化等強大功能,可以說,SwiftUI 是最適合編碼的。借助易于編寫的代碼,SwiftUI 徹底改變了我們開發 iOS 應用程序的方式。此外,由于它是跨平臺兼容的,這意味著開發人員可以在不失去 native 功能的情況下無縫構建應用程序。

顏色

SwiftUI 的每一項功能都吸引著開發人員朝著它迅速轉變。而談到顏色,這個框架也不會讓你失望。SwiftUI 框架的顏色會根據 dark 和 light 模式自動更改。該框架有標準顏色,如紅綠藍等。

小結

我們希望現在大家都能認同 "SwiftUI 非常強大" 這一觀念,并讓它與其它語言主流語言競爭時更具競爭力。這個框架的更多潛力尚待探索。

丰禾棋牌官网1369 北京快乐8玩法 辽宁十一选五走势图 经典 精选单双中特 中石油股票论坛 陕西体彩十一选五手机版 新加坡5分彩骗局怎么骗 中国股票投资网 甘肃快三今天走势图 5000元炒股一年赚多少 快乐十分开奖官网