蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量


蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

【新智元導讀】SwiftUI是為Apple平臺創建用戶界面的現代化框架,以前所未有的速度創建漂亮、動態的應用程序。那麼,SwiftUI解決了哪些痛點?帶來哪些好處?代碼風格如何?敬請閱讀本文。

剛剛結束的蘋果WWDC推出了一個對於開發者非常重要的框架:SwiftUI。

SwiftUI是一個非常方便快速的構建UI的框架,與最新Xcode設計工具無縫協作,可為所有蘋果設備構建UI。開發者通過SwiftUI,利用Swift語法就能夠完成代碼和設計的同步。

Swift是蘋果最新的開發語言,被谷歌用來取代TensorFlow的Python。目前在TOIBE排名18位:

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

在RedMond排名11

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

SwiftUI還提供對動態類型、暗黑模式、本地化和可訪問性的自動支持。

SwiftUI都更新了什麼?

此次更新主要有5點:

  1. 聲明式:更加易讀的代碼。這意味著編寫代碼時候,我們說出需要的東西,而不需要考慮如何實現
  2. 自動化:這意味著我們以前必須手工完成的許多事情,現在可以讓SwiftUI自動完成
  3. 組合:構建小模塊,然後通過將這些小的功能模塊組合起來完成更復雜的任務
  4. 一致性:這意味著Swift和Objective-C之間不會再看到奇怪的錯誤,或者非常舊的API與新API的混合
  5. 簡潔:可以節省10%-20%的代碼量

如果你剛剛接觸SwiftUI,剛開始你可能需要適應一下UIKit的獨特風格,一旦你適應了,接下來的過程就一馬平川了。

SwiftUI解決了哪些問題?

雖然Storyboards和XIB很有用,但並不是所有人都喜歡。比如在使用源碼控制時就很麻煩,會導致代碼和可視化佈局之間移動變得非常困難;使用動作和outlets時過於依賴flaky系統的連接。

而SwiftUI通過4種方式,解決了上述問題:

  1. 用一個新的聲明式UI結構,定義了的佈局的外觀和工作方式
  2. 更新UI預覽會自動生成新的Swift代碼,反之,更改Swift代碼也會更新UI預覽
  3. Swift中的任何綁定例如有效的outlets和操作,都會在編譯時進行檢查,因此在運行時不會出現UI失敗的風險
  4. 雖然背後使用來自UIKit和AppKit的控件,但SwiftUI凌駕於二者之上,能夠有效地使底層UI框架成為一個實現細節,不需要我們特別去關心

SwiftUI帶來了哪些好處?

讓Xcode for iPad更上一層樓

開發者對Interface Builder的抱怨不是一天兩天了,它大大增加了分解視圖塊以及從視圖控制器(view controller)使用視圖的工作量,導致出現體積臃腫的視圖控制器,編輯起來也如同噩夢。

此前,無論什麼尺寸屏幕的iPad,總是很難將Interface Builder的大小放到iOS上。而擁有更簡單,更快速,更安全的SwiftUI為開發人員實現真正的平臺獨立性邁出了一大步。

人人都能編程

SwiftUI繼承了Swift的理念:每個人都可以編程。現在,一個全新的用戶界面系統誕生,有助於避免新開發人員遇到的大量問題。

儘可能的依賴工具

通過消除源碼控制的痛點、消除對UIKit的嚴重依賴、消除Interface Builder可能遇到的一些連接混淆,蘋果希望開發者更多的使用Swift,儘可能的依賴工具而不是糾結於一些不必要的事情。

感受一下SwiftUI的代碼風格

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

Github一個repo整理了在WWDC 2019發佈的SwiftUI佈局框架的一些官方示例:

SwiftUI Essentials

創建和組合視圖:

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

創建列表和導航欄:

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

處理用戶輸入:

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

Drawing and Animation

繪圖路徑和形狀:

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

動畫視圖和過渡

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

App Design and Layout

複雜界面組合:

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

使用 UIControls:

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

Framework Integration

使用 UIKit:

蘋果全新UI框架來了!可視化編程,自動化減少20%代碼量

使用SwiftUI之前要注意的事情

首先,SwiftUI目前只支持10.15 beta以及更新的macOS系統,當然10.15 beta已經是目前最新了。

其次一些可能出現的小問題也是需要注意的。比如,它只支持Swift,你不能在Obj-C裡使用SwiftUI;SwiftUI目前還不是很成熟,正在從事iOS開發的程序員可能更應該繼續使用Obj-C,直到SwiftUI足夠成熟。

你對SwiftUI有哪些期待呢?敬請留言吧!

參考鏈接:

https://github.com/Jinxiansen/SwiftUI/blob/master/README_CN.md

相關推薦

推薦中...