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

Jetpack Compose 使用前后对比

每个界面都使用 Fragment 实现,随后在主 app 模块中使用 AndroidX Navigation 将它们结合起来。...为了让您对架构有一个直观印象,下面是应用的模块图: △ Tivi 的模块图,使用 Jake Wharton 所提供的,十分方便的 Gradle 任务 生成 由于导航图使用 深度链接 URI 实现,大多数...,同时每个 Fragment 的 UI 使用Jetpack Compose 实现。...代码行数 我知道在比较软件项目时,计算源代码行数不是特别有用的统计方式;但这种方式能够提供一个视角,帮助我们了解事物是如何变化的。 为了进行测试,我使用了 cloc 工具。...您可以查看我们发布的文章来了解更多: 深入详解 Jetpack Compose | 优化 UI 构建 深入详解 Jetpack Compose | 实现原理 注意事项 关于上面的所有结果,有些事项需要注意

1K30

深入详解 Jetpack Compose | 实现原理

本文是 Compose 系列的第二篇文章。在 第一篇文章 中,我已经阐述了 Compose 的优点、Compose 所解决的问题、一些设计决策背后的原因,以及这些内容是如何帮助开发者的。...此外,我还讨论了 Compose 的思维模型、您应如何考虑使用 Compose 编写代码,以及如何创建您自己的 API。   在本文中,我将着眼于 Compose 背后的工作原理。...但在开始之前,我想要强调的是,使用 Compose 并不一定需要您理解它是如何实现的。接下来的内容纯粹是为了满足您的求知欲而撰写的。 @Composable 注解意味着什么?...间隙缓冲区是一个含有当前索引或游标的集合,它在内存中使用扁平数组 (flat array) 实现。这一扁平数组比它代表的数据集合要大,而那些没有使用的空间就被称为间隙。...有时候理解如何实现十分有用,但是未来 Composable 函数的行为与功能不会改变,而实现则有可能发生变化。 同样的,Compose 编译器在某些状况下可以生成更为高效的代码。

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

Jetpack Compose之 在Compose使用Navigation导航

前言 大约在一年半前,我发布了Compose的第一篇文章 Jetpack Compose开篇 之 HelloWorld,连我自己也没想到,这一年半的时间中我竟再也没有看过Compose..., 如今Compose...已经发布了稳定版本,还没学会Compose让我的头发又白了许多~ 使用Navigation在Compose中导航 如果你之前不喜欢Android提倡的”单Activity“应用,那么在Compose中相信你会慢慢习惯的...接下来我们来看,如何使用navigation来进行页面导航呢?...这样一来,我们就实现了 普通页面跳转,那么 如果我们在页面跳转的时候需要传递参数 ,该如何去做呢?...name = name,现在我们将年龄修改为一个可选参数,来看看如何修改。

1.7K20

使用 Jetpack Compose 提升 Play 商店的用户体验

为了让 Jetpack Compose使用体验更上一层楼,以及了解大家对 Compose 开发、学习方面的内容需求,这里诚邀您参与 Jetpack Compose 使用情况调研, 点击这里 即刻参与调研...在分析了各种选择后,我们做出了 (在当时) 一个大胆的决定——使用当时还处于 Alpha 预览阶段的 Jetpack Compose。...开发者的工作效率 一年多来 ,我们一直在使用 Jetpack Compose 编写用户界面代码,也得益于 Jetpack Compose 让界面开发变得更加简单。...我们倾向于 **编写界面时使用更少的代码,有时甚至可以减少 50%**。此项改进的实现得益于 Compose 是一个利用了 Kotlin 简洁性的声明式界面框架。...确实,并非所有的库开发者都实现了基于 Compose 的 API,尤其是在我们首次迁移时。

3.2K40

浅析 JetPack Compose如何安装到View视图上

(最简单10s就能明白); Compose 如何安装到传统 View 视图上; 门外汉-从布局窥一眼 这是一段 Compose 的简单代码,我们演示了多层嵌套下的示例: 如果按照传统 View 的思维...所以我们简单点可以总结为: JetPack-Compose 其自定义了一个 基础容器- ComposeView ,以及其他扩展View,比如 AndroidComposeView ,并对其进行封装,对外提供了各种我们在上层所使用的各种组件或者容器...解析-setContent内部实现 我们在上面知道了 Compose 最终在 Android View 的展现形式,那么它到底是怎样设置上去的呢,接下来我们就简单解析一下,不涉及Compose 相关过多源码...parent = parent.getParent() } return found } View.compositionContext compositionContext 是一个扩展函数,内部使用...().createRecomposer(rootView) //将其赋值给rootView的compositionContext,而compositionContext也是一个扩展函数,通用使用

1.3K64

Jetpack Compose中MVVM的实现及ViewModel和remember对比

前言 ViewModel 和 remember 是 Jetpack Compose 中用于管理数据的两种不同机制。...remember: remember 可以直接在 Compose 组件内部使用,通过调用 remember { } 或 rememberSaveable { } 来创建和存储状态。...remember/rememberSaveable 在Compose中,remember和rememberSaveable都是用于保存可组合函数的状态的方法,但它们在如何保存状态以及在什么情况下会重新计算状态上有所不同...mutableStateOf/mutableStateListOf mutableStateOf 是 Jetpack Compose 中的一个函数,用于创建可变的状态。...总的来说: mutableStateOf 的作用是在 Jetpack Compose 中创建可变的状态,以便动态更新 UI,并确保 UI 反映最新的状态值。

63810

Jetpack Compose实现的一个优雅的 Toast 组件——简单易用~

Toast 是Android中常见的轻量级提示\ 本文将介绍如何使用Compose技术实现一个Toast组件 不是一个简单的toast 优雅-简洁-动画 才是我的风格 \ 系统原生的Toast默认是在底部弹出..., text, Toast.LENGTH\_SHORT).show() 在github上看到一个很棒的实现方式,现在要丢弃原生的Toast\ 使用Compose组件来实现一个 **优雅-简洁-动画**...的 Toast 分享一个 我用Compose写了个笔记App,代码开源~里面用到了这个超级好看的Toast 使用方法 val toastState = remember { ToastUIState()...\ 定义一个进度值 范围是0f-1f\ 接着\ 使用Paint绘制一个圆角矩形。...>//动画时长 } 直接用 material3 提供的图标 ,当然可以用drawable,为了简洁而且 material3 提供的图标基本满足大部分场景的使用 图片 接口的实现 ToastData接口的实现

1K40

开源 | 如何写一个好用的 JetPack Compose 状态页组件

关于开发中常见的状态页组件,我们已经见了很多,但是在 JetPack Compose 中该如何去写呢?虽然也有大佬写了相关demo ,但是如果要应用到实际中,不免有些捉襟见肘 。...那么我们下面就开始构思一下,如何设计这个状态页组件 StateX。 基本思路 其实只要写过 compose 的代码,应该都明白,其实更简单了。...中实现就是这么简单,原理也很好理解。...而在 compose 中,重组会执行所有调用的地方,并判断是否需要执行,我们必须要考虑如何避免重复的重组。...一切就是这么简单,在 compose如何使用状态页,已经分享大家了,至于大家要怎么改,可以参考 StateX 。

78420

开源 | 如何写一个好用的 JetPack Compose 状态页组件

关于开发中常见的状态页组件,我们已经见了很多,但是在 JetPack Compose 中该如何去写呢?虽然也有大佬写了相关demo ,但是如果要应用到实际中,不免有些捉襟见肘 。...看完基本条件,其实也都不难,在 View 中设计一个状态页组件,大家都知道怎么做,但是 Compose 呢? 那么我们下面就开始构思一下,如何设计这个状态页组件 StateX。...中实现就是这么简单,原理也很好理解。...而在 compose 中,重组会执行所有调用的地方,并判断是否需要执行,我们必须要考虑如何避免重复的重组。...一切就是这么简单,在 compose如何使用状态页,已经分享大家了,至于大家要怎么改,可以参考 StateX 。

1K10

如何使用Docker Compose安装Drupal

遵循如何在Ubuntu 18.04上安装和使用Docker的步骤1和2,在您的服务器上安装Docker 。 本教程已在19.03.8版上进行了测试。...遵循如何在Ubuntu 18.04上安装Docker Compose的步骤1,在您的服务器上安装Docker Compose 。 本教程已在1.21.2版上进行了测试。...您可以按照DigitalOcean DNS简介进行操作,以获取有关如何将其添加到DigitalOcean帐户的详细信息,如果您正在使用的话: 步骤1 —定义Web服务器配置 (Step 1 —...有关FastCGI代理的更多信息,请参见了解和实现Nginx中的FastCGI代理 。 有关服务器和位置块的信息,请参阅了解Nginx服务器和位置块选择算法 。...这些变量包含敏感信息,例如数据库的凭据,因此我们无法在Docker Compose文件中直接公开它们-主文件包含有关容器如何运行的信息。

5.9K20
领券