Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions Reports/2025/#352-2025.09.22.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,22 @@

> 写的不错的技术博客,包含但不局限于 iOS、多端统一、设计、产品等

### 🌟 🐢 [KMP on iOS 深度工程化:模块化、并发编译与 98% 增量构建加速](https://mp.weixin.qq.com/s/wOnyjYcka99eFJz8BWlu4Q)

[@JonyFang](https://github.com/): 本文主要介绍了 Bilibili KMP 在 iOS 工程化的一些深度改造,达成模块化、并发编译与 98% 增量构建加速的目标。主要通过对 Kotlin/Native 编译管线的深度拆解与重构,系统性地解决了其在模块化、编译并发和增量构建方面的核心瓶颈。

**在构建系统与编译速度上** :实现了 `Parallel Compilation`,将每个 Kotlin 模块独立编译为 `.a` 文件,在一些日常的底层修改的场景下最终产物编译耗时降低 98% 。这充分释放了 Bazel 的高并发优势,结合可靠的 `remote cache` 机制达到 Never clean build 的预期。

**在编码与跨语言交互上**:摆脱了 KMP 默认的“大一统”框架模式。通过为每个 Kotlin 模块生成独立的 `Clang module` ,并以 `@ObjCExport` 注解精确控制导出,实现了真正的模块化。

**在调试与工程化上**:通过修复 `source-map` 路径和实现可靠的 `implementation_deps` ,保证了跨语言调试的稳定性和构建的确定性,解决了社区方案中的常见痛点。

也推荐几篇前几期的相关阅读:
- [探讨跨平台技术与跨平台UI框架及Kotlin Multiplatform在bilibili的实践](https://mp.weixin.qq.com/s?__biz=Mzg3Njc0NTgwMg%3D%3D&mid=2247499203&idx=1&sn=67aea00aa5c15999f97791311938bc53&scene=21&poc_token=HLpTz2ijWQWLwFf6XFfk8Q_WpxxZDQY6efKAoW3r)
- [工程化视角的 Kotlin Multiplatform核心解读及优化](https://mp.weixin.qq.com/s?__biz=Mzg3Njc0NTgwMg%3D%3D&mid=2247499744&idx=1&sn=f3c7bff956a066c30b70b5be1236a308&scene=21&poc_token=HNFTz2ij1E8hZViL6RNPunbfKHVS25LeC66WMyXt)
- [B站在KMP跨平台的业务实践之路](https://mp.weixin.qq.com/s?__biz=Mzg3Njc0NTgwMg%3D%3D&mid=2247502999&idx=1&sn=9213bf3505748c329053a5b583450a18&scene=21&poc_token=HOdTz2ijemHOj_WW4N95gPA12ZTRq-q99qX9m5aI)


### 🐎 [Automating Github Action Workflows For Swift](https://elegantchaos.com/2025/08/28/action-builder.html)

[@Damien](https://github.com/ZengyiMa):作者重启搁置的 ActionBuilder 项目,通过扫描 Package.swift 实现零配置生成 GitHub Actions tests.yml,借 Swiftly 自动识别 Swift 版本并调度 Linux/macOS runner,对 iOS 等 Apple 平台则调用 Xcode 构建且已适配 Swift 6.0-6.2,未来将以轻量 CLI 取代插件,可直接嵌入 Xcode build phase 随编译自动更新工作流。
Expand Down Expand Up @@ -61,6 +77,7 @@

但从更长的视角来看,在 iOS 26 暴露了更多问题后,开发者修复后,后续的新版本对低 OS 的用户也带来体验的提升,所以总体我还是偏正常得看待这个 feature 的,等于苹果开启了对一类问题的线上 TSan ,并且对性能的影响微乎其微。短期的阵痛后带来的是更长期的体验提升。美中不足的就是如果这项 feature 能像 malloc 的一些开关(malloc stack logging 等),能让开发者自主控制按一定比例开启就更好了,能有更多时间修复以及控制对升级到 iOS 26 用户的影响。


> 更具体的一些细节可以看链接。

## 工具
Expand Down