Shopify、Notion 往 native 回;SwiftUI 前同事:all bugs are bridging bugs。

这几天 X 上三条帖,凑在一起挺有意思。

Shopify 的人说,Shop App 已经搬回 native,Swift + Kotlin,大概十二周。启动更快,崩溃少很多,安卓包小了一百多兆。原文用的是 move back——说明中间走过跨端,现在又搬回去了。

Shopify Shop App 迁回 native

Mustafa Ali(@mustafa01ali)

Shop 是我们第一款完成迁回 native 的 App。团队用 Swift 和 Kotlin 重写,大约十二周。现在 iOS 启动快 23%,安卓快 50%,崩溃率降到原来的十分之一,安卓包小了 109 MB。我们预计这些数字还会继续改善。

— Mustafa Ali(@mustafa01ali)

Shopify 工程博客

Shopify Engineering 配图

差不多同时,Notion 的 Ji Pei 发了段手机录屏:他们在重做 native 移动端。还早,但评论区已经炸了,大家都在骂现在手机上的 Notion 哪里难受。

Notion 重做 native 移动端

Ji Pei(@iampgzp)手机录屏

我们正在用 native 重做 Notion 移动端。还早,但先看看现在的手感。手机上的 Notion,你最烦哪一点?我想听,也想改。

— Ji Pei(@iampgzp)

Kyle Macomber 以前做 SwiftUI。他引用 Shopify 那条,提了个内部玩笑:all bugs are bridging bugs。在 UIKit 上面盖一层声明式框架,更新时机、各种边角行为,很难对齐。他说,React Native 那边只会更难。

Kyle:all bugs are bridging bugs

Kyle Macomber(@kylemacomber)

在 SwiftUI 团队里我们有个玩笑:「所有 bug 都是 bridging bug。」在 UIKit 上盖一层声明式框架很难:很多行为没定义清楚,尤其是更新周期的细微时机,而且一直在变。就算坐同一条走廊、目标就是两边对齐,也做不到完美。React Native 那边只会更难。

— Kyle Macomber(@kylemacomber)

三条帖没有串通。但方向一样:用户天天摸的那层,开始舍得付 native 的账。

早年跨端能快,一个团队顾两端,没问题。产品做大了,慢启动、闪退、肥包、手势不对,会直接劝退人。这时再谈「一套代码」,账就不一样了。

不是让所有人明天砍掉跨端。后台、活动页、内部工具,跨端仍然划算。变的是:核心 App 越来越难用凑合交差。

Shopify 先交了一份带数字的卷。Notion 还在写。桥还在,不过越来越多人发现——桥不是家。