swift:由Apple在2014年WWDC上發布
swiftUI:由Apple在2019年春夏之交的WWDC上發布
swiftUI是由Apple用swift語言打造的重量級系統框架,采用的是聲明式編程
適用人群:
“現有的 iOS 開發從業者”
“希望學習 iOS 開發的其他平臺開發者”
本書一共三大部分
第一部分:swiftUI初步
“本書會首先通過創建一個計算器 app 來介紹 SwiftUI 的基本概念,包括通過使用 View 來描述 UI,基本控件和容器的使用,利用 modifier 來配置 UI,以及調整布局等內容。這些步驟讓我們可以得到一個不錯的用戶界面。接下來,我們會實際使用事件和模型數據讓計算器可以正常工作。”
“第二部分,Combine 框架”
“Combine 框架非常適合用來配合聲明式的 SwiftUI,創建出穩定和單向的數據流動。相比于傳統的 MVC 架構,使用在 Model 和 View 間使用數據綁定,并將底層事物交由系統處理,可以大大簡化開發工作流程。我們會從 FRP 的基礎開始,介紹 Combine 框架的基礎概念,包括 Publisher,Subscriber,各類 Operator 等。”
“第三部分,綜合實踐”
“在最后一部分中,我們會使用之前準備的 app 的基本框架,以及我們學習到的 Combine 的相關知識,來完成示例 app 的實現。我們會使用響應式編程的方式實際地從網絡 API 獲取數據,并將它們綁定到 SwiftUI 上。你可以學習到如何將 Combine 框架中的概念運用到日常開發里,以此改善代碼設計。”
“聲明式的 UI”
1.“代表 UI 層的 View 并不是真實負責渲染的傳統意義的視圖層級,而是一個“虛擬的”對 View 組織關系的描述 (聲明)。
2.決定 UI 的用戶狀態 State 被存儲在某個或某幾個對象中。
3.用一個函數描述 View,這個函數的輸入參數是 State,即 View = f(State)。
4.框架在 State 改變時,調用上述函數獲取對應新的 State 的 View,并與當前的 View 進行差分計算,并重新渲染更改的部分。”
“一般來說,View = f(State) 中的函數 f 是純函數,也就是對于某個特定的輸入 State,所對應的 View 是確定的,不隨其他變量而改變。我們可以單純地通過控制和改變 State 來得到確定的 UI,這是使用聲明式的方法來構建 UI 的基礎。”
“SwiftUI 和 Combine 簡介”
“SwiftUI 和 Combine 都是在 WWDC 2019 上 Apple 公布的開發框架,它們都是由純 Swift 編寫的。前者是一個聲明式 UI 的用戶界面開發框架,后者是基于響應式編程,用于處理數據流的框架。SwiftUI 依賴 Combine 來進行背后的數據處理部分的工作。”
SwiftUI 和 Combine 是“首批 Swift 系統級框架。”