写书的契机
Jetpack Compose 首次亮相于 2019 年的 Google I/O 大会,彼时的我正在为抖音客户端研发一款基于原生视图渲染的声明式 UI 框架,由于声明式开发理念在当时还过于激进,最终没能在公司内部推广起来。但当我看到 Compose 的出现时还是异常激动的,这证明了我的预判是正确的,客户端声明式开发的时代即将到来,自此我开始默默关注 Compose 的进展。2021年初,Google 突然加大了对 Compose 的推广力度,Compose 的关注度迅速升温,成为 Android 领域目前最火热的新技术之一。
因为我比较早就开始了对 Compose 的研究,21年7月在 Compose 正式版发布之际,机械工业出版的杨源老师联系到我,希望合作一本 Compose 方向的技术书籍。之前在公司推广声明式编程的失败经历让我深刻认识到,由于大家已经习惯于既有的视图开发范式,所以想要学好 Compose 必须要经历一个心智上的全方位转变。如果能够有一本书,可以涵盖从编程思想到应用实战,系统全面地介绍 Compose,对于开发者快速适应和学习这门新技术将会有很大帮助。因此,我欣然接受了邀请,开始了漫长的写作之旅。
写书的过程
写书的过程
人多力量大,我邀请了 Compose 中文社区 - Jetpack Comose 博物馆的两位核心维护者关振智(Ruger)和曾思淇(Nthily) 共同合作编写了这本书,大家在写作时对书中的内容进行了严格考证和反复校对,避免了因个人的错误理解而误导读者的情况出现。市面上也有不少共同著书的合作模式,大多是各位作者分章节编写最后统一合并出版,过程中少有交流,而我们这次合作全程一直密切配合,大家经常在飞书会议上针对一些技术理解和内容编排的问题进行讨论,有时甚至激辩到深夜(这里顺便赞一下飞书, 飞书办公套件为这次合作写书的过程提供了很大帮助),可以说书中各章节最终呈现出来的样子都是大家群策群力的结果。
![]() | ![]() |
邀请专家评审
为了最大限度保证内容,本书也请到了众多专家大佬对书中的内容进行审阅和指导。这里不仅有 Compose 官方团队的核心成员,也有许多国内Android/Kotlin领域的知名技术专家,大家不只是帮忙写写推荐语,而是认真地投入时间和精力对内容进行了审阅,他们认真负责的态度也让这本书内容质量上得到了保障,感谢他们的辛劳付出。
![]() | ![]() | ![]() |
在专家评审过程中也有一些有趣的插曲,比如发现并反馈了一些官网文档的问题,也让我们这本书的评审工作显得更有价值。本书其实也邀请了 Compose 之父 Jim Sporch 协助评审,他答应了协助也对本书内容进行了高度肯定,但是由于我们发出邀请的时间太晚以及翻译耗时等不可抗力,导致 Jim 本人无法赶在新书上市前完成 feedback,如果这本书有机会再版时,希望拿到他的推荐语,弥补这个遗憾。
本书的内容
本书总页数多达 331 页,且以小字号印刷,内容密度非常高。全书共分 11 章,从第一行 Hello World 到实现一个产品级应用,帮助读者规划出从入门到精通的最佳学习路径。在对知识点细致的讲解之外,书中还穿插了大量示例代码和最佳实践,对于 Compose 的初/中级读者极具学习和参考价值:
- 第一章介绍 Compose 的前世今生,让你从源头了解我们为什么需要学习这样一门新技术;同时在这一章你将运行你的第一个 Hello World 程序,正式开始我们的学习之旅。
- Compose 作为一个 UI 开发工具,第二章将向你介绍它的各种常用的功能以及布局组件,这些组件覆盖了绝大多数的开发需求,可以在完全脱离 Android View 的情况下开发各种样式的 UI 界面。
- 在第二章的基础上,第三章将带你用 Compose 组件手把手搭建功能完整的 UI 页面。同时我们还会深入学习主题的使用及原理以及 Material Design 的一些相关知识。
- 第四章我们将系统的学习 Compose 的状态管理,重组,副作用等知识点,它们才是驱动 UI 变化的关键,让我们使用 Compose 组件搭建的静态页面“动”起来。
- 第五章我们将了解 Composable 从组合到渲染到屏幕的整个流程,并且可以通过相关 API 的学习,掌握自定布局以及自定义绘制等高级玩法,帮你定制更复杂的 UI 效果
- 第六章我们将学习 Compose 事件分发相关的 API 及其背后的实现原理。基于协程的事件处理 API 相较于传统的事件处理方式更加简洁,一定会让你印象深刻。
- 第七章我们学习如何给我们的 UI 添加炫酷的动画。Compose 提供了一些列丰富的动画 API, 有的可以提供开箱即用的便利性,有的则提供了灵活多样的定制能力,它们都可以帮助你化身为动画达人
- 第八章你将学习到如何基于 Jetpack 系列组件为 Compose 添加页面导航和依赖注入等能力。这有助于我们摆脱对 Activity 或 Fragment 的依赖,打造真正的 Compose First 项目
- 第九章带你简单了解一些常用三方库对 Compose 的支持,特备是 Accompanist 官方组件之外补充了不少新的工具,这些工具与基础组件都将成为你日常开发中最趁手的武器。
- 第十章和第十一章都是实战章节,你将参与两个不同类型产品的完整实现,开发过程中你需要对前面章节学习到的各种知识进行综合运用。实战项目有助于你巩固已学到的内容,也能为你在生产环境中引入 Compose 树立决心和自信。如果对本书内容有任何疑问,可以通过 Jetpack Compose 博物馆公众号或者访问 jetpackcompose.cn 网址进行反馈,也欢迎加入到 Compose 中文社区与更多 Compose 爱好者交流技术~
致谢
- 本书得到了谷歌开发者社区的大力支持,谷歌中国的申强老师特意邀请了多位谷歌工程师对本书进行审阅,并最终给予了高度认可。谷歌开发者社区也因此计划采购一批新书用于今后的 GDG 等活动奖品,希望借助此书推动 Compose 在国内的学习和使用。
- 此外,本书的成功上市也少不了技术圈内众多好友的支持,感谢凛老师热心帮忙设计的封面;黄林晴、朱江在新书宣发方面的建议;Compose 博物馆社群活跃的技术氛围和大佬们的日常讨论都为本书添加了充足的养分。等等等等太多的帮助无法一一答谢,希望这本书能发挥它应有的价值,不辜负大家的信赖和帮助。
- 最后感谢机械工业出版社的杨源老师,正是由于他对新技术趋势敏锐的洞察力,才有了这本书的诞生,如果有计划写书的朋友,欢迎联系杨老师进行合作。
购买方式
目前京东已经开启了线上预售,搜索 Jetpack Compose 从入门到实战 可以找到本书。各电商平台新书预售的普遍优惠折扣是7~8折,在我们的努力争取下拿到了 全网最低66折 来回馈一直以来关注我们的粉丝与广大技术爱好者,限时折扣8月底将恢复原价,心动不如趁现在~
👉🏻👉🏻 早鸟购书链接 👈🏻👈🏻