首页
学习
活动
专区
圈层
工具
发布

Arc、Dia、TCA 与 SwiftUI | 肘子的 Swift 周报 #086

只有看到更多苹果核心应用成功迁移到 SwiftUI,并展现出色的性能和用户体验,整个开发者社区才能更有信心地全面拥抱这一框架。...,导致部分依赖这些框架的开发者在迁移过程中遇到阻碍。...与 Swift Concurrency 的兼容性问题,同时提升代码结构与安全性,避免依赖 @preconcurrency和 nonisolated等临时方案。...Shaun[9]深入探讨了动态字体引发的典型问题(如内容无法滚动、水平空间不足等),并给出了 SwiftUI 下的实用解决方案,包括 ScrollViewIfNeeded、ViewThatFits与 dynamicTypeSize...,并希望用 Metal 写自定义着色器,可能会发现一个问题:Swift Package 并不能直接编译这些 Metal 文件,因为它不支持设置必要的编译参数。

34210

Airbnb 的三阶段 SwiftUI 迁移实践

简单地说,桥接是基于 UIHostingViewController(将 SwiftUI 层次结构嵌入到视图控制器)和 UIViewRepresentable(将 UIKit 视图集成到 SwiftUI...Airbnb 工程师做出的另一个决定是将 Epoxy 的单向数据流应用到 SwiftUI,将 ObservableOject 作为状态类的基础,在每次状态变化时触发 SwiftUI 重新渲染。...可测试性在 Airbnb 有比较高的优先级。他们的新 SwiftUI 实现需要能够很好地适应他们的快照测试方法。...Bodayle 解释说,与 UIKit 实现相比,现在的代码量大约减少到原来的六分之一,而且没有出现与 SwiftUI 响应性相关的性能损失,除了实例化 UIHostingController 时的一点开销...关于 Airbnb 采用 SwiftUI,这里无法全部概述,所以请不要错过原文的内容和一些有用的代码片段。

49010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    -- 肘子的 Swift 周报 #0110

    这不仅显著拓宽了可用依赖的范围,也降低了项目迁移与维护的复杂度。...作者并未直接给出“标准答案”,而是完整展示了从问题发现到方案演进的思考路径。...支持者认为,默认主线程隔离有效防止了“意外跑到后台线程”的常见问题,降低了初学者与 UI 密集型项目的上手难度,一些团队已经成功完成大型应用的迁移。...整体共识是:Swift 6 并发机制的收益高度依赖项目的并发复杂度——对单线程或 UI 驱动型应用帮助显著,但对于并发密集或系统耦合度高的项目,迁移仍充满挑战。...SwiftUI-DetectGestureUtil:为单个 SwiftUI 视图绑定多个自定义手势[27] 在 SwiftUI 中,让同一个视图同时识别多个手势一直是个棘手的问题。

    12410

    不止于 X:Swift 社区拥抱 Mastodon 和 Bluesky|肘子的 Swift 周报 #072

    在上周的博文[7]中,Matt Massicotte[8]针对苹果重新在 X 平台投放广告的决定做出了强烈回应:他决定暂停向苹果提供问题反馈和改进建议。...考虑到苹果在 Swift 社区中的特殊地位,社区此时选择扩展社交渠道是一个需要勇气的决定。作为一个成熟的开源社区,Swift 团队采取了务实的做法:既不激进地完全放弃现有平台,也不固守单一渠道。...在本文中,Vojtech Rylko[12]和Werner Jainek[13]分享了 Things Cloud 迁移到 Swift 的过程,为服务器端 Swift 开发提供了宝贵的实战经验。...(What to Test (and What Not to Test) in SwiftUI)[18] SwiftUI 的声明式特性鼓励开发者将主要逻辑和状态抽离到 ViewModel 进行测试,但这并不意味着视图行为本身不需要测试...对于希望在保证代码稳定性的前提下,升级到 Swift Concurrency 的开发者,这是一个值得借鉴的实践路径。

    35200

    Blender 正在开发 iPad 版本 | 肘子的 Swift 周报 #095

    加入 Discord[3]社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。...在这篇文章中,Pol Piella[15]分享了他处理三个真实线上问题的全过程,涵盖 SwiftUI 崩溃、性能回退,以及系统权限弹窗误触发的完整排查链路。...在这篇文章中,他总结了多个真实的崩溃案例,深入分析了 SwiftData 初始化失败的几种常见原因,并逐一提供了解决方案:包括模型版本不匹配、磁盘空间不足、多进程并发迁移等问题。...迁移至 Swift Actors[20] 自 Swift 5.5 引入以来,actor 已逐渐成为 Swift 并发模型的重要组成部分。但不少开发者仍对其用途和特性理解不深。...Swift 6.2 并发模型实战全指南 (Mastering Swift 6.2 Concurrency: A Complete Tutorial)[22] Swift 6.2 在并发模型上持续推进,新增多个有助于开发者迁移与调试的工具

    38310

    肘子的 Swift 周报 #038 | 更好还是更便宜?

    近日,苹果正式将 Apple Vision Pro (AVP) 推广到更多国家的市场。...考虑到 AVP 的独特性,尤其需要为戴眼镜用户提供定制的镜片,消费者能够亲身体验这款产品无疑会增进对其的了解,有望带动销量。...虽然在多数情况下,从旧系统迁移到新系统都相对顺利,但在处理需要动态显示和隐藏配置选项的父参数时,迁移过程面临一些挑战。在本文中,Quentin Zervaas 分享了他针对这一问题的解决方案。...的问题与使用 AppDelegate 适配器 )[16] Jesse Squires[17] 自 WWDC 2020 起,SwiftUI 引入了 ScenePhase API,用以表示应用的生命周期状态...with ScenePhase and using AppDelegate adaptors ( SwiftUI 应用生命周期管理:ScenePhase 的问题与使用 AppDelegate 适配器

    1.3K10

    去 Apple Store 修手机 | 肘子的 Swift 周报 #0107

    加入 Discord[3]社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。 去 Apple Store 修手机 父亲的 iPhone 16 突然无法充电。...[16]完成了三个应用的 Swift 6 并发迁移,他在本文中分享了那些文档里不会提及的“血泪教训”。...Alfonso Tarallo[18]在文中演示了从基础到编辑交互(选区、属性变换)的完整流程,并特别指出 transformAttributes(in:) 的设计巧妙:它以 inout 方式处理选区,...Matt Massicotte[20]提供了一份务实的迁移指南,其核心理念是——“向编译器如实表达并发事实”(expressing truth)。...工具 AsyncCombine[22] 虽然 Apple 明确将 Swift Concurrency 作为未来方向,但许多开发者在从 Combine 迁移后都感受到代码可读性的下降——原本简洁的响应式管道

    10810

    Swift 的多平台策略,需要我们大家一起来建设 | 肘子的 Swift 周报 #091

    然而,随着 Swift 并发模型的不断演进,传统基于字符串标识和 userInfo字典的通知方式暴露出了诸多问题。...它们充分利用 Swift 的类型系统和并发隔离特性,让消息的发布与订阅在编译期就能得到验证,从根本上杜绝了“线程冲突”和“数据类型错误”等常见问题。...Kodeco 教程:迁移到 Swift 6 (Migrating to Swift 6 Tutorial)[18] Swift 6 引入了更严格的并发规则与更加结构化的编程范式。...Audrey Tam[19]通过一个完整的 SwiftUI 示例项目(附项目源码),系统演示了从 Swift 5 迁移至 Swift 6.2 的全过程,涵盖 Xcode 设置、并发语义调整与数据隔离等核心环节...,是一篇很具实用价值的迁移教程。

    27200

    肘子的 Swift 周报 #034 | WWDC 2024,AI 并非全部

    对于尚未学习或使用 SwiftUI 的开发者来说,这意味着需要投入更多精力去掌握这些新工具。 鉴于今年的 WWDC 充满看点,建议大家调整好状态,全情投入到一周后的盛会中。...在本文的结尾,列举了 SwiftData 首个版本中缺失的一些关键功能、主要存在的问题,以及若干临时的解决方案。...Swift 并发迁移指南 ( The Swift Concurrency Migration Guide )[16] Swift 6 引入了更加严格的并发检查机制,以彻底消除数据竞争。...该指南内容全面,包括:详解 Swift 的数据竞争安全模型、指导如何在 Swift 5 项目中开启完整的并发检查、如何渐进式采用并发技术,以及介绍解决常见问题的有效策略。...并发迁移指南 ( The Swift Concurrency Migration Guide ): https://t.ly/vhupB [17] 线下派对:与 Apple 爱好者一起观看 WWDC24

    39810

    | 肘子的 Swift 周报 #075

    当意识到自身难以快速改善成本结构时,它选择了更为激进的竞争手段,即向美国政府寻求外部干预,以此减缓竞争对手发展的步伐。...WeZZard[10]在这篇文章中分享了一起use-after-free崩溃案例,该问题发生在-Osize优化级别下,根本原因是 Swift 编译器误删了关键代码,导致程序访问已释放的内存。...幸运的是,WeZZard 经过深入分析后,在 Swift 社区提交的Pull Request[11]已成功合并,修复了这个问题。...Keith Harrison[13]在本文中分享了一种高效的迁移策略,利用withCheckedContinuation简化 completion handler 代码的转换,让你在迁移过程中减少不必要的重复工作...SwiftUI:交互式图表 (SwiftUI: Interactive Charts)[14] 与许多常见的图表框架不同,Swift Charts 采用了声明式 API,这让某些开发者在实现交互时感到不太直观

    13400

    肘子的 Swift 周报 #050| 你的 App 被新系统打败了吗?

    事实上,每次系统大版本更新都会带来一些兼容性问题,这已经是常态。然而,随着系统功能和新框架的不断增加,兼容性和稳定性的问题也愈发频繁。...然而,这种约束也带来了无法直接传递 Binding 的问题。在本文中,Pol Piella Abadia 介绍了如何借助两种不同的实现方法将绑定值传递给 SwiftUI 视图。...迁移至 Swift 6 和 async/await 的策略 (A Strategy for Moving to Swift 6 and async/await)[12] Quentin Zervaas[...13] 在这篇文章中,Quentin Zervaas 分享了他在迁移至 Swift 6 过程中的策略和技巧,以帮助开发者将代码从使用完成处理器(completion handler)转换为 Swift...Quentin 强调在迁移初期保持两个版本的函数至关重要,以确保旧的调用逐步被替换为新的 async 版本,最终实现完全的异步转换。

    1.2K10

    Swift 周报 第十期

    利用简洁且强大的 Swift 和 SwiftUI 以及全新的跨平台 App 体验,使用编辑器的增强功能更快捷地编写代码,并着手开始进行从 Xcode Cloud 到 TestFlight 以及 App...第二次审查的重点是关注向前兼容性,当一个调用唤起一个隐式开放的存在类型,必须被抹除类型以防止存在的动态类型内存泄漏到返回值中。...对于某些模块,所有在 Swift 6 中改动的总数或许会造成迁移繁重,并且在 Swift 4.x/5.x 中逐一采纳这些语言改动,可以使过渡期路径变得丝滑。...它为逐步采用 Swift 6 特性建立了一条直接路径,以在 Swift 4.x/5.x 代码库中获得它们的优势,并顺利迁移到 Swift 6 语言模式。...中的 SwiftNIO 文档时,遇到一个问题。

    2.7K00

    将 AI 整合至日常工具链 | 肘子的 Swift 周报 #066

    虽然具备一定的编程经验,了解如何将复杂任务分解为简单模块(例如函数),但将这种分解思维迁移到 AI 任务中时,我仍面临诸多挑战。...全面升级 Swift 6:应用代码库的迁移指南 (Adopting Swift 6 Across the App Codebase)[5] Swift 6 模式带来了强大的数据竞争检查能力,但对开发者也提出了更高的代码质量要求...此外,作者特别警示了 PersistentIdentifier 的临时状态问题,提醒开发者不要对临时 ID 进行跨上下文传递。...Jacob Bartlett[19]从一段简单的 Swift 代码出发,追踪其从编译到执行的全过程,包括 Swift 中间语言(SIL)、LLVM 中间表示(IR),以及运行时 ABI 函数调用,深入解析...6:应用代码库的迁移指南 (Adopting Swift 6 Across the App Codebase):https://t.ly/oJ5cX [6] Majid Jabrayilov:https

    40310

    Swift 周报 第四十一期

    从帮助同伴找到合适的心理健康资源,到发现在校园内支持可持续发展工作的方式,Swift Student Challenge 参赛者将发挥他们的创造力,通过开发 App 来解决他们关注的问题。...然而,先前提出的一些目标包括尚处于开放式研究阶段的问题。在 Swift 6 的工作进展的同时,语言指导组正在将 Swift 6 剩余变更的重点缩小到默认情况下的数据竞争安全。...Swift 6 迁移 即将推出的功能 16 对于迁移到 Swift 6 语言模式至关重要:可以逐个启用单个即将推出的功能,以逐步将代码库移向 Swift 6,然后再采用完整的语言模式。...社区对这些指南的反馈对于评估 Swift 6 迁移是至关重要的。...语言指导组在考虑到 Swift 6 语言模式的计划时讨论了 SE-0192 的当前状态,并且我们宣布我们将修改该提案以: 将 Swift 6 中的警告升级为错误 为 Swift 5.x 添加一个即将推出的功能标志

    77940

    肘子的 Swift 周报 #031 |苹果用 M4 来展现拥抱 AI 的决心

    Migrating from CocoaPods to Tuist at Playtomic( 从 CocoaPods 到 Tuist 的迁移:Playtomic 的案例研究 )[15] Mohammadreza...团队面临的主要问题包括:与 SwiftUI 和现代 Swift 包的兼容性问题、Xcode SwiftUI 预览功能中断、storyboards 加载缓慢、以及 Podfile 复杂性增加和依赖维护困难等...为解决这些问题,Playtomic 决定迁移到 Tuist,这是一款能够优化项目结构和提升构建效率的工具。...迁移结果表明,Tuist 不仅解决了与 CocoaPods 相关的问题,还显著改善了 app 的启动时间和减小了二进制文件的大小。此外,与 CocoaPods 相比,Tuist 的编译时间更短。...,越来越多的开发者希望在各种应用中实现基于本地设备的 AI 服务,并进一步将这些服务扩展到移动设备上。

    43810

    注册 WWDC 2025 的 Group Labs 了没? | 肘子的 Swift 周报 #085

    加入 Discord[3]社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。 注册 WWDC 2025 的 Group Labs 了没?...彼时,开发者们对新 API 已有了一定的实践经验,提出的问题会更有针对性,也更容易理解苹果工程师的解答,从而促成更加深入的技术探讨。 无论如何,能够延续这样的群体问答传统就值得肯定。...她建议在日常调试中优先使用 p或 po,因为它们支持计算属性和方法调用,灵活性更高;而在处理并发或竞态等时序敏感问题时,使用不会执行代码的 v命令则更加稳妥,能有效避免运行时副作用。...如果你想了解如何将这个框架逐步引入现有项目,可以参考官方的迁移教程项目:ImmutableData-FoodTruck[20] ObservableDefaults - 让持久化数据优雅地融入 SwiftUI...)无缝集成到 SwiftUI 的 Observation 系统中。

    25900

    全新Swift从入门到进阶实战探探iOS APP

    这使得Swift对于初学者来说更加友好,尽管仍有一些关于基本元素的问题,以及关于工具集(编译器、Xcode、库)问题的讨论11。...游戏开发:虽然证据中没有直接提到游戏开发,但考虑到SwiftUI的性能优势和对动态界面的支持,它可以被用于开发各种类型的游戏,从简单的休闲游戏到复杂的策略游戏。...虽然本问题询问的是如何使用Swift和UIKit,但SwiftUI作为Swift的扩展,提供了更现代、更简洁的方式来构建用户界面。...开发者可以考虑将SwiftUI与Swift结合使用,以利用其声明式编程的优势,同时保持对UIKit的熟悉度。考虑到Swift和UIKit的广泛使用,开发者应该深入理解这两个框架的工作原理和最佳实践。...通过深度挖掘API文档,开发者可以获得更准确、更全面的API映射结果,从而提高代码迁移的成功率和效率26。

    1.2K10
    领券