首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Airbnb 三阶段 SwiftUI 迁移实践

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

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

肘子 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

4310

Swift 周报 第十期

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

2.1K00

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 添加一个即将推出功能标志

20540

肘子 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 服务,并进一步将这些服务扩展移动设备上。

13510

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

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

22710

肘子 Swift 周报 #001

在 Fatbobman's Swift Weekly 中,除了为订阅者提供我个人博客最新消息外,还会分享其他优秀作者关于 SwiftSwiftUI、Core Data、SwiftData 等方面的内容...如果你打算逐步从 Core Data 迁移Swift Data,或者想在你应用程序中为特定用例(如小组件)使用Swift Data,本文将对你有所帮助。...得益于字节跳动和作者对 SwiftUI 底层研究,我们有机会窥探 AttributeGraph: cycle detected through attribute 问题出现原因。...[18] Onee[19] at XReality.Zone[20] 对于大部分消费者来说,Apple 秋季新品发布会中提及“空间视频”,可能只是众多特性中不太起眼一个。...在本文中,Bruno Rocha 将深入研究 Swift 编译器,回答上述问题。 作者免责声明:我从未在苹果公司工作,与 async/await 开发无关。

24040

苹果推出 SwiftData,可替代 SwiftUI Core Data

作者 | Sergio De Simone 译者 | 马可薇 策划 | Tina 苹果于 WWDC 2023 上推出新框架 SwiftData,提供声明性、以 Swift 为先 API,...SwiftData 可轻松将一个 Swift 类转换为一个持久化模型,非常适合同 SwiftUI 一并使用。...var ingredients: [Ingredient] } 仔细看能发现 SwiftData 是如何依赖 Swift 5.9 中新引入宏功能。...SwiftData 中还提供对谓词(Predicate)定义支持,可用于过滤数据。编译时对谓词进行检查,并对类型不匹配问题报编译错误。...为让开发者能更为轻松地迁移至 SwiftData,该框架支持在现有 Core Data 应用中逐步采用,在苹果提供演示项目中展示了如何在一个 Core Data 应用中仅部分使用 SwiftData

85930

WWDC 23 ,SwiftUI 5 和 SwiftData 初印象

SwiftUI 如果说从 SwiftUI 1.0 4.0 每年升级是一种小修小补行为,那么今年苹果在 SwiftUI 5.0 上做出努力至少算得上是中期改款了。...这从根本上解决了当前影响 SwiftUI 应用( 过渡计算 )效率问题。让开发者可以更加自由来设计数据结构以及随心所欲注入数据源。 不过很遗憾,这项新特性只能在 SwiftUI 5 上实现。...不过极为遗憾是,苹果并没有充分利用 Swift @_backDeploy 功能,在 SwiftUI 5.0 中,仅有极少切不太重要功能或类型实现了低版本适配:topBarLeading: SwiftUI.ToolbarItemPlacement...在不考虑兼容旧版本情况下,我认为 SwiftUI 5.0 升级可以打 95 分(满分 100 分),不过考虑很多开发者在相当一段时间内还无法使用这些新功能,心情就会异常低落。...自定义迁移 plan 在第一版中有问题 可以与 Core Data 代码混用,需通过 entityVersionHashesByName 来判断 SwiftData 与 Core Data 两者模型是否完全一致

1.1K20

WWDC 23 ,SwiftUI 5 和 SwiftData 初印象

欢迎大家在 Discord 频道[2] 中进行更多地交流 SwiftUI 如果说从 SwiftUI 1.0 4.0 每年升级是一种小修小补行为,那么今年苹果在 SwiftUI 5.0 上做出努力至少算得上是中期改款了...这从根本上解决了当前影响 SwiftUI 应用( 过渡计算 )效率问题。让开发者可以更加自由来设计数据结构以及随心所欲注入数据源。 不过很遗憾,这项新特性只能在 SwiftUI 5 上实现。...不过极为遗憾是,苹果并没有充分利用 Swift @_backDeploy 功能,在 SwiftUI 5.0 中,仅有极少切不太重要功能或类型实现了低版本适配:topBarLeading: SwiftUI.ToolbarItemPlacement...在不考虑兼容旧版本情况下,我认为 SwiftUI 5.0 升级可以打 95 分(满分 100 分),不过考虑很多开发者在相当一段时间内还无法使用这些新功能,心情就会异常低落。...自定义迁移 plan 在第一版中有问题 可以与 Core Data 代码混用,需通过 entityVersionHashesByName 来判断 SwiftData 与 Core Data 两者模型是否完全一致

34610

肘子 Swift 周报 #025 | Lets VisionOS, Lets rock and roll!

在收到警告和错误中,有一部分是与 SwiftUI 视图有关,其中很多都是由于开发者没有正确理解和使用 @MainActor 造成。...本文将聊聊 @MainActor 含义,以及在 SwiftUI 视图中应用 @MainActor 技巧和注意事项。...Adwaita for Swift[10] 使开发者能够以一种类似于 SwiftUI 方式,为 GNOME 环境构建用户界面。...作者还热情地邀请读者参与 Adwaita for Swift 项目的各个方面,包括开发应用、提交问题、撰写文档以及加入讨论,共同推动项目前进。...对于正处于初期阶段项目,采用 Environment 或单例可能是一种灵活暂时方案,随着项目的发展,再逐步迁移到更加结构化 DI 方案。

10010

肘子 Swift 周报 | Swift,超越苹果生态!

随着 Arc[4] 浏览器 Windows 版本在今年发布,预计将有更多 Windows 用户和开发者通过这款主要基于 Swift 开发大型桌面应用接触并了解 Swift,这无疑将会对 Swift...自 SwiftUI 问世以来,社区中不断有开发者尝试将其移植其他平台,尽管声明式 UI 部分实现相对顺利,但响应式处理一直是难题。...我在过去两年中还了解两款尚未公开 SwiftUI 复刻框架,其中一款同样面向全平台。 Swift 也未忘记在嵌入式领域探索。...Adaptive Text Color in SwiftUI based on Background[16] Pedro Rojas[17] 在开发过程中,开发者时常遭遇这样一个问题:相同颜色文字在不同背景色上可能难以辨认...通过对 NSTableView 和 NSTableCellView 精心定制,他不仅显著优化了滚动体验,还解决了上下文菜单相关问题

11210

Swift 周报 第十四期

周报精选 新闻和社区:iPhone灵动岛无法适配大部分应用 提案:Swift 5.8 实现提案 Swift 论坛:conformance 关键字 推荐博文:SwiftUI 新功能 Layout 协议...苹果确认 iOS16 存漏洞影响新机激活 据 MacRumors 看到一份备忘录,苹果称,“iOS 16 有一个已知问题,可能会影响使用开放 Wi-Fi 网络设备激活”。...为了解决这个问题,苹果表示,用户应该在初始化 iOS 时,在提示连接到 Wi-Fi 网络时选择“用 iTunes 连接到 Mac 或 PC”,然后返回到之前屏幕,使用 Wi-Fi 再次尝试,直到激活成功...SE-0369[3] 同步 CustomDebugString 协议 AnyKeyPath 此提案主要目的是将 CustomDebugStringConvertible 协议添加到 AnyKeyPath...SwiftUI 之 HStack 和 VStack 切换 摘要: 本文介绍了当涉及水平和垂直变体时( HStack 和 VStack ),我们需要如何在这两者之间动态切换。

3.3K10

苹果全新UI框架来了!可视化编程,自动化减少20%代码量

SwiftUI是一个非常方便快速构建UI框架,与最新Xcode设计工具无缝协作,可为所有苹果设备构建UI。开发者通过SwiftUI,利用Swift语法就能够完成代码和设计同步。...SwiftUI解决了哪些问题? 虽然Storyboards和XIB很有用,但并不是所有人都喜欢。...而SwiftUI通过4种方式,解决了上述问题: 用一个新声明式UI结构,定义了布局外观和工作方式 更新UI预览会自动生成新Swift代码,反之,更改Swift代码也会更新UI预览 Swift任何绑定例如有效...人人都能编程 SwiftUI继承了Swift理念:每个人都可以编程。现在,一个全新用户界面系统诞生,有助于避免新开发人员遇到大量问题。...使用SwiftUI之前要注意事情 首先,SwiftUI目前只支持10.15 beta以及更新macOS系统,当然10.15 beta已经是目前最新了。 其次一些可能出现问题也是需要注意

5.3K20

肘子 Swift 周报 #019 | 超越代码,拥抱思维转变

我注意,许多开发者在从 Core Data 转换到 SwiftData 过程中,往往只花费了几天甚至更短时间。...这种做法容易导致一个问题:仅仅将 SwiftData 当作 Swift 语言化 Core Data,并简单地将 Core Data 代码转化为 SwiftData 代码。...这些属性包装器涵盖了不同框架声明周期整合、辅助聚焦、焦点值观察管理等功能。 Swift 语言属性包装器与 SwiftUI 诞生于同一年。...在这个系列[4]四篇文章中,我们详细梳理了截至 iOS 17 时期 SwiftUI 所提供全部属性包装器,旨在帮助开发者更加高效和便捷地使用 SwiftUI。...需要注意是,网站上展示 SwiftUI 布局效果是基于 Web 技术实现,因此其行为可能与 SwiftUI 实际表现存在细微差别。

8310
领券