普通视图

发现新文章,点击刷新页面。
今天 — 2025年7月14日iOS 老司机

老司机 iOS 周报 #342 | 2025-07-14

作者 ChengzhiHuang
2025年7月13日 22:09

ios-weekly
老司机 iOS 周报,只为你呈现有价值的信息。

你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

新闻

Swift 宣布成立安卓工作组

Swift 官方宣布成立 Android 工作组,将 Android 列为官方支持的平台。该工作组的主要目标是为 Swift 语言添加并维护 Android 平台支持,让开发者能够使用 Swift 开发 Android 应用。

文章

🐕 A Swift Developer ’ s Guide to Prompt Engineering with Apple ’ s FoundationModels

@Barney:这篇文章是关于 Apple's FoundationModels 在 Swift 开发中的提示工程指南。Apple 的 Foundation Model 专门为 Swift 和 SwiftUI 训练,有 4096 token 的上下文限制。核心技术是使用 Generable 宏定义输出结构,通过 Guide 系统精确控制生成内容。文章强调属性顺序的重要性,因为 LLM 逐 token 生成。实用技巧包括自然语言长度修饰符、角色设定、少样本提示法和温度调节。对于用户输入,建议限制开放字段并妥善处理 guardrail 错误。为 Swift 开发者提供了原生、类型安全的 AI 集成方案。

🐕 Finding my Way

@Kyle-Ye: 独立 iOS 开发者 David Smith 分享了他在基于 iOS 26 设计语言重新设计 Pedometer++ 的地图功能的一些思考。文章详细描述了他的设计过程,包括如何让地图全屏显示、如何优化顶部按钮、如何设计浮动的信息面板等。

🐢 《别急于下定论:人工智能编程工具实则可能降低生产力》 Not So Fast: AI Coding Tools Can Actually Reduce Productivity

@Cooper Chen:在 AI 编程工具被广泛吹捧的背景下,METR 实验室通过一项严谨的随机对照试验(RCT)揭示了一个反直觉的结论:经验丰富的开发者在成熟项目中使用 AI 工具后,工作效率反而降低 19%。这项研究基于 16 位资深开源开发者在百万行代码项目中的 246 项真实任务,挑战了“ AI 必然提升效率”的行业共识。

关键发现:

  • 效率幻觉:开发者普遍预期 AI 能提速 24%,实际却拖慢 19%,认知偏差高达 40 个百分点。
  • 时间消耗:44% 的 AI 生成代码被废弃,开发者 9% 的时间用于修正 AI 输出,4% 在等待响应。
  • 适用场景:AI 在小型新项目中表现良好,但对复杂系统维护可能适得其反。

🐕 Schedule a countdown timer with AlarmKit

@阿权:文章详细介绍了如何使用 WWDC25 推出的 AlarmKit 框架实现倒计时提醒功能。过去要实现指定时间提醒功能,普通开发者只能通过苹果的通知推送。虽然通知能自定义时机甚至提醒铃声,但始终还是通知,在静音模式和专注模式下都无一幸免,要想像系统闹钟一样即使在静音和专注模式下还能提醒,只能通过新推出的 AlarmKit 了。AlarmKit 支持一次性闹钟、重复闹钟和立即开始的倒计时提醒,AlarmKit 提供的能力需要用户授权,并需要适配锁屏展示和灵动岛中的展示,具体配置可浏览原文。

只希望该功能不要被厂商滥用,尤其不要用在“加急”功能上啊!

🐎 Google I/O Extended :2025 Flutter 的现状与未来

@david-clang:本文的分享更侧重于科普类型的概括,包括 Flutter 的市场渗透率、技术进展、未来方向,其中有几个有趣的点:

  1. 市场渗透率:

    • Flutter 比 RN 的整体渗透率高:根据 2025 年 6 月腾讯端服务统计整体渗透率,Flutter 约 13%,RN 约 9%。另外,根据 Apptopia 统计,2024 年 AppStore 里 Flutter 占据所有新免费 iOS 应用的近 30%。
  2. 技术进展:

    • 线程合并:之前的 3.29 Android 和 iOS 默认合并 Dart UI 线程和平台线程,从最近 3.32 开始, Windows 和 macOS 也支持合并 Dart UI 线程和平台线程。
    • 多窗口:在本文发布后 2 天,对多窗口的支持已经合到主分支(#168728),在 Engine 层引入在 Windows、macOS 和未来 Linux 平台上创建并管理多个窗口的机制。
  3. 未来方向:

    • 移除 Cupertino 和 Material 的内置:对于 iOS 26 的液态玻璃实现,官方已经明确了不会内置支持,甚至连 Android 的最新  Material 3 Expressive 也是,长期来看,把特色控件从 Framework 内置移除,专注引擎优化,是个更好的方向。
    • ffigen/jnigen 持续优化:线程合并的主要目的,是为了抛弃历史产物 MethodChannel,而在互操作这件事情,未来肯定是 Dart 和平台语言直接互调用,而 3.32 也提到了,ffigen/jnigen 也在持续改进并内测,预计下半年会有全新的消息。

🐎 使用 Xcode 26 构建,在 (, iOS 26) 设备启动崩溃 Symbol not found: _NSUserActivityTypeBrowsingWeb

@DylanYang:使用 Xcode 26 构建包,跑在版本号小于 iOS 26 的系统上会在启动阶段遇到设备启动崩溃 Symbol not found: NSUserActivityTypeBrowsingWeb。原因是 CoreServices 在 iOS26 SDK 中重新导出了 NSUserActivityTypeBrowsingWeb 符号,导致链接时将符号绑定到了 CoreServices 模块。修复方案是把 Foundation 的在链接参数中的位置往前面提到 CoreServices 之前。

CrazyFanFan 提供信息

内推

重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考

具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)

关注我们

我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。

关注有礼,关注【老司机技术周报】,回复「2024」,领取 2024 及往年内参

同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom

说明

🚧 表示需某工具,🌟 表示编辑推荐

预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)

昨天以前iOS 老司机

老司机 iOS 周报 #341 | 2025-07-07

作者 ChengzhiHuang
2025年7月6日 19:13

ios-weekly
老司机 iOS 周报,只为你呈现有价值的信息。

你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

新手推荐

🐎 Don ‘ t Liquid Glass All the Things

@阿权:iOS 26 的液体玻璃效果让大家眼前一亮,大家可能已经在重新设计自己的 App,恨不得给所有 UI 都加上液态玻璃效果。文章提到液态玻璃效果容易滥用,导致界面的不和谐。使用液态玻璃的场景应该是用于突出按钮下方的内容,例如地图预览上方的操作按钮。换句话说,液态玻璃效果的控件会让控件自身与下方内容悬浮出来,形成两个解耦的交互层级,如果控件本身与内容是嵌合的二维依赖关系,则并不适合添加液态玻璃效果。

文章

🐢 深入解析| Cursor 编程实践经验分享

@Cooper Chen:本文深度剖析 AI 编程助手 Cursor 的进阶使用方法,为开发者提供一套可落地的效率提升方案:

1.Prompt 设计黄金法则

  • 采用"目标-背景-约束"三段式结构
  • 技术方案设计阶段明确禁止生成代码
  • 单测生成时附带示例代码确保风格统一

2.Rules 规范引擎

  • 自动生成项目专属开发规范(支持 Go/Java 等)
  • 中间件调用错误率降低至 0.3%
  • 通过"/"命令快速适配团队规范

3.工具链整合方案

  • 复杂需求使用 AutoGPT 进行任务分解
  • 技术调研调用 Claude 深度研究模式
  • 钉钉文档直接解析免去格式转换

本文提供的技术方案设计模板和开发规范 Rules 可直接复用,帮助开发者快速建立 AI 辅助编程工作流。文中揭示的"代码生成 + 架构决策"分层协作模式,为现代软件开发提供了高效的智能解决方案。

🐕 Flutter 里的像素对齐问题,深入理解为什么界面有时候会出现诡异的细线?

@david-clang:Flutter 界面中出现的诡异细线,本质原因是:

  1. 逻辑像素到物理像素转换出现浮点值(非整数 DPR、布局误差)。
  2. Skia 默认开启 AAA(Analytic Anti-Aliasing)抗锯齿处理,处理相邻同色元素时各自计算的像素覆盖率总和可能不足 100%(如 40% + 50% = 90%)。
  3. 未被覆盖的剩余部分(如上例的 10%)会显露背景色,形成半透明的细线。

解决方案是:

  1. pixel_snap:提前将逻辑像素换算物理像素,根本上避免转换后出现物理像素不对齐。
  2. Impeller: MSAA(Multisample Anti-Aliasing)抗锯齿处理,通过在每个像素内部采样多个点来获得更准确的边缘渲染效果,使那些原本因浮点误差产生的“半像素边缘”更加平滑自然,从而视觉上弱化或隐藏了细线问题。

🐕 Rewriting a 12 Year Old Objective-C iOS App with Claude Code

@Smallfly: 这是一篇非常详实的 AI 辅助开发实践分享。作者用 Claude Code 将一个 12 年前的 Objective-C 应用 Vinylogue 重写为 Swift + SwiftUI,仅用 7 天时间就完成了从架构升级到 App Store 上架的全流程。

文章的价值在于:

  1. 真实的成本分析 - 详细记录了理论花费 $353 vs 实际花费 $20 的对比,以及每日开发进度
  2. 实用的最佳实践 - 总结了大量 Claude Code 使用技巧,如使用 --quiet 标志、合理管理上下文窗口、创建反馈循环等
  3. 架构升级经验 - 展示了如何利用 AI 工具进行大规模重构,从传统架构升级到现代的 swift-dependencies + swift-sharing 架构
  4. 完整的开发流程 - 涵盖了从数据迁移、UI 适配到自动化截图生成的全过程

对于想要尝试 AI 辅助开发的 iOS 开发者来说,这篇文章提供了一个很好的参考框架。特别是文章中提到的"保持在宏观层面评估代码库,让 AI 处理微观层面的工作"这一理念,对提高开发效率很有启发意义。

🐕 Understanding and Improving SwiftUI Performance

@AidenRao:Airbnb 的 SwiftUI 性能优化分享:通过为视图自定义 Equatable 协议实现,仅在实际数据变化时触发重绘,避免不必要的视图更新。将大型视图分解为小型可差异化组件,配合复杂度检测工具(如 SwiftLint 规则)预警重构时机,减少单次渲染计算量。

代码

container

@老驴:Apple 最近发布了一个新的开源项目叫 Container,本质上是一个运行在 Linux 上,基于 Swift 和 Virtualization framework 的容器库。它的重点是更好地支持 Apple Silicon 芯片跑容器。 个人猜测,这可能是 Apple 为将来在自家服务器上使用 Apple Silicon 做准备的一步。毕竟一直有传言说 Apple 想让自家数据中心的服务器用上自研芯片,而要做到这一点,一个完善的容器方案是少不了的。

内推

重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考

具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)

关注我们

我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。

关注有礼,关注【老司机技术周报】,回复「2024」,领取 2024 及往年内参

同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom

说明

🚧 表示需某工具,🌟 表示编辑推荐

预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)

❌
❌