Jetpack Compose 內部原理(繁體中文版)
Jetpack Compose 內部原理(繁體中文版)
關於本書
本書深入探討 Jetpack Compose 的核心原理,這是由 Google 和 Android 團隊推出的全新程式庫,將成為 Android UI 的未來。現在投入時間深入學習其內部原理,將有助於在未來開發現代化且高效能的 Android 應用程式。
如果您對 Jetpack Compose 在 Android 以外的應用場景感興趣,本書同樣能滿足您的需求。Jetpack Compose 內部原理著重於從通用角度探索其編譯器和運行時,使整體內容保持平台無關性。本書還專門提供一個章節來介紹 Jetpack Compose 的多種使用場景,通過程式碼展示了一些非常有趣的實例。
Jetpack Compose 和 Android 是 Google LLC 的商標,本書未經 Google 認可,也未與 Google 有任何從屬關係。
目錄
-
前言
- 為什麼要閱讀本書
- 本書不包含什麼
- 為什麼要寫關於內部原理
- 保持對原始碼的關注
- 程式碼片段和範例
-
1. 可組合函數
- 可組合函數的含義
- 可組合函數的特性
- 調用上下文
- 冪等性
- 避免不受控制的副作用
- 可重新啟動
- 快速執行
- 位置記憶化
- 與 suspend 函式的相似之處
- 可組合函數的顏色
- 可組合函數類型
-
2. Compose 編譯器
- Kotlin 編譯器外掛程式
- Compose 註解
- 註冊編譯器擴充功能
- Kotlin 編譯器版本
- 靜態分析
- 靜態檢查器
- 呼叫檢查
- 型別檢查
- 宣告檢查
- 診斷抑制
- 執行時期版本檢查
- 程式碼生成
- Kotlin IR
- 降級
- 推斷類別穩定性
- 啟用即時字面值
- Compose lambda 記憶化
- 注入 Composer
- 比較傳播
- 預設參數
- 控制流程群組生成
- Klib 和替身的產生
-
3. Compose 運行時
- 插槽表和變更列表
- 深入理解插槽表
- 更改列表
- Composer(組合器)
- 餵養 Composer
- 對變更進行建模
- 優化寫入時機
- 寫入和讀取群組
- 記住值
- 重組範圍
- Composer 中的 SideEffects
- 存儲 CompositionLocals
- 存儲源信息
- 通過 CompositionContext 連接組合
- 訪問當前狀態快照
- 導覽節點
- 保持讀取器和寫入器同步
- 應用變更
- 建立節點樹時的效能
- 如何應用更改
- 附加和繪製節點
- Composition(組成)
- 創建 Composition
- 初始組合過程
- 初始組合後應用更改
- 關於組合的其他信息
- Recomposer
- 啟動 Recomposer
- 重組過程
- 併發重組
- Recomposer 的狀態
-
4. Compose UI
- 將 UI 與 Compose 運行時整合
- 將預定更改映射到樹的實際更改
- Compose UI 視角下的組合
- 從 Compose UI 的角度看 Subcomposition
- 在 UI 中反映變更
- 不同類型的應用器
- 具現化新的布局節點
- 完整流程
- 實體化移除節點的變更
- 實現移動節點的變更
- 實現清除所有節點的變更
- Compose UI 中的測量過程
- 測量政策
- 固有測量
- 佈局約束
- LookaheadLayout
- 建模修飾符鏈
- 將修飾符設置到 LayoutNode
- LayoutNode 如何處理新的修飾符
- 繪製節點樹
- Jetpack Compose 中的語義
- 通知語意變更
- 已合併和未合併的語意樹
-
5. 狀態快照系統
- 什麼是快照狀態
- 並發控制系統
- 多版本並行控制(MCC 或 MVCC)
- 快照
- 快照樹
- 快照和執行緒
- 觀察讀取和寫入
- 可變快照
- GlobalSnapshot 與巢狀快照
- StateObjects 和 StateRecords
- 讀取和寫入狀態
- 移除或重用過時記錄
- 變更傳播
- 合併寫入衝突
-
6. 效果與效果處理器
- 認識副作用
- Compose 中的副作用
- 我們的需求
- 效果處理器
- 非暫停效果
- 暫停效果
- 第三方函式庫適配器
-
7. Compose Runtime 的進階使用案例
- Compose runtime 與 Compose UI 的區別
- (重新)認識 composition
- 向量圖形的組合
- 構建向量圖像樹
- 將向量組合整合到 Compose UI
- 使用 Compose 管理 DOM
- 在瀏覽器中的獨立組合
- 結論
Leanpub 60天 100% 滿意保證
在購買後的 60 天內,您可以透過 兩次點擊 獲得任何 Leanpub 購買項目的 100% 退款。
技術上來說,這對我們是有風險的,因為無論如何您都會擁有書籍或課程檔案。但我們對我們的產品和服務,以及我們的作者和讀者都充滿信心,因此我們很樂意為所有銷售的內容提供全額退款保證。
只有親自嘗試才能知道某樣東西是否真的好,而且因為我們提供 100% 退款保證,所以這完全沒有風險!
所以,還有什麼理由不點擊「加入購物車」按鈕呢?
查看完整條款...
在10美元的購買中賺取8美元,在20美元的購買中賺取16美元
對於7.99美元或以上的購買,我們支付80%版稅,對於0.99至7.98美元之間的購買,我們支付80%版稅減去0.50美元固定費用。在10美元的銷售中您可賺取8美元,在20美元的銷售中可賺取16美元。因此,如果我們以20美元售出5000本不退款的圖書,您將賺取80,000美元。
(是的,一些作者在Leanpub上已經賺取了遠超過這個數額的收入。)
事實上,作者們通過在Leanpub上寫作、出版和銷售已經賺取了超過1400萬美元。
了解更多關於在Leanpub上寫作的信息
免費更新。無 DRM 限制。
當您購買 Leanpub 的書籍時,只要作者更新書籍內容,您就能永久免費獲得更新!許多作者在寫作過程中會使用 Leanpub 發布他們的在製書籍。所有讀者都能獲得免費更新,無論他們何時購買書籍或支付多少金額(包括免費)。
大多數 Leanpub 書籍提供 PDF(適用於電腦)和 EPUB(適用於手機、平板電腦和 Kindle)格式。在本頁面右上角會顯示該書提供的格式。
最後,Leanpub 的書籍沒有任何 DRM 複製保護機制,因此您可以在任何支援的設備上輕鬆閱讀。