Jetpack Compose:Android全新UI编程
上QQ阅读APP看书,第一时间看更新

前言

从2008年10月第一部Android智能手机发布到现在,Android已经走过了十余年的历程。从最开始任何框架都没有,做一款应用程序基本需要全部手写代码,到现在各种框架“满天飞”,Android已形成一套完整的开发体系。而后Google官方又推出了Jetpack帮助开发者开发Android应用程序。Jetpack是一个由多个库组成的套件,可以帮助开发者遵循最佳做法,减少开发中的样板代码,让开发者能够集中精力编写更重要的代码,本书所讲的Compose正是Jetpack的一部分。

写作缘由

2019年5月,Google在I/O大会上公布了Android全新的UI系统Compose,但是直到2020年9月才发布了第一个Alpha版本,此后在各大技术网站移动开发模块中有很多人开始尝试使用Compose编写Android UI。2021年2月,Google终于发布了第一个Beta版本。时隔近两年都没有发布正式版,只发布了Beta版本,如此复杂但还要坚持编写Compose,足以表明Google对Compose的重视程度。

Compose Beta版本发布之后,各大技术网站迎来了新春,Compose的文章铺天盖地,但相关文章碎片化严重,无法进行系统的学习。想到很多开发者应该有和我一样的困惑,而且Compose又极为重要,未来的Android开发肯定离不开Compose,所以我就想着写一本书来帮助广大开发者快速入门Compose并能够实际使用。

我长期在CSDN和掘金等技术网站上发表技术文章,而且得到了大量开发者的认可,还被CSDN评为了博客专家,这几年中撰写了上百篇技术文章,本以为自己的写作经验已经足够,写一本书应该不是什么难事,但真正动笔才发现其中的艰辛。平时写博客的时候可以随心所欲地写,想到哪里写哪里,哪里理解深刻写哪里,但写书和写博客很不一样,写书需要从头到尾系统地进行讲解,而且逻辑需要更加缜密,一些细节必须考虑周全。

本书内容

本书一共分为10章,归纳如下。

第1章介绍Compose的优点以及搭建开发Compose的环境,兼顾了Windows和Mac平台,然后回顾Compose中用到的Kotlin知识。

第2章创建并解释第一个Compose应用程序,然后详细介绍Compose的编程思想。本章内容比较难懂,大家可以先看后面的章节,之后翻回来看会有更大的收获。

第3章介绍Compose中的一些简单控件,比如Text、Button、Image等,内容比较简单。

第4章介绍Compose中的布局。Compose中的布局和Android View中的布局基本对应,包括线性布局、帧布局、约束布局等。本章内容比较重要,学好布局方式才能更加轻松地应对实际工作中的各种场景。

第5章介绍Compose中的一些复杂控件,比如LazyColumn相当于Android View中的RecyclerView。学会本章内容,我们就可以使用Compose进行一些简单的开发了。

第6章介绍Compose中的自定义View。在Android View中自定义View并不简单,但Compose帮我们做好了封装,使得自定义View变得不再困难。学会本章内容,就可以绘制一些常用的自定义View了。

第7章介绍Compose中的动画和手势操作。Compose对此做好了封装,使我们可以更加简单地使用动画和手势。

第8章介绍Compose和其他Jetpack库的搭配使用,包括我们熟悉的LiveData、ViewModel、Navigation等。

第9章介绍Compose如何在之前的项目中使用,在Compose中如何使用Android View,以及在Compose中如何进行屏幕适配。

第10章带大家从头到尾完整地开发一个简单的项目,其中用到了之前章节中讲到的大部分内容,可以帮助大家加深对Compose的理解。

资源下载

为了方便大家的学习,本书提供了书中所有项目的源码1,但还是建议先手写一遍再看源码,这样更能加深对代码的理解。

我的CSDN博客Zhujiang和公众号“江江安卓”会坚持更新Android相关的技术文章,欢迎大家访问交流。

本书勘误

尽管我已对全书进行了仔细的校对,但书中难免会存在一些未发现的错误,如果大家发现错误,欢迎到我的CSDN博客或公众号中留言,错误被确认后会提交到图灵社区本书主页。

致谢

在这段时间,几乎我所有的业余时间都用来编写此书。感谢我的家人,没有他们的支持我不可能完成此书的创作。

感谢我的女朋友星,在我写书期间她给了我很多鼓励及支持,让我有动力完成此书。

感谢在我的学习过程中与我探讨技术的各位同事及朋友,他们给了我一些创作的思路及建议。

感谢王军花编辑,她在书稿的审核过程中提供了非常多的建议。

感谢为本书做出贡献的每一个人!


1请访问图灵社区本书主页获取随书资源。——编者注