Jetpack Compose 從入門到實戰

王鵬//關振智//曾思淇著

  • 出版商: 機械工業
  • 出版日期: 2022-08-01
  • 售價: $654
  • 貴賓價: 9.5$621
  • 語言: 簡體中文
  • 頁數: 331
  • 裝訂: 平裝
  • ISBN: 7111711378
  • ISBN-13: 9787111711377
  • 相關分類: Android
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

Jetpack Compose是谷歌推出的全新Android UI開發框架,
它採用更為先進的聲明式開發思想,極大地提升了應用界面的開發效率。
Compose顛覆性的設計理念使得其學習曲線較為陡峭,因此本書對知識點進行了系統全面的整理和編排。
全書共分11章,從寫第一行Hello World到實現一個全功能的產品級項目,
幫助讀者規劃出了從入門到精通的*佳學習路徑。
除了對知識點細緻的講解之外,書中還穿插了大量源碼示例和*佳實踐,
幫助讀者及時鞏固所學的內容,真正達到學以致用。

本書適合Jetpack Compose初學者閱讀,同時書中的很多經驗總結,
對於已經有一定基礎的開發者也同樣具有參考價值。

作者簡介

王鵬
谷歌開發者專家(GDE),字節跳動移動端架構師,CSDN、掘金知名博主,
GDG 社區特邀講師,多次受邀在Google DevFest、I/O Extended 等活動進行演講,
國內首批一批接觸Compose 的開發者,熱衷於Android Jetpack 新技術的實踐與推廣。

關振智
 北京郵電大學計算機系碩士,國內*早一批接觸Compose 的開發者,Jetpack Compose 中文技術社區核心成員。
掘金優秀創作者, 谷歌開發者社區特邀嘉賓講師,產出的大量技術內容在社區廣受好評。
熱愛技術,樂於分享。

曾思淇
Jetpack Compose 中文技術社區主要維護者,開源技術愛好者,
熱衷於Compose 相關技術的研究與推廣,
為社區貢獻了大量Compose 入門教程,基於Compose 開發過多個獨立App。

目錄大綱

前言
第1章全新的Android UI框架/
1.1Jetpack Compose是什麼?/
1.1.1谷歌為什麼要推出Compose?/
1.1.2命令式UI與聲明式UI/
1.1.3Compose API設計原則/
1.1.4Compose與View的關係/
1.1.5不只是Android UI框架/
1.2搭建開發環境/
1.2.1準備所需要的開發工具/
1.2.2部署開發環境/
1.3創建第一個Compose應用/
1.3.1創建新的Compose項目/
1.3.2保持Compose版本更新/
1.3.3在模擬器中運行Compose應用/
1.3.4分析第一個Compose應用/
1.3.5對Compose應用進行預覽/
1.3.6已有項目引入Compose/
1.4本章小結/
第2章了解常用UI組件/
2.1Modifier修飾符/
2.1.1常用修飾符/
2.1.2作用域限定Modifier修飾符/
2.1.3Modifier實現原理/
2.2常用的基礎組件/
2.2.1文字組件/
2.2.2圖片組件/
2.2.3按鈕組件/
2.2.4選擇器/
2.2.5對話框/
2.3常用的佈局組件/
2.3.1線性佈局/
2.3.2幀佈局/
2.3.3Spacer留白/
2.3.4ConstraintLayout約束佈局/
2.3.5Scaffold腳手架/
2.4列表/
2.4.1Lazy Composables/
2.4.2LazyListScope作用域/
2.4.3內容填充/
2.5本章小結/
第3章定制UI視圖/
3.1構建UI頁面/
3.1.1配置顏色、字體與形狀/
3.1.2Welcome歡迎頁/
3.1.3LoginIn登錄頁/
3.1.4Home主頁/
3.1.5佈局預覽/
3.2主題/
3.2.1MaterialTheme介紹/
3.2.2理解MaterialTheme與
CompositionLocal/
3.2.3定制主題方案/
3.3本章小結/
第4章狀態管理與重組/
4.1狀態管理/
4.1.1什麼是狀態?/
4.1.2單向數據流/
4.1.3Stateless與Stateful/
4.1.4狀態的定義/
4.1.5狀態上提/
4.1.6狀態的持久化與恢復/
4.1.7使用ViewModel管理狀態/
4.1.8LiveData、RxJava、Flow轉State/
4.1.9狀態的分層管理/
4.2重組與自動刷新/
4.2.1智能的重組/
4.2.2避免重組的“陷阱”/
4.2.3如何確定重組範圍?/
4.2.4優化重組的性能/
4.3生命週期與副作用/
4.3.1Composable的生命週期/
4.3.2Composable的副作用/
4.3.3副作用API/
4.3.4異步處理的副作用API/
4.3.5狀態創建的副作用API/
4.3.6副作用API的觀察參數/
4.4本章小結/
第5章Compose組件渲染流程/
5.1組合/
5.2佈局/
5.2.1Layout Modifier/
5.2.2LayoutComposable/
5.2.3固有特性測量Intrinsic/
5.2.4SubcomposeLayout/
5.3繪製/
5.3.1Canvas Composable/
5.3.2DrawModifier/
5.3.3使用平台原生Canvas/
5.3.4實戰:Canvas繪製波浪加載/
5.4本章小結/
第6章讓頁面動起來:動畫/
6.1動畫分類/
6.2高級別動畫API/
6.2.1AnimatedVisibiliy/
6.2.2AnimatedContent/
6.2.3Crossfade/
6.2.4Modifier.animateContentSize/
6.3低級別動畫API/
6.3.1animate*AsState/
6.3.2Animatable/
6.4Transition過渡動畫/
6.4.1updateTransition/
6.4.2rememberInfiniteTransition/
6.5AnimationSpec動畫規格/
6.5.1spring彈跳動畫/
6.5.2tween補間動畫/
6.5.3keyframes關鍵幀動畫/
6.5.4repeatable循環動畫/
6.5.5infiniteRepeatable無限循環動畫/
6.5.6snap快閃動畫/
6.5.7使用Easing控制動畫節奏/
6.6AnimationVector動畫矢量值/
6.6.1TwoWayConverter/
6.6.2自定義實現TwoWayConverter/
6.7實戰:Compose實現骨架屏的動畫
效果/
6.7.1定義背景色/
6.7.2為Brush添加動畫/
6.7.3實現骨架屏佈局/
6.8實戰:Compose實現收藏按鈕動畫
效果/
6.8.1實現方式1:高級別API
(AnimatedContent)/
6.8.2實現方式2:低級別API
(updateTransition)/
6.9本章小結/
第7章增進交互體驗:手勢處理/
7.1常用的手勢處理Modifier/
7.1.1Clickable點擊/
7.1.2CombinedClickable複合點擊/
7.1.3Draggable拖動/
7.1.4Swipeable滑動/
7.1.5Transformable多點觸控/
7.1.6Scrollable滾動/
7.1.7NestedScroll嵌套滑動/
7.2定製手勢處理/
7.2.1使用PointerInput Modifier/
7.2.2手勢事件方法作用域
awaitPointerEventScope/
7.3手勢結合動畫/
7.4本章小結/
第8章為Compose添加頁面導航/
8.1在Compose中使用Navigation/
8.1.1認識Jetpack Navigation/
8.1.2Navigation for Compose/
8.1.3導航時攜帶參數/
8.1.4Navigation搭配底部導航欄/
8.1.5嵌套導航圖Nested Navigation 
Graph/
8.1.6導航DeepLinks/
8.1.7Navigation對ViewModel的
支持/
8.2在Compose中使用Hilt/
8.2.1認識Dagger Hilt/
8.2.2在Compose中使用Hilt/
8.3本章小結/
第9章Accompanist與第三方組件庫/
9.1Accompanist/
9.1.1SystemUiController/
9.1.2Pager/
9.1.3SwipeRefresh/
9.1.4Flow Layouts/
9.1.5Insets/
9.2Lottie/
9.2.1配置依賴/
9.2.2Lottie動畫資源/
9.2.3創建Lottie動畫/
9.3Coil/
9.3.1配置依賴/
9.3.2AsyncImage/
9.3.3SubcomposeAsyncImage/
9.3.4AsyncImagePainter/
9.4本章小結/
第10章項目實戰:小遊戲Tetris/
10.1整體項目架構/
10.2磚塊矩陣(BrickMatrix)/
10.2.1drawBrick繪製磚塊單元/
10.2.2drawMatrix繪製磚塊
矩陣/
10.3下落中的磚塊(Sprite)/
10.3.1Shape磚塊組合形狀/
10.3.2Sprite定義下落磚塊/
10.3.3drawSprite繪製下落磚塊/
10.4遊戲機體(GameBody)/
10.4.1GameButton/
10.4.2組裝Button、發送Action/
10.4.3Clicable:分發事件/
10.5訂閱遊戲狀態(ViewState)/
10.5.1ViewState/
10.5.2Action/
10.5.3reduce/
10.6預覽遊戲畫面/
第11章項目實戰:聊天應用Chatty/
11.1整體系統架構/
11.2登錄註冊模塊/
11.3IM聊天模塊/
11.3.1對話列表頁/
11.3.2對話詳情頁/
11.4聯繫人模塊/
11.4.1通訊錄頁/
11.4.2添加搜索頁/
11.4.3二維碼掃描頁/
11.4.4陌生人信息頁/
11.5用戶信息模塊/
11.5.1個人信息頁/
11.5.2信息編輯頁/
11.5.3聯繫人信息頁/
11.6發現模塊/
11.7適配暗黑主題/