我是怎么学习 Compose 的

简介: 我是怎么学习 Compose 的

最近一直在看 Compose 相关的东西,也算是从了解到入了个门,在将近一个月的课后(下班)学习中,输出了 3 篇原理性相关的文章,从文章标题可以看出,我是从原生与 Compose 之间的交互进行探索的:

在看完官方文档的组件和一些优秀的开源项目,输出一个简单的 demo:

效果如下:

image.png

关于我的学习方式,引用一位博主的话:


  1. 学会框架,动手写 Demo,理解框架应用场景,基本特点
  2. 利用网络资源,搜寻多篇前人写过的拆轮子资源,下载源码,跟随资源进行源码跟踪,如果不动手,我认为是很难将框架理解的。
  3. 阅读源码时,学会总结:从 Retrofit 一般使用方式入手,通过断点调试,观察源码执行顺序,忽略非重要代码,摸清源码主线实现思路后,再深入探索其中的细节实现。
  4. 回顾与整理,最后再过一遍思路,若走通了,那么框架的大概就理解了,同时整理笔记,便于日后忘了回来查看。


最后,将自己在学习 Compose 中看过的文章和好的示例 demo 都总结一下,为那些想学 Compose 的同学提供一些资料


官方文档


先从概览了解 Compose 是如何编写:

Jetpack Compose 官方基础教程:

19 个 Codelabs 案例,跟着官方动手实践:

Compose-Sample 示例,这些示例很适合跑一下看看效果:

Accompanist Compose 补充库,也是官方的实验基地,在确定模块满足要求后会被加入到 Compose 的正式库中,这个地方的库很适合提前了解官方在做哪些动作:


官方 Blog


Android 开发者微信公众号目前已经发了差不多 20 多篇关于  Compose 的文章,有深入了解原理和优化 UI 构建,很适合在入门之后对 Compose 原理进行探索:

目录
相关文章
|
移动开发 JavaScript 前端开发
分享88个JavaScript源码,总有一款适合您
分享88个JavaScript源码,总有一款适合您
547 0
Harbor新建仓库目标提示 the registry is unhealthy
Harbor新建仓库目标提示 the registry is unhealthy
|
Java 关系型数据库 数据库连接
MyBatis Plus 解决大数据量查询慢问题
MyBatis Plus 解决大数据量查询慢问题
|
数据库 开发者 Python
Tornado框架:速度与简洁的完美结合,但它真的适合你吗?
【8月更文挑战第31天】在Web开发领域,框架的选择至关重要,影响着项目的结构、效率及扩展性。Tornado作为一个兼具性能与易用性的框架,提供了非阻塞I/O和异步支持,适用于高性能Web应用。与需配合WSGI服务器的Django和Flask不同,Tornado集成了HTTP服务器,能独立处理高并发请求。通过简单的安装和示例代码即可搭建HTTP服务器,并利用其异步机制提升资源利用率。尽管Tornado在处理I/O密集型任务时表现出色,但对于不熟悉异步编程的开发者来说,学习曲线较陡。总体而言,Tornado适合高并发场景,但在快速开发和复杂业务逻辑上,Django和Flask仍是不错的选择。
547 0
|
存储 API 数据中心
docker的底层原理
本文概述了Docker的底层原理,包括客户端-服务器架构、容器运行时环境、内核共享、资源隔离、控制组、联合文件系统、可移植性、镜像构建以及插件和API等方面。
308 4
|
SQL 监控 数据库
MSSQL性能调优秘籍:索引深度优化、SQL重构技巧与高效锁策略
在Microsoft SQL Server(MSSQL)环境中,性能调优是确保数据库高效运行、满足业务快速增长需求的关键
|
数据采集 存储 数据挖掘
如何利用Python进行网页数据抓取
本文将详细介绍如何使用Python进行网页数据抓取。首先,我们将了解什么是网络爬虫以及其基本原理。然后,逐步讲解如何使用Python的requests库和BeautifulSoup库来抓取和解析网页数据。最后,通过实例展示如何实际应用这些技术来获取所需的数据并进行简单的数据处理。希望通过这篇文章,读者能够掌握基本的网页数据抓取技巧,并能在实际应用中灵活运用。
1022 1
|
机器学习/深度学习 人工智能 前端开发
BladeDISC 深度学习编译器问题之在动态shape下优化整体性能如何解决
BladeDISC 深度学习编译器问题之在动态shape下优化整体性能如何解决