为什么还有人愿意花数千行代码,只为让界面看起来"像那么回事"?
这个跨平台框架这周干了一件"表面小事":给 iOS 和 Android 分别做了套新皮肤,iOS 叫"液态玻璃",Android 用 Material 3。但代码 diff 有5000多行,横跨平台移植层、模拟器、图形界面管道,还有一堆截图测试。这件事值得拆开看。
![]()
先认个门:这框架是干嘛的
这是个开源框架,用 Java 或 Kotlin 写一套代码,能同时出 iOS、Android、桌面和网页应用。对习惯 Java 生态的开发者来说,这是避开 Swift/Kotlin 双轨维护的一条路。
但跨平台有个老毛病:界面要么"不像原生",要么"像五年前的原生"。它的 iOS 主题之前一直卡在 iOS 7 扁平风,Android 那边还在用 Holo Light——都是博物馆级别的设计语言。
这次更新的核心诉求就两句:开箱即现代,运行要够快。过去一周的所有提交都围着这两个目标转。
正方:这件事做得对
第一,降低决策成本。新开发者打开 Playground(在线预览工具),选 iPhone 自动出"液态玻璃",选 Android 自动出 Material 3,明暗模式都配好。不用改 pom.xml,不用加 build hints,拖组件进去就是现代样子。
第二,覆盖完整。两套主题各管约 25 个界面元素:基础容器、三级标签样式、三种按钮(默认/凸起/扁平,含按下和禁用态)、文本输入、复选/单选、工具栏、标签页、侧边菜单、列表、多行按钮、对话框/底部弹层、悬浮按钮,连带分隔线和弹出层。明暗双模式全齐。
第三,可审计。CSS 源文件直接扔在仓库里(native-themes/ios-modern/theme.css 和 native-themes/android-material/theme.css),想改哪个 UIID 的行为,打开文件就能读。
第四,向后兼容。iOS 7 和 Holo Light 还在,老项目不会崩。这是长期维护项目的底线。
反方:这件事没那么重要
第一,目标用户是谁?纯原生开发者不会用它,他们直接 Xcode/Android Studio。选跨平台框架的人,很多要的是"一套设计走天下",而不是"在每个平台分别像原生"。Flutter 的 Material You、React Native 的社区皮肤,走的都是统一设计语言路线。
第二,维护成本。平台设计语言每年微调,iOS 从毛玻璃到液态玻璃,Android 从 Material 2 到 3 到 3 Expressive。团队要持续跟进,否则新皮肤又会变"博物馆"。
第三,截图测试的陷阱。原文提到"一小支截图测试军队"——视觉回归测试在跨平台场景下极脆弱,字体渲染差异、抗锯齿算法、甚至 GPU 驱动版本都能让测试误报。数千行代码里有多少是在伺候测试本身?
第四,性能承诺存疑。"感觉快"和"真快"是两件事。原生外观往往意味着更多图层混合、更多模糊滤镜、更多动画曲线。图形管道确实被改了,但具体优化了哪些瓶颈,原文没给数据。
我的判断
这件事的真正价值不在"做了两套皮肤",而在**声明了一个立场**:它选择站在"平台忠诚"这一边,而不是"框架统一"。
这是条窄路。Flutter 和 React Native 的默认策略是"让你的应用看起来像 Flutter/React Native",建立品牌辨识度;它反着来,"让你的应用看起来像苹果/谷歌做的"。
对谁有吸引力?企业内应用、B 端工具、需要快速上线又不能让老板觉得"廉价"的场景。用户不会夸你"界面真现代",但也不会骂"这什么鬼设计"。
更深一层:这是 Java 生态的防守动作。Kotlin Multiplatform 在蚕食跨平台市场,用"原生外观"制造差异化——你不是在用某个小众框架,你是在用 Java 写真正的原生应用。
至于那5000多行代码,是技术债还是资产,取决于两年后 Material 4 和 iOS 19 长什么样。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.