首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从0上手Jetpack Compose,看这一篇就够了~

我们是在Activity中编写Java/Kotlin的代码,在XML中编写布局代码,这种方式是我们已经使用了很久的方式,而Jetpack Compose完全抛弃了之前的方式,新创造了一种“使用代码”编写页面的方式...现在数据是写死的,无法动态修改数据,More函数并不是一个可以复用的状态。接下来我们将More方法抽取可复用的状态,即将相关参数提取出来。...${i + 1}课,快来学习吧~") } } }) LazyColumn API 会在其作用域内提供一个 item 元素,并在该元素中编写各项内容,当然在实际项目中我们可能会把数据包装起来...可组合项也必须明确获知新状态,才能相应进行更新。我们来通过一个实例看一下。...这就是我们上面所说的必须明确获取新状态,才能进行相应的更新。

81031
您找到你想要的搜索结果了吗?
是的
没有找到

Jetpack-Compose 学习笔记(一)—— Compose 初探

上手成本如何? 个人感觉,还行,有一定的学习成本。前提条件,对 Kotlin 语言熟悉,因为 Compose 都是用 Kotlin 语言开发实现的,对其他的 Jetpack 库熟悉就更好了。...作为 Jetpack 工具库的一部分,Compose 当然也可以十分方便与 LiveDada、ViewModel、Paging 等工具一起整合,从而提高编码效率。...它是将 State 状态转化成 UI 界面,并且会智能跳过那些数据没有发生改变的控件,重新生成已经发生改变的控件,这一过程称之为重组(recomposition)。...minSdkVersion 21 // SDK 版本最低 21 } buildFeatures { // Enables Jetpack Compose for...重组就是使用新数据再次调用 Composable 函数,从而进行更新的。当然重组过程仅调用可能已更改的函数或 lambda,而跳过其余函数或 lambda,所以 Compose 可以高效重组。

2K10

在Compose中使用Paging分页库

前言 大约在两年前,写了一篇Jetpack 系列之Paging3,看这一篇就够了~,本篇文章主要来看,在Compose中如何使用Paging3,这里不得不说一句,在xml中使用Paging3和在Compose...retrofit.create(mClass) as T     } } 定义DataApi接口,这里我们将方法声明为挂起函数,代码如下所示: interface DataApi {     /**      * 获取数据...DataSource我们自动生成了load方法,我们主要的请求操作就在load方法中完成。...对象,并创建pager对象从而调用PagingSource方法 ,代码如下所示: class MainActivityViewModel : ViewModel() {     /**      * 获取数据...PagingConfig(pageSize = 1)) {         DataSource()     }.flow } 到这里为止,上面的代码都和我们上篇文章中的代码是一致的,接下来我们主要看UI层的代码如何实现

1.6K30

使用 Compose 构建 Wear OS 应用

本文将通过 Wear Compose 主要的可组合项 (Composable) 来帮助您更好了解如何使用 Compose 来进行构建。 如果您更喜欢通过视频了解此内容,请 点击此处 查看。...此外,其他一些方面也都是相同的,比如工具和一些 Compose 设计理念,比如使用双向数据流。...ScalingLazyColumn 底层是由 LazyColumn 实现的,它只会对即将要在屏幕上呈现的内容进行处理,这样能够高效地处理大量数据,且能够以缩放和透明效果进行展示,因此它应该成为 Wear...通过传递的 state 获取到 isBackground 回调值,它代表了此过程是否是滑动返回,您可以根据不同的状态展示不同的内容。...这个顺序同在移动端是一样的,先考虑设置 Theme,再到 Scaffold,接下来看一下如何编写代码: // positionIndicator 在 Content 之外,因此要将 state 提升到

66520

Android开发技能图谱

2.4 网络编程 大部分的Android应用都需要通过网络获取数据。...扩展阅读 Android SO加固技术及其破解方法探讨 SSL:原理、应用、安全威胁与最佳实践 加密技术解析:对称加密、非对称加密与国密算法 常见哈希算法及其应用场景 理解字符编码:从ASCII到UTF...扩展阅读 遗留系统现代化:理解、策略与案例 3.2 Android Jetpack Android Jetpack是一套由Google推出的Android开发组件库,旨在帮助开发者更轻松构建高质量的应用...7.2 数据库基础 很多Android应用都需要通过网络从服务器获取数据,而这些数据通常存储在数据库中。...你需要了解这些服务的基本功能和使用方法,例如如何使用云数据库存储和查询数据如何使用云函数处理服务器端逻辑,以及如何使用API获取各种在线服务(如地图、社交、支付等)。

7810

精彩回顾 | 2021 Android 开发者峰会

及其全新设计理念。...Jetpack Compose 性能稳定且已可用于生产环境,我们将继续添加大家所需的功能,助力您轻松快速所有设备类型构建 Android UI,并针对 Wear OS 和构建主屏幕微件 (widget...借助 Samsung 创建的 Watch Face Studio,无需编写任何代码即可制作自己的表盘主题,可谓所见即所得。...加强用户信任,我们推出了 数据安全 部分以突出您的隐私实践,新推出的 Play Integrity API 可以确保应用安装始终真实可信。我们还致力于打造更多工具,实现更多功能,助您提升应用质量。...此外,您还可以观看 Android Code-Alongs 回顾,Android 专家实时编写代码、解决编程难题并通过 Jetpack Compose 和 Wear OS 版 Compose 实时回答提问的全过程

1.3K30

Jetpack来了:走近Google标准应用架构

在对Jetpack有了大致的了解后,我们分别对如何将旧项目迁移至Jetpack,以及如何让新项目支持AndroidX进行了介绍。...当涉及网络数据获取数据库CRUD(Create、Retrieve、Update、Delete,即增加、查询、更新、删除)操作时,还需要用到工作线程,进而,我们还不得不考虑Activity/Fragment...按照Google官方的说法,“Jetpack是一套库、工具和指南,可以帮助开发者更轻松编写应用程序。...学习组件如何使用的同时,也对其源码进行简要分析。其中每个组件都通过实例进行演示,最大程度减少读者的学习成本。...第10章是对前面各章节的总结,将向读者详细介绍什么是数据模型驱动界面更新、什么是MVVM架构,以及如何利用Jetpack组件搭建符合MVVM架构规范的应用程序。

89620

分享一个我开发的MVVM架构的开源小项目

也就是说,借助Jetpack,我们就可以轻松编写一个MVVM架构的项目了,当然前提是你对Jetpack已经比较了解。 这里我先给出一张Jetpack的全家福: ?...黄色部分表示的是仓库层,仓库层要做的工作是自主判断接口请求的数据应该是从数据库中读取还是从网络中获取,并将数据返回给调用方。...如果是从网络中获取的话还要将这些数据存入到数据库当中,以避免下次重复从网络中获取。...简而言之,仓库的工作就是在本地和网络数据之间做一个分配和调度的工作,调用方不管你的数据是从何而来的,我只是要从你仓库这里获取数据而已,而仓库则要自主分配如何更好更快地将数据提供给调用方。...最后红色部分表示的是网络数据层,这里使用了Retrofit从web服务接口获取数据

76630

在大环境下如何避免当生锈的螺丝钉成为一个优秀的安卓开发者

当然,最后不要落下数据结构与算法、计算机原理等基础知识,这些才是程序员后期的竞争力,如果想要把握更多的当然你也可以学习后端开发相关的知识。 Android行情艰难如何成为一个优秀的程序员?...毕竟大部分人是懒惰,缺乏耐心的。想让自己超过大多数人,毕竟没那么难。 如果你否定天分的存在,只强调勤奋努力,那就是蠢。但如果你因此认为勤奋努力没有用,那就是又懒又蠢。...image.png 怎么学习Android 其实我更希望做无论是哪端的开发,都可以让自己的成长工程师而不是单纯的 Api 码农,很多时候大家都在忧虑学多而不精,但是抚心自问学得少的自己,现在有“精”吗...Android进阶学习路线参考 程序员如何走上快速提升技术走上财富自由之路?...或者点击 【这里】 查看获取方式。 在经历了前期的野蛮生长后,优秀的门槛会越来越高。

55300

聊聊类组件到函数组件的变迁

onDesotry 等生命周期函数,在 React.Component 中,我们有 componentDidMount、componentWillUnmount 等生命周期函数,那基于函数式的组件,他是如何在函数中感知生命周期呢...在组件中更安全的调用挂起函数,退出组合时会自动取消协程 DisposedEffect 组件挂载 、组件更新 、组件卸载 不支持 可以监听组件的退出 1、模拟 LaunchedEffect 仅感知组件挂载的能力,例如请求网络获取数据后设置给...省略累加控件 } } 在进入组合项时,LaunchedEffect 设置 true,使其不具备监听任何状态变化的能力(remember),在延迟 1s 后会打印 Log,之后无论怎么操作其他控件都不会使其响应...2、模拟 LaunchedEffect 感知 组件挂载、组件更新的能力,例如模拟加载更多操作,触发加载更多就去请求网络数据: @Composable fun HomeWidget() { var...} } Column { Text(text = "用户 $currentUser 的在线状态是 ${vm.isOnline}") LazyColumn

3.5K20

回顾 | Android Jetpack 重要更新

在今年的谷歌开发者大会上,我们也大家介绍了 Jetpack 的重要更新,您也可以 点击此处 到大会官网观看相关视频。...请通过我们的文章《期待已久的动态数据库工具终于来了!》了解更多关于这个工具的内容以及如何使用它。...该组件底层会在支持的设备上自动使用 SurfaceView 以最大程度获取性能上的优化,这也帮助其使用更少的缓存以及更低电量的消耗。...Jetpack 的 Security 开发库 如今 Android 6.0 以后的系统发布了 RC 版本(最新版本 RC3),并且为 Android 5.0 以后的系统提供了 1.1.0 alpha...获取更多的更新内容,请观看视频: Jetpack Compose 更新速递,欢迎大家尝鲜这些新的更新并积极 向我们反馈。 本文概括了 Jetpack 过去几个月的更新。

24440

Jetpack来了:走近Google标准应用架构

如何把握模块的粒度,在保持模块独立性的同时,又不影响模块间的通信,是全世界优秀的Android工程师共同追求的目标。为了解决这一问题,各类架构模式层出不穷,比较著名的有MVC、MVP和MVVM。...这些代码包括业务逻辑、数据Model、UI控件等。...当涉及网络数据获取数据库CRUD(Create、Retrieve、Update、Delete,即增加、查询、更新、删除)操作时,还需要用到工作线程,进而,我们还不得不考虑Activity/Fragment...按照Google官方的说法: Jetpack是一套库、工具和指南,可以帮助开发者更轻松编写应用程序。...Jetpack中的组件可以帮助开发者遵循最佳做法、摆脱编写样板代码的工作并简化复杂的任务,以便他们能将精力集中放在业务所需的代码上。

70610

Jetpack Compose终于能稳定支持Wear OS,并带来了适用于手机和平板的1.2版本更新

Jetpack Compose 是官方推荐的手机、平板和可折叠设备开发新安卓应用的框架。...WindowInsets 类,用于处理屏幕上不可用的区域及其与应用程序窗口的交互,是一个基于 Accompanist 库中先前工作的新类,谷歌用它来试验 Compose 的新功能并填补 API 的空白。...不过,Jetpack Compose 是最接近原生解决方案的那个,它为安卓功能提供了很好的支持,而无需尝试跨平台(尽管用 Kotlin 编写的非可视代码也可以在其他地方使用)。.../ 点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!...今日好文推荐 Oracle 大规模裁员进行时:营收暴跌 28%,数据库地位被侵蚀 拒绝高估值?这家低代码平台火了后:不能让老员工凭股权成百万富翁、新员工失望 Firefox 的衰落为什么是必然的?

1.4K20

JetpackNote---基于Jetpack的学习笔记APP

、Demo使用:Navigation、Lifecycles、Paging、LiveData、ViewModel等… \n项目使用Kotlin语言进行编写,依赖库截止代码编写最新版本,的几篇源码分析我们分别对...等…项目使用Kotlin语言进行编写,依赖库截止代码编写最新版本。...Jetpack是什么想必大家对它都已经有了基本的了解了,官方介绍以及官方文档: https://developer.android.com/jetpack Jetpack 是一套库、工具和指南,可帮助开发者更轻松编写优质应用...这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确保您始终可以获取最新且最好的 Jetpack 组件版本。 ? 3. 为什么写JetpackNote?...4.4 ViewModel 在ViewModel模块,屏幕中央一个计时器,通过使用ViewModel存储计时器的值,将屏幕方向发生改变后,数据仍然存在不会销毁。

98030
领券