文章归档

全部文章

202622 篇

  1. ArrangementView:谋而后定

    深入剖析 Xcode 27.1 beta 中随 iPhone Duo 引入的 SwiftUI ArrangementView。解析 split 与 overlay 模式下的主次语义倒错、状态硬切及集中信息源的缺失,带你理清其舒适区与设计边界:谋而后定。

  2. SwiftData:优化从建模开始

    SwiftData 列表在数据量大时明显卡顿 , 根源不在 SwiftUI 的 List, 而在框架取消了 Core Data 的惰值机制——查完即加载完。本文用实测数据说明 propertiesToFetch 为何无效 , 以及为什么优化必须从建模阶段按使用频率拆分模型开始。

  3. Liquid Glass:UIKit 适配踩坑实录

    Liquid Glass 推出两年后,UIKit 的适配仍然存在不少兼容性问题。本文结合真实项目,分享 UIBarButtonItem、UITabBarController、WKWebView、Stepper 等组件在 iOS 26/27 下的典型坑点、Bug、解决方案与适配经验。

  4. 两个 SwiftUI 动画 Bug 排查小记

    记录两个 SwiftUI 动画 Bug 的排查:iOS 27 下父视图意外重建中断显式动画,以及 List 中三元表达式引发的 Image 动画异常。含基于 Animatable 的隐式动画 completion 方案。

  5. 用自定义 Layout 化解 SwiftUI List 的行高与间距跳变

    深入剖析 SwiftUI List 行高与间距动画跳变的根本原因,并提供完整的原生解决方案。通过自定义 Layout 协议、状态机解耦与 CollapsibleSpacingVStack,在不依赖 UIKit 的前提下实现 List row 高度与 spacing 的平滑动画过渡。

  6. 2026 年,为什么我仍在思考 Core Data

    21 年了,Core Data 还没死——但它越来越不像今天 Swift 项目里的东西了。并发靠 perform 嵌套,模型声明满是样板代码,字符串谓词随时在等你写错。这篇文章不劝你离开,而是认真问一个问题:如果不走,我们还能做什么?

  7. isolated(any) 与 #isolation:让 Swift 闭包自动继承隔离域

    Swift 6.2 的 Default Actor Isolation 虽能减少心智负担,但在特定场景下,编译器仍无法自动推断闭包的运行隔离域,导致莫名报错。本文通过一个真实的测试代码排错案例,深入解析如何利用 @isolated(any) 与 #isolation 宏实现“函数隔离域继承”,让你彻 ...

202536 篇

  1. Icon Composer 见招拆招

    全面解析 Icon Composer 制作 Liquid Glass 风格图标的技巧与注意事项,解决 SVG 导出冗余代码、单色模式亮度过暗、图标层数超限和玻璃特效限制等问题,并指导将 .icon 文件正确导入 Xcode 以适配新系统。

  2. 在 SwiftUI 中,如何判断 Text 是否被截断?

    SwiftUI 中如何判断 Text 是否被截断?本文深入讲解如何利用 fixedSize 和 GeometryReader 获取完整文本所需尺寸,结合 PreferenceKey 和 ZStack 的 layoutPriority 实现智能布局选择,确保内容完整显示,解决复杂自适应布局问题。

  3. 我所希望的 Xcode

    尽管低代码趋势方兴未艾,专业开发者依然不可或缺。然而 Xcode 正面临来自工具与生态的双重挑战。探索作者对未来 Xcode 的六大核心期待,助力其重回开发者心中的首选地位。

  4. 远离 dismiss,拥抱状态驱动

    在 SwiftUI 中,过度依赖 dismiss 会带来性能和维护风险。推荐用 Binding、函数或自定义环境值来解耦关闭操作,实现更明确、可控的视图状态管理。这不仅提升了测试性和可维护性,也避免了 dismiss 带来的隐性副作用。

  5. 让 @State 实现懒加载

    @State 在 SwiftUI 中不支持懒加载,可能导致实例提前创建影响性能。本文介绍 @LazyState 方案,为 Observable 实例提供懒加载能力,优化 SwiftUI 视图的性能。

  6. 从 Host 到 Serverless: 博客架构升级实践

    本文记录了博客从传统的 Host + CDN 架构迁移到 Serverless 架构的过程,提升了性能、部署速度及 URL 重定向管理。通过升级到 Astro 5,博客构建时间显著缩短,性能得到优化。此外,结合 AI 工具和自有短域名服务的部署,让开发体验更为高效。

  7. 精确掌控 SwiftUI 滚动:自定义 Paging 实现

    SwiftUI scrollTargetBehavior 让滚动控制更精准,但默认 paging 在横屏模式下存在偏移问题。本文探讨其局限性,并通过自定义 ScrollTargetBehavior 实现完美的翻页逻辑,确保精准对齐。

202447 篇

  1. 如何在 SwiftUI 中平铺图片

    探索 SwiftUI 图片平铺的两种方法:`resizable` 和 `foregroundStyle`。深入了解 `ImagePaint` 及自定义 `Image` 的应用,解锁更多可能性。

  2. WWDC 2024 观后感

    WWDC 2024 亮点回顾:苹果展示 AI、Swift、SwiftData 及 SwiftUI 新特性,深入解析其对未来开发的深远影响。探讨技术创新及开发者机遇。

  3. 写在 WWDC 2024 之前:回顾 2019 至 2023 年间 SwiftUI 的关键升级及其影响

    当人们久别重逢时,常会对朋友的变化感到惊讶;而那些日复一日陪伴在我们身边的人,他们的变化往往容易被我们忽视。在这篇文章中,我将梳理从首个版本起那些给我留下深刻印象的 SwiftUI 关键更新及其影响。这不仅是对 SwiftUI 从诞生到逐渐成熟过程的回顾,也是一次对它所蕴含活力的新的认识。

  4. 用 Swift 开发嵌入式应用

    探索使用 Swift 进行嵌入式开发的潜力,本文分享了在 SwiftIO 开发板上的实践经验,并介绍了如何通过抽象化硬件实现跨平台调试。

202334 篇

  1. 与 AI 结对编程

    使用 AI 结对编程,我用 Typescript 和 Astro 重建博客。本文记录了与 AI 合作的学习经历,包括技术选型、环境搭建、代码学习及编程实践,探索 AI 在开发中的价值。

  2. 掌握 ViewThatFits

    深入剖析 SwiftUI 自适应布局容器 ViewThatFits,掌握其选择逻辑、理想尺寸概念及应用示例。含复刻版,助你全面理解。

  3. 掌握 TipKit:进阶

    深入 TipKit 框架,探索自定义提示视图、UIKit 集成及跨应用数据共享。揭秘 TipKit 的规则引擎本质,掌握 Tip 状态观察和复用技巧。

  4. 掌握 TipKit:基础

    探索苹果 TipKit 框架的基础用法,学习如何在 SwiftUI 应用中展示提示,包括内联和弹出窗口样式,以及如何定义规则、事件,控制 Tip 的显示时机和频率。

  5. SwiftData 中的并发编程

    SwiftData 如何解决 Core Data 并发编程的陷阱?本文深入探讨 SwiftData 的 Actor 机制,串行队列,以及如何通过 PersistentIdentifier 安全地操作数据,提升并发编程体验。

  6. 移植五周年

    肾移植五周年博文,记录发病、透析到移植康复的心路历程。分享身体指标变化,以及如何通过健康笔记 App 管理健康。

  7. 我在北京参加 SwiftUI 技术沙龙

    苹果在北京举办 SwiftUI 技术沙龙,我作为分享嘉宾参与北京站。学习新知,结交新友,探讨 SwiftUI 应用、多平台适配及 UIKit 互通。期待更多开发者线下交流活动!

  8. 打造可适配多平台的 SwiftUI 应用

    本文分享了使用 SwiftUI 打造多平台应用的关键要点,包括兼容性处理和数据源管理。通过实际案例,探讨如何利用 SwiftUI 特性适配 iOS, iPadOS 和 macOS 平台。

  9. 我目前正在使用的 AI 服务

    探索我正在使用的 AI 服务:Github Copilot、Notion AI、Warp AI、MidJourney 和 ChatGPT。了解它们如何提高我的工作效率,并对 AI 的未来保持谨慎。

  10. onAppear 的调用时机

    探索 SwiftUI onAppear 的调用时机:本文通过 SwiftUI 4 新 API,证明 onAppear 在布局后、渲染前执行。深入理解视图生命周期,解决常见问题。

  11. MacBook Pro 使用体验

    体验 MacBook Pro 14' 一周,分享换机过程及感受。从 iMac 转到 M2 芯片,聊选购、数据迁移、使用体验,噪音、性能、续航、刘海、外接显示器等。

  12. 用 SwiftUI 的方式进行布局

    本文详解 SwiftUI 布局,通过多种方案实现同一复杂 UI 需求,展示其强大灵活性。包含 Offset, AlignmentGuide, NameSpace 等多种方法,助你深入理解 SwiftUI 布局逻辑。

202241 篇

  1. 聊一聊可组装框架( TCA )

    探索 SwiftUI 应用开发利器 TCA (The Composable Architecture),深入了解其特性、优势、使用技巧及学习路径。掌握状态管理、组装、副作用和测试,构建更强大的应用。

  2. StateObject 与 ObservedObject

    深入解析 SwiftUI 中 StateObject 与 ObservedObject 的异同,揭秘其原理和适用场景。避免使用陷阱,优化数据管理,提升应用性能。

  3. iBug 16 有感

    SwiftUI 4 问题频发,bug 众多,不仅 SwiftUI,iOS、macOS 等都有体现。反思企业求快求变的浮躁,高速迭代下 bug 成常态。

  4. 掌握 SwiftUI 的 task 修饰器

    探索 SwiftUI 的 task 修饰器,掌握 async/await 异步任务处理。了解其用法、生命周期,以及如何移植到旧版本。深入理解 task 与 onAppear/onChange 的区别。

  5. 避免 SwiftUI 视图的重复计算

    深入解析 SwiftUI 视图重复计算原因及优化策略,包括 DynamicProperty、构造参数、事件源等,提升应用性能。避免卡顿,打造流畅 SwiftUI 体验!

  6. SwiftUI 布局 —— 对齐

    深入解析 SwiftUI 对齐原理,结合 Layout 协议,详解对齐指南、显式值及 first/lastTextBaseline,助你掌握 VStack/HStack/ZStack 布局精髓。解锁 SwiftUI 布局难题。

  7. SwiftUI 的动画机制

    SwiftUI 动画机制详解:时序曲线、状态关联与可动画部件,掌握 Transaction、转场及性能优化技巧,打造流畅交互体验。

  8. 我正在使用中的博客创作工具

    本文介绍博主两年博客创作中使用的工具,涵盖资料整理、文本编辑、截图录屏、格式转换、图片编辑及图床管理等方面,提升创作效率。

  9. 博客暂时停更通知

    我的博客【肘子的 Swift 记事本】已经上线 2 年了。撰写博客的初衷是想通过文字来记录自己的学习的过程、加深理解并将所得分享给其他的朋友。越是撰写新的内容,越能够发现自己的不足。作为一个编程爱好者,我深知自己的基础知识相当薄弱,又该进行系统性充电了。同去年上半年停更的原因一样,我打算用一段完整的时间 ...

  10. 在 SwiftUI 下定制手势

    探索 SwiftUI 手势定制,详解预置手势、GestureState 及组合手势,并展示轻扫、计时按压等自定义手势实现。iOS 18 引入 UIGestureRecognizerRepresentable,解决手势冲突。

202140 篇

  1. 玩转 Xcode Playground(下)

    深入解析 Xcode Playground,聚焦辅助代码、资源管理、SPM 集成及项目协同,掌握文档标注、代码隐藏等高级技巧,提升开发效率。

  2. 玩转 Xcode Playground(上)

    探索 Xcode Playground 高级技巧,包括创建、调试、多页管理及实时视图等,提升开发效率。掌握第三方库、异步处理、自定义 Quick Look 等实用技能。

  3. 聊聊 Combine 和 async/await 之间的合作

    探讨 Combine 与 async/await 的优势及协作方式。文章分析了它们在异步处理、错误处理和生命周期管理上的差异,并提供了三种结合使用方案,包括 flatMap、自定义 Subscriber 和 AsyncSequence。

  4. SwiftUI 视图的生命周期研究

    深入剖析 SwiftUI 视图生命周期,理解视图、类型树、视图值树及 onAppear 等关键概念。避免对视图行为的假设,优化 SwiftUI 性能。

  5. 掌握 SwiftUI 的 Safe Area

    探索 SwiftUI 安全区域:获取 SafeAreaInsets、忽略安全区、自定义安全区。掌握 ignoresSafeArea、safeAreaInset,解决键盘遮挡,轻松构建完美界面。

  6. 掌握 Core Data Stack

    本文深入解析 Core Data Stack 的组成、功能与配置,包括 NSManagedObjectModel、NSManagedObjectContext 等核心组件,并探讨 NSPersistentContainer 的应用及多种配置模式,助你构建更强大的数据层。

  7. 了解 SwiftUI 的 onChange

    SwiftUI 的 onChange 修饰器允许在视图中观察值的变化并触发操作。本文深入探讨了 onChange 的用法、特点、注意事项及替代方案,助你高效使用 SwiftUI。

  8. SwiftUI TextField 进阶 —— 事件、焦点、键盘

    2025 版 SwiftUI TextField 进阶教程。详解 onSubmit 事件、FocusState 焦点管理、键盘类型设置及 scrollDismissesKeyboard 自动收起键盘技巧。包含 Swift 6 适配指南与自定义键盘辅助视图 (InputAccessoryView) 的完 ...

  9. 博客更新记

    本次博客更新记录了使用 Swift 静态站点生成器 Publish 的过程,包括添加评论、调整版式、适配移动设备、增加 TOC,以及对 Web 技术和 VS Code 的新认识。

  10. @AppStorage 研究

    探索 SwiftUI 中优雅高效使用 @AppStorage 的技巧,解决数据类型少、声明繁琐等痛点。无需第三方库,轻松管理 UserDefaults,实现安全便捷的数据持久化。

  11. WWDC 2021 观后感

    WWDC 2021 亮点回顾:深入解析 iOS 15、Swift 5.5、SwiftUI 和 CoreData 的重大更新,详解 Xcode 新功能,并分享个人使用体验与感受。

202035 篇

  1. 在 SwiftUI 下对 iPad 进行适配

    SwiftUI 适配 iPad 实战经验分享,包含设备类型判断、屏幕方向控制、NavigationView 适配及常见问题处理。了解如何在 SwiftUI 中高效适配 iPad,提升用户体验。

  2. 健康笔记 2.0 开发随笔(五)

    一晃国庆中秋长假即将结束,距离上次的随笔也有了一段时间。在最近的日子里,我一方面继续着开发的进程,同时还要付出相当的精力同 iOS14 中的各种 Bug 和异常斗智斗勇。本篇随笔主要记录了这段时间碰到的一些问题,以及聊聊 iOS14、Xcode12 以及 SwiftUI2.0 的一些优缺点。想到哪、...

  3. 健康笔记 2.0 开发随笔(四)

    本周没有太多的精力和情绪用来写代码。这两天在原来统一 sheet 管理和实时 Form 的基础上,完成了可以控制取消手势的 Sheet。这个是 SwiftUI 中一直以来的一个重要的缺失功能。

  4. 健康笔记 2.0 开发随笔(二)

    本周的由于其他琐事的原因,每天能够用于开发的时间基本上只能保证 2-3 个小时,所以进展不大。不过好在我也没有明确的进度指标。

  5. 健康笔记 2.0 开发随笔(一)

    健康笔记从 2020 年 1 月上线以来,至今已经过了大半年的时间。在这段时间里,我对于 Swift、SwiftUI、CoreData 等都有了进一步的了解和认识。在开发 1.0 版本时所面对的问题和疑惑多数都得到了解决。

  6. HowTO —— SwiftUI2.0 原生的 Grid

    探索 SwiftUI 2.0 原生 Grid:LazyVGrid 和 LazyHGrid 用法详解,无需第三方库,轻松实现类似 UICollectionView 的网格布局。包含混合使用示例。

  7. HowTo —— Swift2.0 在视图中显示地图

    Swift 2.0 新增 Map,轻松在 SwiftUI 视图中添加地图元素。本文详解 Map 用法,包括设置区域、跟踪用户位置及添加标记点。了解如何在 iOS 应用中集成地图功能。

  8. @FocusedBinding 浅谈

    探索 SwiftUI 2.0 新特性 @FocusedBinding,实现视图间数据共享与绑定。无需 Single of truth,轻松解决数据传递难题。附代码示例和视频演示。

  9. SwiftUI 2.0 —— Commands(macOS 菜单)

    探索 SwiftUI 2.0 在 macOS 中添加菜单的技巧!了解 Commands 协议、CommandMenu、Button 和 MenuButton 的用法,以及如何自定义快捷键和系统菜单,实现多平台适配。

  10. SwiftUI 2.0 —— @StateObject 研究

    WWDC20 后,SwiftUI 2.0 引入 @StateObject。本文研究其与 @ObservedObject 的区别,通过代码详解生命周期管理。掌握 @StateObject,优化数据流,避免生命周期隐患。

  11. @State 研究

    深入解析 SwiftUI 中 @State 的实现原理及运行机制,并提供扩展 @State 功能的思路和示例。理解响应式编程,提升 SwiftUI 开发效率。

  12. Vapor4 的安装与配置

    本文详细介绍了在 macOS 和 Ubuntu 系统上安装 Vapor 4 命令行工具,创建 Vapor 项目,以及调试和部署到生产环境的全过程。