Compose for iOS 的进展,真的能一套代码双端吗 Compose for iOS 的进展,真的能一套代码双端吗 「Compose for iOS 的进展,真的能一套代码双端吗」 Google I/O 2024 上那条"Compose for iOS 进入 Alpha"的官宣,让我手里的咖啡凉了一半。不是激动,是那种"又来了"的疲惫。KMM(Kotl 2026-06-18 随笔 2
Compose 的副作用 API:LaunchedEffect、DisposableEffect、SideEffect 到底什么时候用 Compose 的副作用 API:LaunchedEffect、DisposableEffect、SideEffect 到底什么时候用 Compose 的副作用 API:LaunchedEffect、DisposableEffect、SideEffect 到底什么时候用 从一个内存泄漏说起 去年维护 2026-06-18 Android 2
JRebel for Android 的热部署方案还在吗 JRebel for Android 的热部署方案还在吗 JRebel for Android 的热部署方案还在吗 JRebel 这个名字在 Android 开发圈子里已经沉寂了好几年。如果你是从 2015 年前后入行的开发者,可能还记得 ZeroTurnaround 公司那个绿色的火箭图标,以及它 2026-06-18 tool 1
AI 助手的代码审查能力,能替代 Code Review 吗 AI 助手的代码审查能力,能替代 Code Review 吗 AI 助手的代码审查能力,能替代 Code Review 吗 从 GitHub Copilot Workspace 的翻车现场说起 今年 3 月,GitHub 把 Copilot Workspace 推到了公测阶段,宣传口径很响亮:自然语 2026-06-17 随笔 3
adb 命令的高级用法,不只是安装卸载 adb 命令的高级用法,不只是安装卸载 「adb 命令的高级用法,不只是安装卸载」 大多数人第一次接触 adb 是在 Android Studio 的 logcat 窗口里,或者照着某个教程敲下 adb install app.apk。这个工具在 Android 开发工具链里存在感极强,但用法又极其 2026-06-17 tool 2
StorageManager 的存储空间查询,Scoped Storage 后的 API StorageManager 的存储空间查询,Scoped Storage 后的 API 「StorageManager 的存储空间查询,Scoped Storage 后的 API」 Android 10 引入 Scoped Storage 的时候,大多数开发者都在关注文件读写权限怎么改、Media 2026-06-17 Android 1
RecyclerView 的 ConcatAdapter,不同布局类型的合并实践 RecyclerView 的 ConcatAdapter,不同布局类型的合并实践 RecyclerView 的 ConcatAdapter,不同布局类型的合并实践 RecyclerView 的多类型布局一直是个老话题。从早期在单个 Adapter 里写一堆 getItemViewType() 的 s 2026-06-16 Android 4
MockK 和 Mockito 的对比,Kotlin 项目怎么选 MockK 和 Mockito 的对比,Kotlin 项目怎么选 MockK 和 Mockito 的对比,Kotlin 项目怎么选 从一个编译错误说起 去年迁移一个老项目到 Kotlin 1.9 的时候,我遇到了一个挺典型的 Mockito 报错。大概长这样: org.mockito.excepti 2026-06-16 tool 2
ActivityResultContracts 替代 startActivityForResult,迁移成本 ActivityResultContracts 替代 startActivityForResult,迁移成本 ActivityResultContracts 替代 startActivityForResult,迁移成本 那个被标记为废弃的 API AndroidX Activity 1.2.0 开始 2026-06-15 Android 2