WWDC19 蘋果宣布全新 UI 框架 SwiftUI

2021-01-10 開源中國

2019 年 WWDC 大會上,蘋果在壓軸環節向大眾宣布了基於 Swift 語言構建的全新 UI 框架 —— SwiftUI。開發者可通過它快速為所有的 Apple 平臺創建美觀、動態的應用程式。

在介紹過程中,蘋果公司軟體工程高級副總裁 Craig Federighi 演示了如何將一百行代碼簡化為大約十幾行。

據官方介紹,SwiftUI 是一個創新且非常方便使用的框架,開發者通過 Swift 語言的強大功能即可為蘋果的所有硬體設備構建用戶界面 —— 只需使用一套工具和 API。

此外,SwiftUI 使用了聲明式的 Swift 語法,可讀性比較高,編寫起來也比較容易理解。SwiftUI 可與新的 Xcode 設計工具無縫協作,讓代碼和設計完美同步,還提供對動態類型、暗黑模式、本地化和可訪問性的自動支持。

下面簡單介紹一下 SwiftUI。

聲明式語法

SwiftUI 使用了聲明式語法,所以開發者能夠十分輕易地描述用戶界面應該做什麼。例如,編寫需要包含文本欄位的項目列表時,開發者可以用代碼描述每個欄位的對齊方式、字體和顏色。代碼也比以前更簡單,更易於閱讀。

這種聲明式風格非常適用於像動畫這樣複雜的元素。通過 SwiftUI,開發者可輕鬆地將動畫添加到幾乎任何控制項。

擁有更直觀的新設計工具

Xcode 11 包含更直觀的新設計工具,可讓開發者通過拖拽的方式使用 SwiftUI 構建界面,在這過程中可以直接設置控制項的相關屬性。

當在設計工具中工作時,所編輯的內容會立刻反映到代碼上,如果從模擬器切換到手機,手機也能立馬看到預覽效果。

為所有的蘋果設備提供原生體驗

SwiftUI 是真正的原生 UI 框架,建立在蘋果數十年打磨用戶界面的經驗上。開發者通過少量代碼和交互式設計就能使用這個框架。

SwiftUI 示例代碼

聲明布局

List(landmarks) { landmark in HStack { Image(landmark.thumbnail) Text(landmark.name) Spacer() if landmark.isFavorite { Image(systemName: "star.fill") .foregroundColor(.yellow) } }}

構建可復用的組件

struct FeatureCard: View { var landmark: Landmark var body: some View { landmark.featureImage .resizable() .aspectRatio(3/2, contentMode: .fit) .overlay(TextOverlay(landmark)) }}

簡便的動畫創建方式

VStack { Badge() .frame(width: 300, height: 300) .animation(.basic()) Text(name) .font(.title) .animation(Animation.basic().delay(0.25))}

SwiftUI 支持的設備要求版本較高,將在7月份開啟公測,官方介紹如下:

iOS 13.0+ Beta
macOS 10.15+ Beta
UIKit for Mac 13.0+ Beta
tvOS 13.0+ Beta
watchOS 6.0+ Beta

SwiftUI 文檔地址 | SwiftUI 官方教程 | SwiftUI 官方示例代碼

相關焦點

  • 蘋果發布 iOS & iPadOS 13.1 beta 4 版本;Dart 2.5正式公布;SwiftUI View的生命周期
    2019-09-19由於文章內連結無法直接跳轉,可點擊左下方「閱讀原文」查看相關連結關鍵詞:Dart 2.5、CTR
  • cube-ui,一個vue.js為基礎手機端UI框架
    最近一直關注前端技術方面,在github上也一直關注著前端技術框架的推薦等。今天為大家簡單介紹一下cube-ui這個以vue.js為基礎的手機端UI框架!目前cube-ui框架已經在github上獲得5.5k個start,821個fork。
  • 常用的UI框架你了解哪些?
    常用UI框架Ant-Design:阿里巴巴出品,基於 React 的 UI 框架。AmazeUI:又叫「妹子 UI」,一款 HTML5 跨屏前端框架。Layui:輕量級框架(Layer)。官網地址:https://at-ui.github.io/at-ui//zh-CNGithub:https://github.com/didi/cube-ui/FlutterFlutter是谷歌的移動端UI框架,可在極短的時間內構建Android和iOS上高質量的原生級應用
  • Semantic UI 1.4.0 發布,前端 UI 框架
    now formatted Thanks PSytonAccordion - Added inverted accordion variationBugs 修復Progress - Fixes bug where ui
  • 受歡迎的vue前端UI框架top5
    Vue.js是一套構建用戶界面的 漸進式框架。與其他重量級框架不同的是,Vue 採用自底向上增量開發的設計。實用的 Vue.js組件庫可以幫助我們快速搭建頁面,下面介紹小編認為比較受歡迎的五個vue前端ui框架。
  • 開源UI 框架-Win10 風格的前端響應式 UI 框架 Win10-UI
    Win10-UI是一款win10風格的後臺UI框架。它使用了豐富的win10桌面元素,包括桌面圖標、窗口化子頁面管理、開始菜單、動態小磁貼等組件,兼容主流現代瀏覽器及移動端的屏幕尺寸,適合快速開發後臺管理系統的前端界面。
  • 好看又好用的前端UI框架
    當前網絡上有著眾多的UI框架供開發者們使用,推薦幾款個人喜歡的好看又好用的UI框架。1. Bootstrap這個不用多說了,大家都知道。除了框架本身外,還擁有大量的免費主題供大家套用,用起來真的香。官網:https://material-ui.com/Material-UI
  • kuapingUI 1.4 版本發布,跨屏 UI-bootstrap 大組件 ui 框架
    kuapingUI 1.4 版本發布,優化了部分代碼,修復了已知問題,增加了頭圖BANNER 的視頻背景效果,增加了1個「新聞列表」組件,3個「常見問題」組件,2個「招聘列表」組件等bootstrap大組件ui
  • 基於Vue 的 django admin 主題框架 simpleui 發布 2.1.4
    北京時間6月18日,django admin主題框架 simpleui 發布2.1.4版本。
  • Semantic UI 1.8.1 發布,前端界面開發框架
    Input - ui labeled input now forces  table-cell so that it can use ui dropdown, added example in ui docs with dropdownInput - Fix border radius on ui action
  • kuapingUI 1.8 版本發布,跨屏 UI-bootstrap4+ 大組件 ui 框架
    演示地址基於bs 4 http://ui.kuaping.com/bs4/ 基於bs 3http://ui.kuaping.com關於kuapingUI框架如果說Boostrap提供了一個可靠的網頁元素UI組件,來構建一個網頁,那麼跨屏UI框架,則在bootstrap基礎上提供了更為完整的網頁組件,例如「
  • WeUI - 為微信 Web 服務量身設計的 UI 框架
    WeUI - 微信基礎樣式庫簡介WeUI,是 Tencent(騰訊開源) 在 Github 上開源的微信風格的基礎樣式庫,項目位於 https://github.com/Tencent/weui   <a href=&34; class=&34;>綠色按鈕</a>    </body></html>也可以通過 npm 進行下載,引入到前端項目中:npm install --save weui
  • 超優秀 Vue+ElementUI 桌面端一站式框架MyUI
    my-ui 新德匯推出的基於vue.js+element-ui 構建的web前端項目工程框架。安裝$ npm i element-ui; icon="el-icon-menu"> 默認風格 <template v-slot:footer>底部</template> </my-panel> </div></template><script> import {Button} from 'element-ui
  • Semantic UI 1.0 發布,前端 UI 框架 - OSCHINA - 中文開源技術...
    Styled accordions are now included as a variationui styled accordionList - List item selectors are now more strict, list items must be immediate children ofui listorui list list
  • 2020年5個最佳Vue移動端組件庫|UI框架
    1、Mint UI餓了麼開源的移動端UI組件庫,基於vue.js的移動端UI框架,包含豐富的 CSS 和 JS 組件,能夠滿足日常的移動端開發需求。http://mint-ui.github.io/https://github.com/ElemeFE/mint-ui特性
  • django 主題框架 simpleui 迎來 2.5 版本,增加眾多新功能
    本文演示demo源碼地址:https://github.com/newpanjing/simpleui_demo
  • SimpleUI 2.0 發布,採用element-ui+vue給django admin帶來全新體驗
    該主題對Django的界面進行了大量的改進,讓Django Admin成為更符合國人使用習慣的框架。 Django Admin默認界面設計語言存在著的一些不足,比如色彩單一,大量線條的使用,分割化明顯。將這些不足歸類一下就是界面單調、雷同性明顯、缺少驚喜。
  • 這些開發微信小程序的UI組件和框架,你們都知道嗎?
    如果完成從0開始開發的話,成本還是蠻高的,所以我們需要藉助現成的UI組件和框架來為我們節省一些時間。,各種小程序組件主流框架等,並且提供了專門的命令行工具。ui組件,所以就只支持類似uni-app的vue框架github地址:https://github.com/dcloudio/uni-ui.git
  • 多平臺快速開發的UI框架
    uView UI,是uni-app生態最優秀的UI框架,全面的組件和便捷的工具會讓您信手拈來,如魚得水因此,uView應運而生,uView的目標是成為uni-app生態最優秀的UI框架。關於uView的取名來由,首字母u來自於uni-app首字母,uni-app是基於Vue.js,Vue和View(延伸為UI、視圖之意)同音,同時view組件uni-app中 最基礎,最重要的組件,故取名uView,表達源於uni-app和Vue之意,同時在此也對它們表示感謝。
  • 蘋果發布全新SwiftUI框架,原生支持所有蘋果設備平臺
    在昨天的 WWDC2019 上,Apple 推出了一個全新的 SwiftUI 框架,這是一個現代化的 UI 界面編碼結構,它是從頭開始構建的,以利用 Swift