研究想法

Cross-client shared application logic

日 · 2026-04-20 · Cross Platform

现有证据支持范围较窄的 KMP 采用动作,这些动作和移动端重复逻辑、多客户端复用,以及更快的 web 扩展有关。来源是一篇由 JetBrains 发布、基于案例陈述的文章,所以最可信的是范围明确的试点和内部共享模块,并配有清楚的前后对比检查,而不是大规模重写的说法。

3 个想法

KMP pilot for shared business rules and data models

针对业务规则、计算和数据模型做一个 KMP 试点,是已经分别发布 iOS 和 Android 应用、又一直碰到重复实现工作的团队,最清楚的近期检验方式。这个范围的理由很直接:一个共享的 Kotlin 模块可以承载经常变化的逻辑,而每个平台继续保留自己的原生 UI 和各自的集成点。来源材料反复把这种模式当作实际起点,并且在逻辑密集的领域给出了约 75% 的共享预期。

当产品团队已经感受到平台漂移时,这个试点最容易成立,例如定价规则、资格检查、内容门控、同步逻辑,或其他必须在两个应用里表现一致的功能。它宣称的好处是更快达到功能一致,以及减少重复测试,因为规则实现只放在一个地方。这里的证据仍然来自厂商关联的案例和轶事,所以最便宜的验证方法很窄:选一个规则密集的功能,只把共享核心迁到 KMP,拿交付时间、缺陷数量和一致性问题去对比最近一次分别开发的功能。

Shared identity and entitlement SDK across mobile and web clients

跨平台的身份或策略 SDK,适合那些运营多个消费者应用、并且在每个平台上反复重做登录、权限或账户状态逻辑的公司。文章给了一个直接例子:一家全国性媒体公司为 Android、iOS 和 web 构建了一个 KMP Identity SDK,团队规模只有通常用于平台专属项目的一半。这让可复用的内部 SDK,比大范围移动端重写更有说服力。

实际目标是做一个一次维护会话状态、令牌处理、权限检查、账户规则和相关模型的包,然后向各个客户端暴露原生绑定。这适合有多个品牌应用、订阅产品,或需要与移动端行为保持一致的 web 入口的组织。第一步验证要小而可量化:把一个共享的认证或权限库交给一个 iOS 应用、一个 Android 应用和一个 web 客户端,然后统计避免了多少重复修复,以及发布协调花了多少时间。

Web fallback path built on shared mobile domain logic

面向移动优先产品的 web 兜底路径,是一种具体的采用变化,适合那些可能需要在很短时间内把现有应用流程暴露到 web 上的团队。文章给了两个可用信号。Duolingo 据称用同一套 KMP 代码库,把 Adventures 从 Android 扩展到 iOS,再扩展到 web,而且后续工作量低得多;另一家公司据称通过 JavaScript 调用已经实现并测试过的代码,在三周内把一个移动应用改到了 web。

这指向一个具体的构建选择:把领域逻辑、校验规则和核心流程放在共享的 KMP 模块里,这样浏览器客户端在产品、合作方或分发需求变化时就能直接调用。受监管的发布路径、事件驱动的上线,或依赖应用商店的业务,会最先在意这一点。低成本测试是把一个现有移动流程通过共享模块暴露到 web 上,然后看重用核心逻辑之后还剩多少平台专属代码。