SwiftUI是為Apple平臺(tái)創(chuàng)建用戶界面的現(xiàn)代化框架,以前所未有的速度創(chuàng)建漂亮、動(dòng)態(tài)的應(yīng)用程序。那么,SwiftUI解決了哪些痛點(diǎn)?帶來哪些好處?代碼風(fēng)格如何?敬請閱讀本文。
剛剛結(jié)束的蘋果WWDC推出了一個(gè)對于開發(fā)者非常重要的框架:SwiftUI。
SwiftUI是一個(gè)非常方便快速的構(gòu)建UI的框架,與最新Xcode設(shè)計(jì)工具無縫協(xié)作,可為所有蘋果設(shè)備構(gòu)建UI。開發(fā)者通過SwiftUI,利用Swift語法就能夠完成代碼和設(shè)計(jì)的同步。
Swift是蘋果最新的開發(fā)語言,有人呼吁谷歌取代TensorFlow的Python。目前在TOIBE排名18位:
在RedMond排名11
SwiftUI還提供對動(dòng)態(tài)類型、暗黑模式、本地化和可訪問性的自動(dòng)支持。
SwiftUI都更新了什么?
此次更新主要有5點(diǎn):
聲明式:更加易讀的代碼。這意味著編寫代碼時(shí)候,我們說出需要的東西,而不需要考慮如何實(shí)現(xiàn)
自動(dòng)化:這意味著我們以前必須手工完成的許多事情,現(xiàn)在可以讓SwiftUI自動(dòng)完成
組合:構(gòu)建小模塊,然后通過將這些小的功能模塊組合起來完成更復(fù)雜的任務(wù)
一致性:這意味著Swift和Objective-C之間不會(huì)再看到奇怪的錯(cuò)誤,或者非常舊的API與新API的混合
簡潔:可以節(jié)省10%-20%的代碼量
如果你剛剛接觸SwiftUI,剛開始你可能需要適應(yīng)一下UIKit的獨(dú)特風(fēng)格,一旦你適應(yīng)了,接下來的過程就一馬平川了。
SwiftUI解決了哪些問題?
雖然Storyboards和XIB很有用,但并不是所有人都喜歡。比如在使用源碼控制時(shí)就很麻煩,會(huì)導(dǎo)致代碼和可視化布局之間移動(dòng)變得非常困難;使用動(dòng)作和outlets時(shí)過于依賴flaky系統(tǒng)的連接。
而SwiftUI通過4種方式,解決了上述問題:
用一個(gè)新的聲明式UI結(jié)構(gòu),定義了的布局的外觀和工作方式
更新UI預(yù)覽會(huì)自動(dòng)生成新的Swift代碼,反之,更改Swift代碼也會(huì)更新UI預(yù)覽
Swift中的任何綁定例如有效的outlets和操作,都會(huì)在編譯時(shí)進(jìn)行檢查,因此在運(yùn)行時(shí)不會(huì)出現(xiàn)UI失敗的風(fēng)險(xiǎn)
雖然背后使用來自UIKit和AppKit的控件,但SwiftUI凌駕于二者之上,能夠有效地使底層UI框架成為一個(gè)實(shí)現(xiàn)細(xì)節(jié),不需要我們特別去關(guān)心
SwiftUI帶來了哪些好處?
讓Xcode for iPad更上一層樓
開發(fā)者對Interface Builder的抱怨不是一天兩天了,它大大增加了分解視圖塊以及從視圖控制器(view controller)使用視圖的工作量,導(dǎo)致出現(xiàn)體積臃腫的視圖控制器,編輯起來也如同噩夢。
此前,無論什么尺寸屏幕的iPad,總是很難將Interface Builder的大小放到iOS上。而擁有更簡單,更快速,更安全的SwiftUI為開發(fā)人員實(shí)現(xiàn)真正的平***立性邁出了一大步。
人人都能編程
SwiftUI繼承了Swift的理念:每個(gè)人都可以編程。現(xiàn)在,一個(gè)全新的用戶界面系統(tǒng)誕生,有助于避免新開發(fā)人員遇到的大量問題。
盡可能的依賴工具
通過消除源碼控制的痛點(diǎn)、消除對UIKit的嚴(yán)重依賴、消除Interface Builder可能遇到的一些連接混淆,蘋果希望開發(fā)者更多的使用Swift,盡可能的依賴工具而不是糾結(jié)于一些不必要的事情。
感受一下SwiftUI的代碼風(fēng)格
Github一個(gè)repo整理了在WWDC 2019發(fā)布的SwiftUI布局框架的一些官方示例:
SwiftUI Essentials
創(chuàng)建和組合視圖:
創(chuàng)建列表和導(dǎo)航欄:
處理用戶輸入:
Drawing and Animation
繪圖路徑和形狀:
動(dòng)畫視圖和過渡
App Design and Layout
復(fù)雜界面組合:
使用 UIControls:
Framework Integration
使用 UIKit:
使用SwiftUI之前要注意的事情
首先,SwiftUI目前只支持10.15 beta以及更新的macOS系統(tǒng),當(dāng)然10.15 beta已經(jīng)是目前最新了。
其次一些可能出現(xiàn)的小問題也是需要注意的。比如,它只支持Swift,你不能在Obj-C里使用SwiftUI;SwiftUI目前還不是很成熟,正在從事iOS開發(fā)的程序員可能更應(yīng)該繼續(xù)使用Obj-C,直到SwiftUI足夠成熟。
-
蘋果
+關(guān)注
關(guān)注
61文章
24580瀏覽量
206216 -
框架
+關(guān)注
關(guān)注
0文章
404瀏覽量
18219 -
可視化
+關(guān)注
關(guān)注
1文章
1285瀏覽量
22419
原文標(biāo)題:蘋果全新UI框架來了!可視化編程,自動(dòng)化減少20%代碼量
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
曙光網(wǎng)絡(luò)SugonRI開發(fā)者社區(qū)正式上線
電商API入門問答:開發(fā)者必知的10個(gè)基礎(chǔ)問題

評論