前言
PREFACE
市面上的App种类繁多,但它们的设计目标都是一致的,即通过手机将信息更快、更好地呈现给用户。Android自诞生至今的十余年间,虽然各种新技术、新架构层出不穷,但对于信息呈现的实现方式上仍然沿用着基于View的命令式UI开发方式。而这种命令式的代码往往是Android应用架构中很多弊病的根源,而且随着项目规模越来越大,“病症”会越发明显,“让信息更快、更好地呈现”的产品目标越来越受到挑战。
Jetpack Compose的出现让这一切有了转机。作为Android平台新一代UI开发框架,它直击“病灶”,彻底摒弃传统的命令式代码,通过先进的声明式UI帮助开发者用更少的代码开发出更高质量的App,支撑了产品目标的达成。Compose在开发范式上的先进性让我们无比看好它的未来。回想2017年谷歌发布Kotlin-first到如今才短短数年,Kotlin就已经全面取代Java成为Android首选的开发语言,相信不用多久,我们也会迎来Compose-first的时代,届时Compose必将全面取代View成为Android首选的UI开发标准。如果读者想长期从事Android领域的研发或者是一个Android新技术的爱好者,那么从现在起,让我们一起拥抱这门新技术吧!
本书是Jetpack Compose初学者的良好入门教程,无论是否有Android传统视图的开发基础都可以阅读。但是希望读者已经具备了一定的Kotlin开发经验,不然阅读本书中的代码将十分吃力。书中也有不少进阶的开发技巧和最佳实践,对于已经有过Jetpack Compose使用经验的开发者仍然具有参考意义。本书共11章,具体如下。
• 第1章介绍Compose的前世今生,让读者从源头了解为什么需要学习这样一门新技术,同时在这一章将运行第一个Hello World程序,带领读者正式开始学习之旅。
• 第2章将介绍Compose的各种常用的功能以及布局组件,这些组件覆盖了绝大多数的开发需求,可以在完全脱离Android View的情况下开发各种样式的UI界面。
• 第3章将手把手地带读者用Compose组件搭建功能完整的UI页面。同时还会深入学习主题的使用方法和原理,以及Material Design的一些相关知识。
• 第4章将系统地学习Compose的状态管理、重组、副作用等知识点,它们才是驱动UI变化的关键,让使用Compose组件搭建的静态页面“动”起来。
• 第5章将了解Composable从组合到渲染再到屏幕的整个流程,并且可以通过相关API的学习,掌握自定义布局以及自定义绘制等高级用法,学会如何定制更复杂的UI效果。
• 第6章学习如何给UI添加炫酷的动画。Compose提供了一系列丰富的动画API,有的可以提供开箱即用的便利性,有的则提供了灵活多样的定制能力,它们都可以帮助读者化身为动画达人。
• 第7章将学习常用的手势处理、定制手势处理、手势结合动画。
• 第8章将学习如何基于Jetpack系列组件为Compose添加页面导航和依赖注入等能力。这有助于读者摆脱对Activity或Fragment的依赖,打造真正的Compose First项目。
• 第9章将简单了解一些常用三方库对Compose的支持,特别是在Accompanist官方组件之外补充了不少新的工具,这些工具与基础组件都将成为读者日常开发中最得力的武器。
• 第10章和第11章都是实战内容,编者将带领读者参与两个不同类型产品的完整实现,开发过程中需要对前面章节学习到的各种知识进行综合运用。实战项目有助于读者巩固已学到的内容,也能为读者在生产环境中引入Compose建立决心和自信。
阅读指南
本书在知识讲解之外,也非常重视对实战经验的分享。书中穿插了大量类似经验总结的小贴士,主要分为以下4种类型,辅助读者更好地理解和运用学到的内容。
补充提示:
正文内容之外补充知识点。比如关键词的注解或者关联知识点的介绍等。
注意:
需要在实际开发中极力避免的事项。比如API的不合理使用,不推荐的实现方式等。
最佳实践:
开发出更高质量代码的实战经验。所有最佳实践会在本书的最后进行汇总,便于读者进行查阅。
配套源码:
本书鼓励读者对书中的内容亲自动手实践。读者可以从配套的Github仓库获取书中出现的源码,亲自运行加深理解。仓库地址为https://github.com/compose-museum/sample-app/。
由于作者水平有限,本书在编写过程中难免出现错误和遗漏之处,还请读者批评指正!