普通视图

发现新文章,点击刷新页面。
昨天以前肘子的Swift记事本

揭秘 .ignoredByLayout():让视觉变换“隐形”于布局之外

作者 Fatbobman
2025年5月14日 08:12

在 SwiftUI 的众多 API 中,.ignoredByLayout() 算是一位“低调的成员”。相关资料稀少,应用场景也不常见,其名称本身就容易引发困惑。它似乎暗示着某种对布局的“忽略”,但这与我们熟知的 offset 或 scaleEffect 等修饰符默认不影响父布局的行为有何不同? ignoredByLayout 究竟在什么时机工作?它到底“忽略”或“隐瞒”了什么?本文将为你揭开这个 SwiftUI 布局机制中微妙 API 的面纱。

别让 Vibe Coding 阻碍了你的技术成长 - 肘子的 Swift 周报 #83

作者 Fatbobman
2025年5月12日 22:00

几天前,一位之前高度赞扬并全身投入 Vibe Coding 的好友发表了一篇推文,表达了他近期基于 AI 编程的挫败感:最近的 Vibe Coding 并没有给我写代码带来任何愉悦感,正相反的是 AI 无法一击必中带来的挫败感。开始重新阅读官方文档和优质视频,自下而上,那种对项目的掌控感又回来了。

从 180 cm 到 5′ 11″:Swift Measurement 全解析

作者 Fatbobman
2025年5月7日 22:00

在日常生活里,人们经常需要在各种度量衡单位之间转换。对开发者而言,实现这类功能看似简单:写几行公式、做几次 switch,似乎就能完成任务。但当你希望同时支持数十种单位、无缝国际化,并且还要考虑格式化、精度、舍入等细节时,工作量立刻飙升,且枯燥到足以让人怀疑人生。好消息是——从 iOS 10 起,苹果在 Foundation 中加入了完善的 Measurement API,帮我们把这一切“苦力活”都完成了。本文将带你系统地了解它的用法与实践。

苹果为傲慢付出了代价 - 肘子的 Swift 周报 #82

作者 Fatbobman
2025年5月5日 22:00

几天前,Epic Games 与 Apple 案迎来了一项重要裁决。法官认定 Apple 故意违反了法院于 2021 年发布的反垄断永久禁令。法院不仅批准了 Epic 提交的执行禁令动议,还罕见地将 Apple 的行为移交给美国司法部加州北区检察官,以调查其是否构成刑事藐视法庭。

使用 equatable() 避免 NavigationLink 预构建陷阱

作者 Fatbobman
2025年4月29日 22:12

NavigationLink 是 SwiftUI 开发者非常喜欢使用的一个组件,它巧妙地结合了 Button 和导航跳转逻辑,大大简化了代码实现。但在某些场景下不恰当地使用它可能会导致严重的性能问题,使应用响应变得迟缓。本文将尝试分析这个问题的成因,并提供一个实用但略显神秘(无奈)的解决方案——使用 equatable() 修饰器来优化性能。

Chrome 会成为 OpenAI 的下一个目标? - 肘子的 Swift 周报 #81

作者 Fatbobman
2025年4月28日 09:00

美国司法部(DOJ)与谷歌之间的反垄断诉讼近期取得了重大进展。法院认定,谷歌通过将其广告服务器与广告交易平台捆绑销售,以及操控广告拍卖机制等行为,排挤了竞争对手,损害了出版商和消费者的利益。作为补救措施的讨论之一,美国司法部正在考虑建议强制谷歌出售其 Chrome 浏览器,并终止与设备制造商的默认搜索引擎协议。继传闻将以 30 亿美金收购 WindSurf 后,OpenAI 在上述判决之后立刻表达了对 Chrome 的收购兴趣。

构建类型安全、高效的 SwiftData/Core Data 模型

作者 Fatbobman
2025年4月23日 22:00

Swift 强大的类型系统使我们能够创建语义明确且安全的数据模型。然而,当面对 SwiftData 或 Core Data 时,我们常因底层存储机制的限制,而不得不在类型表达上做出妥协。这种妥协不仅模糊了领域模型的本意,也为应用的稳定性埋下隐患。本文将探索如何在数据持久化的约束下,通过巧妙的类型封装和转换,构建兼具类型安全、语义明确与高效性能的数据模型。

更短的有效期和更长的保质期 - 肘子的 Swift 周报 #80

作者 Fatbobman
2025年4月21日 22:00

在上周一,我的博客的 HTTPS 证书出现了短暂的失效。好在失效后五分钟,就有热心网友提醒了我。联系云服务商后发现,是对方处理 SSL 证书自动续签的代码出现了故障。经过两个小时的排查,问题得以解除,网站恢复了正常。

我所希望的 Xcode

作者 Fatbobman
2025年4月16日 22:30

随着 AI 能力的快速提高,低代码甚至无代码的时代似乎即将到来。然而,过去一年间,针对专业开发者的各类编程工具并未减少,反而层出不穷。无论是 AI 辅助编程的突破,还是协作、跨平台能力的持续提升,都在证明着专业开发者仍是不可或缺的重要群体。反观苹果生态,作为最重要的开发工具,Xcode 近年来却未能带来真正令人振奋的改变。在这篇文章中,我将分享自己对未来 Xcode 的几点期望。

微软收紧插件、谷歌发力云端,Xcode 何去何从? - 肘子的 Swift 周报 #79

作者 Fatbobman
2025年4月14日 22:00

不久前,微软对 Github Copilot 进行了相当程度的功能增强,除了添加了对 MCP 的支持外,在 AI 交互模式上也提供了与 Cursor 对齐的 Agent 模式,至此,Github Copilot 大大缩小了与其他 AI 代码工具领先者之间的差距。考虑到其更低的定价策略( $10/月 ),明显微软已做好了全力进入商业 AI 辅助市场/服务的准备。

用 Swift 构建 WASM 应用

作者 Fatbobman
2025年4月9日 22:30

随着 Swift 6.1 版本的正式发布,SwiftWasm 也迎来了重大升级。这一里程碑式的更新标志着 SwiftWasm 首次实现了完全基于官方 Swift 开源工具链的构建——告别了自定义补丁的时代,不仅显著简化了开发者的安装流程,大幅节省了系统存储空间,更为重要的是,这种纯正构建方式极大降低了平台的维护成本,为 Swift 生态系统注入了新的活力。在本文中,我们将探索如何利用 Swift 构建 WebAssembly 应用,带你领略 Swift 跨平台开发的无限可能。

切勿将辅助驾驶宣传成智能驾驶 - 肘子的 Swift 周报 #78

作者 Fatbobman
2025年4月7日 22:00

不久前,某个造成三人死亡的交通事故因为涉及某新锐电动汽车品牌再度引发了人们对“智能驾驶”功能的质疑。在目前披露的有限资料中,至少可以确认的是,“智能驾驶”系统未能在相当长的一段行驶距离中判断出当前的路段正在施工(沿途有施工警示标志),只在撞击前2-3秒前给予了警示。这意味着,在系统报警后,驾驶者只有极短的反应时间。

远离 dismiss,拥抱状态驱动

作者 Fatbobman
2025年4月2日 22:12

在 SwiftUI 开发中,环境值 dismiss 因其灵活、自适应的特性备受开发者青睐。它能够根据当前视图的上下文智能执行关闭操作:在模态视图中关闭窗口、在导航堆栈中弹出视图,甚至在多列导航容器中自动关闭边栏。正是这种看似“万能”的便捷性,让许多开发者将它作为首选工具。然而,便捷的背后往往隐藏着风险。频繁使用 dismiss 可能在应用程序中埋下隐患,引发测试难题乃至难以追踪的稳定性问题。本文将分析我们为何应谨慎对待 dismiss,并介绍更加健壮可靠的状态管理方案。通过重新审视视图呈现与消失的逻辑,我们能够打造出更稳定、易维护且可预测的 SwiftUI 应用。

MCP 崛起与苹果的 AI 框架设想 - 肘子的 Swift 周报 #77

作者 Fatbobman
2025年3月31日 22:00

在最近一段时间,在社交网络上,越来越多的 Model Context Protocol(MCP)使用者展示了各种丰富多彩的应用场景,从操控 Blender 创建精美场景,到利用最新的 GPT-4o 图片构建完整的漫画故事。MCP 巧妙地打开了以文本为主要互动手段的大模型,与现实世界之间的大门。

SwiftUI Environment:理念与实践

作者 Fatbobman
2025年3月26日 22:12

SwiftUI 的 Environment 是一个优雅且功能强大的依赖注入机制,几乎每个 SwiftUI 开发者都会在日常开发中接触和应用。这一机制不仅简化了视图间的数据传递,也为应用架构设计提供了更多的可能性。本文将暂且搁置具体的实现细节,转而聚焦于 Environment 在架构中的角色与边界,探讨那些常被忽视却至关重要的设计理念与实践经验。

给毛孩子照相 - 肘子的 Swift 周报 #76

作者 Fatbobman
2025年3月24日 22:00

我有一只 13 岁的狗狗和一只六岁多的猫咪。这些年来,我几乎每年都会带狗狗去宠物照相馆拍照,但由于猫咪过于社恐,一直不敢带他出门拍照。近一年来,我们发现猫咪的状态似乎有了些许改善。虽然他仍然抗拒出门,但在洗澡或去医院回家后,不再需要几个小时才能平复情绪,现在只消几分钟就能恢复正常。看到这样的进展,我和太太决定今年冒险一试,带这兄弟俩一起去拍照,最好还能拍下一张精彩的合影。

❌
❌