技术栈
kotlin
如此风景
10 小时前
android
·
kotlin
Kotlin Flow操作符学习
Kotlin Flow 的操作符非常丰富,它们是处理异步数据流的核心武器。Flow 的操作符可以像流水线上的工人一样,对数据进行过滤、加工、组合或线程切换。
plainGeekDev
11 小时前
android
·
java
·
kotlin
GreenDAO → Room
GreenDAO 依赖自己的一套代码生成器 GreenDAO Generator,需要额外维护一个 Java 项目来生成实体和 DAO。不支持 Kotlin suspend 函数。库已经很久不更新了(最后发布是 2019 年),未来 Android 版本可能不兼容。
plainGeekDev
18 小时前
android
·
java
·
kotlin
ButterKnife → ViewBinding
ButterKnife 已停止维护,作者 Jake Wharton 自己也不建议继续使用。依赖注解处理器,每次 build 生成大量中间代码,编译速度慢。不支持 Kotlin(虽然有 kotlin-annotation-processing,但体验很差)。
Kapaseker
2 天前
android
·
kotlin
一文吃透 Kotlin 集合操作符
上一篇聊了 Kotlin 的集合,这篇继续看它的转换操作符。可能很多人不清楚这些操作符都有哪些,下面就带大家一探究竟。
plainGeekDev
2 天前
android
·
java
·
kotlin
Activity 间传值 → Navigation 参数
Key 是字符串常量,拼写错误编译期不检查。类型要记清楚——忘了 getLongExtra 用了 getIntExtra,数据就丢了。页面间传参关系散落在各处,没有结构化的定义。
plainGeekDev
3 天前
android
·
java
·
kotlin
onActivityResult → ActivityResult API
requestCode 是 int 常量,多个页面间容易重复导致逻辑混淆。onActivityResult 里 if-else 链随着页面增多越来越长。如果调用方在 Fragment 里,还要处理 result 先传到宿主 Activity 再分发的额外逻辑。
alexhilton
3 天前
android
·
kotlin
·
android jetpack
Android车载OS中的Remote Compose
本文译自「Remote Compose in Android Automotive OS: Embed rich UI without the usual pain」,原文链接proandroiddev.com/remote-comp…,由Daniel Georg发布于2026年5月31日。
plainGeekDev
4 天前
android
·
java
·
kotlin
广播接收器 → Flow + Lifecycle
register/unregister 必须在正确的生命周期成对调用,时机一错就崩。每个广播接收器都要写注册逻辑和解注册逻辑,多个广播到处都是散落的 IntentFilter。
plainGeekDev
4 天前
android
·
java
·
kotlin
EventBus → SharedFlow
EventBus 通过反射查找 @Subscribe 注解方法,性能损耗虽不大但存在。事件的发送方和接收方之间完全无约束,编译期不检查事件类型。忘调 register/unregister 是常见 bug 来源。全局事件满天飞,难以追踪事件的流向。
Kapaseker
5 天前
android
·
kotlin
学不动了,入门 Compose Styles API
Jetpack Compose 近期推出了全新的 Styles API,用于定制 UI 元素和组件的样式。
plainGeekDev
6 天前
android
·
java
·
kotlin
MVC 写法 → MVVM
Activity 同时负责了 UI 绘制、数据请求、状态切换和业务逻辑,一个类三四百行是常态。测试完全没法做——所有逻辑都耦合在 Activity 里。屏幕旋转后数据丢失,需要手动处理 onSaveInstanceState。
plainGeekDev
7 天前
android
·
java
·
kotlin
单例模式 → object 声明
object 声明的单例是线程安全的——Kotlin 编译器保证初始化在首次访问时执行且只执行一次。底层用的是 Java 的 static final 持有实例 + 同步块,等价于 DCL 但不用手写。
rocpp
8 天前
android
·
kotlin
Android 多语言切换实战:从 Context 到 Android 13 应用语言适配
最近在一个已经模块化的 Android 项目里处理多语言切换问题,现象挺典型:这类问题看上去像“资源没翻译全”,但真正排查下来,核心通常不是某一个 strings.xml 漏了,而是语言源不统一。
黄林晴
8 天前
android
·
kotlin
用了这么久 Koin Scope,原来一直都用错了?
你有没有遇到过,用户换了头像,首页更新了。搜索页却还是旧头像。排查了半天,最终发现是Koin的作用域使用错了。
唐青枫
9 天前
kotlin
Kotlin Context Parameters 详解:别再把 Logger、事务和配置层层往下传
项目代码写久了,很容易出现这种函数签名:真正的业务参数只有 userId 和 productId。后面的 logger、config、tx 更像“运行环境”:
Coffeeee
9 天前
android
·
kotlin
·
glide
如何使用Glide和Coil加载WebP动图
现在很多app都会使用大量的动图资源来提升用户体验,而一般动图他们都会选用Gif图片格式,但是Gif图片格式存在一些不能忽视的问题
Kapaseker
9 天前
android
·
kotlin
5 分钟搞懂 Kotlin DSL
DSL(Domain-Specific Language,领域特定语言)是一种面向特定问题领域设计的表达方式。它不一定是一门全新的语言,也可以是一组经过设计的 API,让代码读起来更接近业务语义。
alexhilton
10 天前
android
·
kotlin
·
android jetpack
使用Android Archive进行打包
本文译自「Packaging with Android Archive」,原文链接medium.com/gitconnecte…,由Chirani Rajapaksha发布于2026年6月20日。
逐光老顽童
12 天前
android
·
kotlin
Java 与 Kotlin 混合开发避坑指南:30 个真实案例实录
接手一个运行了五六年、数十万行代码的超大型 Android 项目,代码库从纯 Java 慢慢变成了 Java 和 Kotlin 混编。两种语言互相调用时,以下的一些场景或坑在这里记录下,如果你恰好也碰到,可以和我一样少掉点头发。
plainGeekDev
13 天前
android
·
java
·
kotlin
null 判断 → Kotlin 可空类型
Kotlin 的类型系统在编译期强制区分 String(不可为 null)和 String?(可为 null)。String? 类型不能直接传给需要 String 的方法,必须先做 null 检查。这比 Java 的 @Nullable 注解强一万倍——后者只是一个 decorator,IDE 标黄但不影响编译。