jetpack
文章平均质量分 92
fundroid
Android GDE(谷歌开发者专家)| 互联网大厂移动端架构师
展开
-
盘点 2024 Google I/O 中的 Android 方向关键更新
AI 是 2024 年 Google I/O 焦点,本次大会 Android 的许多 topic 也离不开与 AI 的碰撞,例如 Gemini 如何助力 Android 应用开发等。AI 之外也有很多 Android 独有话题,例如如何帮助开发者低成本构建跨设备应用、如何提升研发效率等。本文将带大家盘点本次 I/O 大会最值得 Android 开发者关注的 15 个关键进展。原创 2024-06-09 10:42:22 · 685 阅读 · 1 评论 -
Jetpack Compose 1.5 发布:全新 Modifier 系统助力性能提升
Jetpack Compose 1.5 发布,性能终于得到大幅提升,这得益于全新的 Modifier 实现方式原创 2023-09-11 08:30:00 · 1947 阅读 · 6 评论 -
Android 官方架构中的 UseCase 该怎么写?
如上所述,官方文档虽然对 UseCase 给出了一些基本定义,但是毕竟是一个新新生概念,很多人在真正去写代码的时候仍然会感觉不清晰,缺少有效指引。在究竟如何定义 UseCase 这个问题上,还有待大家更广泛的讨论,形成可参考的共识。本文也是带着这个目的而生,算是抛砖引玉吧。考虑到架构的扩展性,推荐在 ViewModel 与 Repository 之间强制引入 UseCase,即使当前的业务逻辑不复杂。原创 2023-05-24 09:00:00 · 1179 阅读 · 0 评论 -
CameraX + MLKit 打造超简单 OCR 方案
Android 自 5.0 开始引入了全新的相机框架 Camera2 ,相较于之前的 Camera1 对多摄像头的支持更加友好,功能更加强大,但使用成本也更高。此背景下谷歌发布了 CameraX,它基于 Camera2 封装,大大提高了 API 的易用性。我们可以用很少的代码搭建出面向特定场景的相机应用,OCR 就是一种典型的相机应用场景。CameraX 引入 UseCase 的概念完成各种相机能力,UseCase 有利于功能模块的解耦,聚焦特定领域进行功能开发。原创 2023-02-01 08:30:00 · 2313 阅读 · 0 评论 -
Compose 横竖屏切换时状态如何保存?rememberSaveable 实现原理分析
rememberSaveable 可以帮助 Composable 在横竖屏切换甚至进程切换后恢复状态,这主要是通过 SaveableStateRegistry 实现的,在 Activity onSaveInstance 时通过 registry 收集我们需要保存的状态并写入 Bundle,待到下次 Activity 重新 onCreate 的时候恢复。原创 2022-10-24 09:00:00 · 1988 阅读 · 0 评论 -
终于懂了~ 图解 SharedFlow 缓存系统
图解 MutableSharedFlow 的 replay ,extraBufferCapacity,onBufferOverflow 等参数,深入理解 SharedFlow 的缓存系统原创 2022-10-07 10:00:00 · 2333 阅读 · 0 评论 -
Compose Compiler 与 Kotlin 的版本兼容性
有时 Android Studio 的 build.gradle 中会提示 Compose 有了新版本,但是如果升级不当可能会出现编译错误,比如下面这样的搭配就会出现 build error比如当我试图将 1.2.0-rc02 升级到 1.2.0 时,会发生以下编译错误原因是 Kotlin 与 Compose Compiler 版本不匹配。原创 2022-09-23 09:00:00 · 5654 阅读 · 5 评论 -
为什么说 Compose 的声明式代码最简洁 ?Compose/React/Flutter/SwiftUI 语法对比
前面基于代码片段进行了一些对比,最后以CounterDemo为例,看一个完整功能下Flutter、Compose和Swift的代码对比,React与其他三者代码风格差异较大,就不参加比较了。FlutterComposeSwiftUI可以感觉到Compose代码最简洁也最直观,SwiftUI通过ViewBuilder机制也可以实现与Compose类似的DSL,表现也非常不错,Flutter由于模板代码较多,在简洁程度上表现最差。httpshttpshttps。...原创 2022-08-01 09:00:00 · 2116 阅读 · 6 评论 -
Fragment 这些 API 已废弃,你还在使用吗?
盘点 Fragment 被废弃的 API:onActivityCreated,startActivityForResult,setTargetFragment,setRetainInsInstance原创 2022-07-18 09:00:00 · 1477 阅读 · 0 评论 -
Jetpack Compose 动画开发实践:微博长按点赞彩虹
Compose 在动画方面下足了功夫,提供了种类丰富的 API。但也正由于 API 种类繁多,如果想一气儿学下来,最终可能会消化不良,导致似懂非懂。结合例子学习是一个不错的方法,本文就带大家边学边做,通过实现一个微博长按点赞的动画效果,学习和了解 Compose 动画的常见思路和开发技巧。|原版效果高仿效果1. Compose 动画 API 概览Compose 动画 API 在使用场景的维度上大体分为两类:高级别 API 和低级别 API。就像编程语言分为高级语言和低级语言原创 2022-05-30 01:39:09 · 1133 阅读 · 0 评论 -
谷歌 I/O 深度解析:Android Jetpack 最新变化
2022年 谷歌 I/O开发者大会顺利闭幕,本次大会带来哪些 Android Jetpack 的最新变化呢?原创 2022-05-16 09:00:00 · 1883 阅读 · 0 评论 -
带你了解 Jetpack Compose 快照系统
Compose 通过名为“快照(Snapshot)”的系统支撑状态管理与重组机制的运行。快照具备对 State 的读写感知和隔离的作用,可以保证并发安全,提升性能原创 2022-05-09 00:43:15 · 1412 阅读 · 0 评论 -
一文看懂现代 Android 开发最佳实践
What is MAD?MAD 的全称是 Modern Android Development , 它是一系列技术栈和工具链的集合,涵盖了从编程语言到开发框架等各个环节。Android 自 08 年诞生之后的多年间 SDK 变化一直不大,开发方式较为固定。13 年起技术更新逐渐加速,特别是 17年之后, 随着 Kotlin 及 Jetpack 等新技术的出现 Android 开发方式发生了很大变化,去年推出的 Jetpack Compose 更是将这种变化推向了新阶段。Goolge 将这些新技术下的原创 2022-04-18 09:00:00 · 1076 阅读 · 0 评论 -
Jetpack MVVM 七宗罪之六: ViewModel 的接口暴露不合理
在 Jetpack 架构规范中, ViewModel 与 View 之间应该遵循单向数据流的通信方式,Events 永远从 View 流向 VM ,而 State 从 VM 流向 View。如果 ViewModel 对 View 暴露了不适当的接口类型,则会破坏单向数据流的形成。不适当的接口类型常见于以下两点:暴露 Mutable 状态暴露 Suspend 方法暴露 Mutable 状态ViewModel 对外暴露的数据状态,无论是 LiveData 或是 StateFlow 都应该使用 I原创 2022-03-16 02:37:20 · 3880 阅读 · 2 评论 -
Jetpack Hilt 的 @EnterPoint 注解使用介绍
Hilt 是 Android Jetpack 中的依赖注入框架。依赖注入是构建大型项目必不可少的技术手段,通过依赖注入我们解耦了对象的生产与消费,实现了关注点分离的设计目标,同时也方便单元测试。Hilt 继承了 Dagger 编译期检查等优秀特性,通过更加易用的 API 降低了 Dagger 的使用门槛。它提供了 @AndroidEntryPoint 等注解为 Android 原生组件的 DI 提供了开箱即用的使用体验。自定义的 Activity,Fragment,View,Service 等在添加 @A原创 2022-02-04 22:11:07 · 3320 阅读 · 0 评论