DAYS of DASH

IF you shed tears when you miss the sun, you also miss the stars.

Compose rememberUpdatedState 的用法和本质

rememberUpdatedState 本质上是为了让长生命周期的 effect / listener 闭包引用到最新的变量值,而不是重启 effect 或重新设置 listener。 原因是长生命周期的闭包捕获的是初始值 来看一个容易误解的例子 @Composable fun Demo(name: String) { LaunchedEffect(Unit) { delay(3000); println(name) } } 假设初始传入的是 name = "A",1 秒后外部重组,name 变成了 "B"。很多人会直觉以为 3 秒后打印的是 "B",但实际上,大概率打印的是 "A"。 ...

April 2, 2026 · aitsuki

ReactNative配置Flavor

在客户端开发中,配置 Flavor 是必不可少的环节。Android 可以通过 flavor 配置,flutter 可以通过 –dart-define 配置。 ReactNative 相对麻烦一些,一是编写 RN 原生模块将原生端配置好的 flavor 传输到 RN 端。 二是使用 react-native-config 库,它其实就是自动干了一所需要的事情。 ...

January 14, 2026 · aitsuki

Android Compose 自定义表单组件

表单组件 Flutter 的 Form 组件,ReactNative 中的 RHF 都是体验非常不错的表单组件,特别是 flutter 的。 但是 Compose 一直没有找到合适的表单组件,所以我根据自身需求自定义了一个: ...

January 13, 2026 · aitsuki

Android状态持久化

App 状态和用户状态 在日常项目开发中,我们通常都会维护一些状态,比如 App 级别的全局状态有用户是否已登录、是否同意了隐私协议、是否完成新手引导等。或者是用户级别的状态,比如首页是单列还是双列展示、是否开启深色模式、某些功能开关等。 这些状态的特点是不复杂,但是访问和修改频繁,并且需要立马反应到 UI 上。 ...

January 13, 2026 · aitsuki

Android和Flutter预设图片本地缓存

我们经常会遇到图片上传后本地回显的需求,大概流程如下: 拍照或选择图片,并压缩图片文件 将压缩后的图片上传到服务器,并得到服务端返回的图片 URL 客户端加载 URL 显示该图片 问题主要出在第三步 ...

January 12, 2026 · aitsuki