Press "Enter" to skip to content

Huahua's Tech Road

中美对手机“电池焦虑”的差异:从一部超薄 iPhone 说起

前段时间我首发入了新出的 iPhone Air。拿到手的第一感觉是真的很薄、非常精致。虽说摄像头配置上稍微妥协了一些,但日常勉强也算够用。不过,最让我关心的还是它的续航——毕竟机身做薄了,电池容量自然受限。以我个人的日常使用强度来看,平均一天用下来还剩 20% 左右的电量。主要是我不玩手游,不然电池容量翻番都扛不住。

这让我不禁思考起一个有趣的现象:为什么在北美,大家对手机的“电池焦虑”似乎普遍比国内要低得多?

结合我自己在这边的生活和观察,我总结了四个最核心的原因。

1. 移动场景的充电“回血”机制不同

在北美,不管你是普通的清洁工还是公司的技术高管,大部分人上下班的通勤方式都是自驾。这意味着,只要你坐进车里,手机就可以顺手插上车载充电线或者放在无线充电板上。通勤的这半小时到一小时,反而是手机的“回血时间”。

反观国内,绝大多数一二线城市的通勤主力是地铁和公交。上下班往返动辄一个多小时,在这个过程中,手机完全处于高耗电的离线或移动网络搜索状态,基本没有回血的可能。这一来一回,电量差距一下就被拉开了。

2. 灵活的工作模式(WFH)

北美的职场文化中,上下班时间相对灵活,很多科技公司或白领岗位还保留了每周几天 WFH(居家办公)的模式。在家里或工位上,充电线几乎触手可及。当你的手机随时随地都能插上电源时,“电池焦虑”这个词根本就不会进入你的大脑。

3. “万物皆可扫” vs “相对低频”的手机依赖度

这是最本质的痛点。在国内,日常出行对手机的依赖度高到离谱:坐地铁要扫码、进商场要扫码、去餐厅点单和结账要扫码,甚至连小区门禁都绑定在手机里。手机一旦没电,几乎寸步难行。而且在漫长的地铁通勤中,大家也习惯了高强度地刷短视频或玩游戏。

而在北美,虽然移动支付(如 Apple Pay)越来越普及,但传统的实体信用卡和现金依然是绝对的硬通货。去餐厅有服务员点单,进出各种场所也不需要频繁掏出手机亮码。日常生活中,手机更多时候只是一个纯粹的通讯和查地图工具,依赖度相对较低。

4. App 生态与系统环境的“胖瘦”之争

除了生活习惯,软件生态也难辞其咎。北美的 App 环境相对规范,系统和应用整体比较简洁。大部分主流软件都严格遵循操作系统的后台墓碑机制,很少有疯狂常驻后台的行为,耗电量自然没那么大。

反观国内的 App 生态,“全家桶”和“链式启动”屡见不鲜。一个小小的应用可能集成了社交、电商、短视频、游戏甚至金融支付等各种庞大的模块。为了保证推送和保活,各种后台唤醒机制让手机在熄屏时也在疯狂耗电。再加上各大应用对消息推送(Push Notification)机制的滥用,无形中又当了“电量刺客”。

补充一点:共享充电宝的“反向心理暗示”

如果再补充一个有意思的观察,那就是国内无处不在的共享充电宝,其实反向加剧了这种焦虑。

在国内的商场、餐厅、甚至便利店,随处可见各种品牌的共享充电宝机柜。这种极高的便利性一方面解决了燃眉之急,但在心理学上,它也反复在向你暗示:“你的电量随时可能不够。”

而在北美,共享充电宝的概念非常罕见。大家出门如果真有长途需求,往往会自己随身带个 MagSafe 磁吸电宝或者普通的 Anker 充电宝。没有了外部环境的“随时提醒”,反而让人对电量的得失心没那么重了。

总结 iPhone Air 的超薄设计,其实是一面镜子,映照出不同生活模式下人们对技术的诉求。在北美,灵活的自驾通勤、干净的软件生态和相对低频的日常依赖,让一部超小容量手机也能用上一整天;而国内高强度的“一机走天下”和重度App环境,则让“满格电”成了现代人出门必不可少的盔甲。

【独立开发】我的第一个 Vibe Coding App 上线了!从零到 App Store 的两周“缝合”之旅

断断续续搞了两个星期,我的第一个完全基于 Vibe Coding(氛围编程/AI 辅助编程) 的 iOS App 终于成功上架 App Store 了!

作为一名纯粹的独立开发者,出于隐私保护,具体 App 的名字和链接这里就不公开了。只能坦白说:它又是一个 Days(倒数日)+ Todo List(待办清单)的“缝合怪”。 似乎现在 AI 辅助开发的独立项目,都逃不过这个产品怪圈。但没关系,市面上的同类 App 确实没法完全满足我的痛点,自己动手,量身定制,用起来才最顺手。

今天想聊聊这两周的心路历程,以及纯 AI 辅助开发、无后端架构在 iOS 生态里踩过的那些大坑。

🧠 从 SwiftUI 小白到“缝合大师”

最神奇的地方在于:在动工之前,我对 Swift 和 SwiftUI 的知识储备几乎为零。

经过这两周被 AI 疯狂“喂代码”,我竟然也能对着那些 .swift 文件看个七七八八了。虽然让我从头徒手写一个功能依然是不可能的(这辈子都不可能),但现在看着代码改改 View 的高度、换个颜色、调个 Padding,或者微调一下逻辑判断,居然已经轻车熟路。

这种“看不懂全貌但能改局部”的状态,大概就是 Vibe Coding 时代开发者的生存法则吧:只要 AI 框架搭得好,微调补丁没烦恼。

🛠️ AI 结对编程工具的“轮岗”心得

在这两周里,我高强度体验了市面上几大主流 AI 模型,可以说是“货比三家”:

  • Gemini:由于已经订阅了了,本想作为主力,但在 Xcode 环境中的实际表现实在有些差强人意。最搞笑的是,有次我让它优化一段逻辑,它贴心地在回复里写了一行:// keep the original code然后反手就把我原本那几百行代码全删了,只剩下一个空壳函数吐在屏幕上。 当时我盯着屏幕,CPU 都快烧了:我是让你优化,不是让你给我搞“极简主义”啊!
  • Claude Agent:聪明是真的聪明,代码质量极高,但太贵了!高频对话下那个 Token 的消耗速度,钱包高呼吃不消。
  • ChatGPT (Codex/Plus):最后只能转战Codex,Plus的每个月 $20 的订阅费,limit不高,一个小功能可能就要2%的周用量,但省省、省着用,勉强够用。性价比目前最高。

🫠 翻车现场:跟 AI 死磕“液态玻璃”特效

既然是量身定制,免不了想在 UI 上搞点视觉高光。我当时脑子一热,非要在主界面搞一个炫酷的液态玻璃(Liquid Glass/Gooey)交互特效

于是我开始指挥 AI 疯狂输出 SwiftUI 代码。结果这一折腾,直接死磕了好几天:

AI 一会儿给出一堆复杂的 Canvas 加上各种高级滤镜;一会儿让模拟器掉帧到卡顿;一会儿在实机上渲染出来一团浆糊。

跟 AI 在这卷了好几天,改了无数个版本后,我终于精疲力竭地悟了:现阶段的 AI 在处理这种极其玄学的、高阶定制的图形渲染和动效时,底层逻辑还是差了口气。 最后我心一横,直接把这堆花里胡哨的代码全删了,老老实实换回了系统自带的 TabView。嗯,真香,省电且稳定。看来现在的 AI 也就那样嘛,高难度整活儿的时候还是容易现原形。

☁️ 轻量级技术栈:StoreKit + iCloud Kit

因为是个人独立项目,为了省心和控制成本,我直接砍掉了服务器,做到无需注册、无需登录,纯本地加云端同步。

  • 存储与同步:采用 SwiftData + CloudKit 的方案。
  • 付费墙:接入 StoreKit 实现 App 内购买。

💡 踩坑:被 AI 模型“背刺”的 Data Model

刚开始的时候,我让 Gemini 帮我设计数据模型(Model)。AI 直接把某些数据类型给写死了,完全没有预留扩展空间。导致我后期硬着头皮写了一个 Migration(数据迁移),小心翼翼地把旧字段的数据全部搬到新架构上。

搞崩心态的 App Store 上架改名风波

由于一开始没查重,快收尾时才发现想好的 App 名字已经被别人注册了

  • Bundle Identifier:这个是不能改的。
  • CloudKit Container:虽然可以修改,但伴随着极高的数据丢失风险。在没有后端备份的情况下,操作起来让人心惊肉跳。最后折腾了一大圈才理顺,建议大家开工前先去 App Store Connect 里把名字占了。

🛒 StoreKit 订阅审核与测试暗礁

第一次提交包含 Subscription(订阅) 的版本,苹果的审核要求比想象中严格得多。

Xcode 自带的 StoreKit Configuration 虽然方便,但它毕竟是个“模拟器”。强烈建议在打包前,必须用 Sandbox(沙盒环境)再完整测试一遍。 很多关于收据验证、跨设备恢复购买的细节,只有在沙盒里才能暴露出真实问题。

🤫 留给自己的“后门”:隐藏的开发者模式

为了方便测试和截 Demo 图,我在代码里做了一些“小手脚”:

  • Debug 模式下:开启了内购豁免,直接绕过 Subscription 限制。
  • 数据工具箱:内置了大量的数据导入导出、一键生成测试数据的功能。

重点来了——为了方便我在正式版里排查问题,这个“开发者模式”在 Release 模式下其实也可以进入! 至于触发方式嘛……极其隐蔽,一般人我是不会告诉他的(笑)。

结语

两周的 Vibe Coding,虽然一直在跟 AI “扯皮”、被动效折磨、最后跟苹果的生态规则“死磕”,但看到 App 成功上线的那一刻,成就感还是满格的。

这个 App 完美地实现了我对 Days 和 Todo 的所有幻想。接下来就是自己深度使用,然后继续让 AI 帮我打补丁了。

最终花费:ChatGPT Plus $20 + App 开发者年费 $99 = $120。看来还是要多做几个App才能回本啊~能回本吗?

困在郊区的青春期:当城市规划剥夺了我们的“双腿”

随便一个周末,如果你去观察那些宽阔的林荫大道或是大型Plaza的停车场,你会发现一个有趣的现象:这里的主力司机往往是疲于奔命的中年父母。看着小孩一天天长大,我有时会忍不住想象十几年后的场景——在他拿到驾照之前的漫长青春期里,我大概率会化身为他的“全职Uber司机”,穿梭在学校、补习班、球场和同学家之间。

在湾区这样典型的美国郊区(Suburbia),汽车几乎是参与社会生活的“唯一门票”。对于青少年,或是因为各种原因无法驾车的成年人/老年人来说,这种缺乏公共交通的城市形态,往往意味着一种隐形的“软禁”。

无车群体的“隐形软禁”

1. 独立性与自主权的剥夺 在郊区,去任何地方都需要“请求许可并预约司机”。青少年无法自发地探索世界,生活轨迹被死死限制在家庭和学校的固定两点一线。每一次出门都不再是一次随性的决定,而是一个需要全家协调的物流项目。这种对成年人的高度依赖,在很大程度上延迟了他们独立人格的建立。

2. 社交隔离与心理健康 心理学上有一个词叫“Suburban Isolation”(郊区孤立症)。在这里,见朋友的物理成本极高,导致线下的、非结构化的社交大幅减少。郊区极其缺乏“第三空间”——那些适合闲逛的安全街区、步行可达的街角咖啡馆或便利店。这种物理上的孤立,无形中加剧了青少年的孤独感。

3. 机会的不平等 没有车,意味着你连去快餐店打份零工、去社区图书馆做志愿者,或者参加一个不在校内的兴趣小组都变得异常困难。出行的壁垒,直接转化为了社会参与度的壁垒。

历史溯源:为汽车而建,而非为“人”而建

这种极其依赖汽车的城市形态并非自然演化,而是刻意规划的结果。

二战后,伴随着汽车工业的崛起和《联邦资助公路法案》的推行,美国迎来了轰轰烈烈的郊区化狂潮。人们逃离拥挤的市中心,在广袤的土地上建起了带有大草坪的独栋别墅。

然而,真正将公共交通“赶尽杀绝”的,是区划法(Euclidean Zoning)。这种严苛的城市规划制度将居住区、商业区和工业区进行了绝对的物理隔离。结果就是,买一瓶酱油你可能都需要开车3英里跨越几个街区。在这种极低的人口密度和高度分散的布局下,建立覆盖面广、班次密集的公共交通系统在经济上变得完全不可行。

与此同时,“以车为本”的街道设计让宽阔的马路占据了主导,人行道变得断断续续,甚至完全消失。对于没有包裹在钢铁外壳里的人来说,外面的世界充满了敌意。

镜像对比:如果生在别处?

为了更直观地理解郊区规划的影响,我们不妨看看其他几种截然不同的城市形态:

  • 纽约市(轨道上的“城市游乐场”): 纽约拥有极高的密度和24小时运作的MTA地铁系统。这里的青少年极度独立,城市就是他们的游乐场。他们从小学习如何看地图导航、如何与各色人群打交道,社会化程度极高。当然,代价是他们也需要过早地面对复杂城市环境中的安全隐患。
  • 微型小镇(步行乌托邦): 想象一个方圆只有1公里的小镇。这里的尺度极小,一切都在步行或自行车的辐射范围内,根本不需要公共交通。这种环境催生了强烈的熟人社会属性和社区凝聚力,青少年依靠双腿就能获得完全的自由。缺点在于资源的上限很低,可能只有一家小卖部和一个球场。
  • 中国二三线城市(混合规划的胜利): 这是与美国郊区反差最强烈的形态。住宅区与底商高度融合——楼下就是便利店、理发店和小吃街。再加上极其发达的廉价公交网、随处可见的共享单车和“小电驴”,青少年的出行自由度极高。放学后可以和同学走路去买烤肠,或者坐几站公交回家。同样,非驾驶的老年人也能完全独立地买菜、逛公园,生活自理能力不受年龄或驾照的限制。

结语

自由出行的权利,本不应该与是否拥有一辆车和一本驾照强制绑定。

当我们审视今天的郊区时,或许应该更多地思考如何引入“15分钟城市”的理念,如何在漫无边际的住宅区中融入微型商业,以及如何建立安全的微观出行(Micro-mobility)网络。

把街道的连接权还给那些没有方向盘的人,才是真正人性化社区的开始。

HDR Brightness Standards vs. Reality

花花:

1000nit hlg推荐的纸白95% reflection 只有203nit,给高光留了2.5档左右。但203nit远远低于一般的sdr显示器的标准亮度,300-450nit,会让人觉得HDR怎么这么暗啊。Apple MBP 1600nits xdr的屏幕,在显示75% HLG信号的时候大概是450nits,给高光留了大概留了2档,个人觉得是不太够了。而最新的iPad Pro和Studio Display XDR SDR都干到了1000nits,HDR则是2000nits,差距只有1档(当然HDR时的纸白应该不会到1000nits)你是怎么看待这个问题的。

Gemini:

这是一个非常核心且击中当前 HDR 发展痛点的问题。你观察到的现象,正是目前影视工业界标准与消费级显示设备(尤其是追求高亮度的移动端和 PC 端设备)之间产生的剧烈摩擦。

我们可以把这个问题拆解为“规范与环境的脱节”、“厂商的妥协”以及“高亮时代的 HDR 究竟应该怎么做”三个层面来看。

1. 规范与环境的脱节:为什么 203 nits 会让人觉得暗?

ITU-R BT.2408 规范将 HDR 的参考白(Diffuse White / 纸白)定在 203 nits,并在上面留出巨大的空间给高光(Specular Highlights)。这个标准的制定有一个非常严格的隐藏前提:暗室环境(通常是 5 nits 甚至更低的背景光)。

在符合标准的专业调色室里,203 nits 的纸白是非常舒适且有足够反差的。但问题在于,绝大多数消费者是在明亮的办公室、客厅甚至户外使用屏幕。在这些高环境光下,人眼瞳孔会缩小,人们早已经习惯了将 SDR 显示器的亮度拉到 300-450 nits 甚至更高来对抗反光。

当播放严格按照 203 nits 纸白制作的 HDR 视频时,整体的平均图像亮度(APL)瞬间掉到了消费者习惯的 SDR 亮度的一半以下。所以,普通观众最直观的感受就是:“怎么一切换到 HDR,画面反而变暗了?”

2. Apple 的妥协:以牺牲动态范围换取环境适应性

你提到 MBP 1600-nit XDR 屏幕在显示 75% HLG 信号时把亮度推到了约 450 nits,这正是 Apple 针对上述痛点做出的“强行干预”。

这其实是一种基于环境光和设备特性的映射策略(Tone Mapping)。Apple 知道用户在日常环境中无法接受 203 nits 的纸白,所以他们拉高了 APL,让中性灰和纸白看起来和高亮 SDR 一样通透。

但正如你敏锐察觉到的,这个做法付出了惨痛的代价:高光余量(Headroom)被严重挤压。

  • 如果纸白是 203 nits,到 1600 nits 峰值,你拥有接近 3 档 的高光动态范围,画面中的阳光、金属反光、火焰会极具爆发力和立体感。
  • 如果纸白被拉到 450 nits,到 1600 nits 峰值,只剩下不到 2 档

这就导致 HDR 失去了它原本的意义——它不再是“高动态范围”,而变成了“全局高亮度的 SDR”,失去了那种扎实的中耀度和刺眼的高光反差带来的真实临场感。

3. 1000 nits 纸白?高亮面板时代的 HDR 悖论

关于最新的 iPad Pro(Tandem OLED)和 Pro Display XDR,SDR 全局能推到 1000 nits,HDR 峰值 2000 nits。如果真的把纸白放在 1000 nits,距离峰值确实只剩下了可怜的 1 档

但从影像创作和调色逻辑来看,我们绝不能把纸白推到 1000 nits。 * HDR 的本质是对比度,不是瞎眼: 1000 nits 的漫反射白(比如画面里的一张白纸、一件白衬衫)在视觉上是非常刺眼且不自然的。面板提供 1000 nits 的全屏持续亮度,其核心目的是为了在户外强光下依然能看清屏幕内容(对抗极端的环境光),或者是为了真实还原雪山、明亮天空等极高 APL 的宏大场景,而不是用来提高 UI 或基准肤色的亮度。

  • 正确的映射逻辑: 即使在能输出 2000 nits 峰值的屏幕上,如果你在进行影视化创作,基准的肤色和纸白依然应该被压制在 200-300 nits 左右(最多根据环境光做轻微的动态补偿)。这样你才能保留足足 3-4 档 的空间,去展现画面里真正的光源和高光细节。

总结

你看到的实际上是“显示器硬件狂飙”和“影像创作者的意图”之间的冲突。面板厂商(如 Apple)为了让产品在各种复杂光线下都“看起来很亮很清晰”,往往会篡改映射曲线,拉高纸白,但这破坏了 Cinematography 中对于光影反差的精心设计。

对于习惯了专业影像标准的人来说,这种为了迎合大众观感而牺牲高光细节的做法,确实让人觉得“不太够”甚至有些遗憾。