写书的契机

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月底将恢复原价,心动不如趁现在~

《Jetpack Compose 从入门到实战》带你踏上 Compose 开发之旅~相关推荐

  1. NGUI从入门到实战第1章开启NGUI学习之旅

    NGUI从入门到实战第1章开启NGUI学习之旅 NGUI是Unity最重要的插件之一.使用NGUI可以高效地为游戏添加界面.本书将带领大家学习NGUI.作为NGUI学习之旅的第一站,本章会在整体上介绍 ...

  2. Flink 最锋利的武器:Flink SQL 入门和实战带你了解NBA球星数据

    一.Flink SQL 背景 Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言. 自 2015 年开始,阿里巴巴开始调研 ...

  3. C语言推荐书籍从入门到进阶带你走上大牛之路(珍藏版)

    首先是关于学习技术书籍的一些心得,很多人给我留言说看不下去书,想看视频学习,我不反对看视频学习,但是编程作为一门需要不断钻研的技术,只靠看视频是注定不可能成为专家的,还是得从经典的书籍中汲取知识,再加 ...

  4. C++推荐书籍从入门到进阶带你走上大牛之路(珍藏版)

    C++是世界上最流行的编程语言之一.C++是C语言的扩展,这两门语言的潜力都是不可估量的,这就是为什么无论什么规模的企业都可以使用它们,因为它具有可扩展性和可移植性. 随着语言的不断发展,学习它的人数 ...

  5. C语言推荐书籍pdf版附下载链接共30+本从入门到进阶带你走上大牛之路

    前言: 技术书阅读方法论 一.速读一遍(最好在1~2天内完成) 人的大脑记忆力有限,在一天内快速看完一本书会在大脑里留下深刻印象,对于之后复习以及总结都会有特别好的作用. 对于每一章的知识,先阅读标题 ...

  6. Vue.js入门 0x13 实战:知乎日报项目开发-文章详情页

    加载内容 右侧的文章内容区域封装成了一个组件.在components目录下新建daily-article.vue组件,它唯一接收唯一的一个prop:id,也就是文章的id,如果id变化了,就说明切换了 ...

  7. web前端入门到实战:前端高手在CSS 开发效率的必备片段

    这篇文章会记录我们平时常用到的 CSS 片段,使用这些 CSS 可以帮助我们解决许多实际项目问题中遇到的,墙裂建议点赞收藏再看,方便日后查找 清除浮动 浮动给我们的代码带来的麻烦,想必不需要多说,我们 ...

  8. webapp入门到实战_web前端入门到实战:前端高手在CSS 开发效率的必备片段

    这篇文章会记录我们平时常用到的 CSS 片段,使用这些 CSS 可以帮助我们解决许多实际项目问题中遇到的,墙裂建议点赞收藏再看,方便日后查找 清除浮动 浮动给我们的代码带来的麻烦,想必不需要多说,我们 ...

  9. 微信小程序开发入门与实战 ②(小程序与前端开发的区别)

    @作者 : SYFStrive @博客首页 : HomePage

最新文章

  1. XFire发布Web Services
  2. WinXP不能共享Win7的打印机的解决方法
  3. hibernate 插入 效率_Hibernate:检索策略的学习1
  4. AI安防火热战况下 算法到场景还有多远?
  5. python 可执行文件_如何通过Python函数运行的可执行文件的终端...
  6. FreeRTOS-绪论
  7. 公司采购 流程flowable例子
  8. 基于机器视觉的安利纽崔莱瓶子外观检测
  9. shell for循环命令行_24 道 shell 脚本面试题
  10. vmalloc与mmap
  11. 软件测试面试题:设计系统测试计划需要参考的项目文档?
  12. 关于icon小图标的实现
  13. 各种dns:百度DNS/阿里DNS/114DNS/腾讯DNS/谷歌DNS/OpenDNS 对比评测
  14. 解决word各级标题序号后面有长空格
  15. 银行计算机岗社会招聘考什么题目,必知丨应聘银行技术岗,考试都考啥?
  16. 家庭的和睦,人生的平淡
  17. 怎样把jpg格式转换成pdf
  18. 根号分治 + 入门题目
  19. 彻底弄透Java处理GMT/UTC日期时间
  20. 太乐地图下载器5.0.5(破解版)

热门文章

  1. 用手机拍商品图的技巧 、五步拍出不输相机效果的商品图、新品发朋友圈的技巧
  2. CE修改器入门:代码替换功能
  3. 心理学与经济学的相通性
  4. ​以边为中心的时变功能脑网络及其在自闭症中的应用
  5. 微信小程序及Java后台测试登录
  6. 深圳中小企业疫情补贴政策申请,疫情补贴找谁申请
  7. 前缀表达式后缀表达式
  8. nginx静态代理图片
  9. 数组和链表联系和区别
  10. STC15F104W 点亮一个LED 上手初测