欢迎访问 weekly.fatbobman.com 订阅本周报的中英文电子邮件版本。你也可以直接访问我的博客 肘子的 Swift 记事本
肘子的话
Xcode 并不孤单
在 JetBrains 宣布停止更新 AppCode 后,不少开发者都担心从此 Xcode 缺少了竞争对手从而失去了成长的动力,并且也丧失了用来开发 Swift 项目的其他选择。然而,随着 Swift Server Work Group 为 VSCode 提供的 插件 功能不断完善,以及 Cursor 这样的 AI 编辑器的出现,Swift 开发工具的生态正在悄然发生变化。现在,在 VSCode 或 Cursor 上开发 Swift 项目不仅变得越来越容易,体验也越来越好。
在最近一周内,我尝试了一种新的工作模式:我在 Xcode、VSCode 和 Cursor 这三个编辑器中同时打开同一个项目,并频繁切换使用。这样做不仅让我能够充分利用每个编辑器的独特优势,还通过视觉上的变化(例如不同的布局和主题颜色)帮助提升我的工作心情,有效突破开发中的难点。
与 AppCode 不同,严格来说 VSCode(Cursor)和 Xcode 之间并非正面的竞争关系,一方面 VSCode 填补了在苹果生态外开发 Swift 代码的短板外,两者也为苹果生态的开发者带来了更多的便利。比如,在我的使用中,它们提供的 AI 预测、灵活且强大的插件生态、对项目中特殊文件的编辑(例如隐藏文件)、Git 管理等都是对 Xcode 短板的强力补充。
尽管如此,Xcode 在苹果开发生态中的地位仍然无可撼动。许多资源文件只能在 Xcode 中进行可视化编辑,而且只有 Xcode 能在编译时自动对其进行必要的转换和打包。另外,就个人而言,可能是由于长期使用的习惯,我发现 Xcode 在编辑代码时的 UI 呈现最能让我感到舒适和高效。
一个成熟的编程语言和开发生态系统需要能够为开发者提供多样化的选择。这不仅方便了开发者根据个人偏好和项目需求选择最适合的工具,也能促使这些工具之间形成良性竞争,互相促进。长远来看,这种多元化趋势将为 Swift 开发者带来更多可能性:我们可能会看到更多创新的开发工具出现,现有工具的功能会不断完善,Xcode 本身也会受到影响而加速发展。
原创
NSManagedObjectID 与 PersistentIdentifier:掌握 Core Data 与 SwiftData 中的数据标识符
Core Data 和 SwiftData 是苹果为开发者设计的强大数据管理框架,能够高效处理复杂的对象关系,因而也被称为对象图管理框架。在这两个框架中,NSManagedObjectID
和 PersistentIdentifier
功能相似,且都极为重要。本文将深入探讨它们的功能、使用方法及注意事项。
近期推荐
掌握 SwiftUI 的容器视图基础篇 (Mastering container views in SwiftUI. Basics)
长期以来,由于缺少某些高级特性,SwiftUI 开发者一直未能构建出能与官方容器视图相匹敌的自定义容器。在 WWDC24 上,苹果大幅增强了 Group
和 ForEach
的功能,同时引入了容器值传递的新特性。通过这些创新的 API,开发者现在可以构建具有官方同等功能的强大容器视图。在本文中,Majid Jabrayilov 为我们详细解析了这些新工具的使用和优势。这篇文章是关于自定义容器的系列文章的开篇,建议开发者继续关注后续内容,以充分利用这些强大的新功能。
如何减少 iOS 上的本地 AI 模型大小
随着越来越多的 iOS 应用集成 AI 功能来增强用户体验,模型的体积和初始化速度变得尤为关键。Daniel Jia 在本文中探讨了几种在 iOS 上减小本地 AI 模型大小的策略,以提升应用的性能和响应速度。这些策略包括模型压缩、利用系统缓存预热模型、以及远程下载和异步加载模型的方法。这些技术不仅有助于提高应用效率,还能优化用户的交互体验。
掌握 SwiftUI 中的混合模式 (Mastering blend modes in SwiftUI)
混合模式通过使用数学公式来混合多层像素的颜色,进而决定每个像素对最终图像的影响。在本文中,Giovanni Monaco 深入探讨了在 SwiftUI 中实现混合模式的技术,以及如何利用这些技术创造引人注目的视觉效果。文章涵盖了暗化、亮化、增加对比度和颜色混合等常见效果,并通过实用示例为开发者提供了详尽的操作指南。
在 Core Data 中聪明的使用 NSFetchedResultsController 以改善内存占用 (How to use NSFetchedResultsController memory wise in Core Data)
Core Data 提供了丰富的 API,使开发者能够在性能和内存使用之间达到精细的平衡。在这篇文章中,Khoa 探讨了使用 Core Data 的 NSFetchedResultsController
时,如何实施有效的内存管理策略以确保应用流畅运行。
文章中介绍的批次加载、通过关系实现懒加载、在私有上下文中操作,以及使用谓词限制获取数量等技巧,同样适用于 SwiftData。然而,由于缺少对应的 API 或当前的 Bug,其他策略尚无法在 SwiftData 中实施。
SwiftUI 中的通信模式简介 (Introduction to Communication Patterns in SwiftUI)
在这篇文章中,Mohammad Azam 探讨了 SwiftUI 中几种常用的通信模式,包括使用闭包、@Binding
以及 @Environment
对象。通过对比这些通信方式,Azam 强调了在不同开发场景中选择合适的通信策略的重要性。恰当的选择可以避免在 SwiftUI 中依赖手动刷新机制,从而充分利用其声明式设计,提高应用的性能和响应速度。
iOS 18 网格渐变入门 (Getting started with Mesh Gradients on iOS 18)
网格渐变是一种允许在一个网格中展示动态颜色范围的技术,能够创造出与传统线性或径向渐变截然不同的复杂而生动的视觉效果。在本文中,Donny Wals 详细介绍了这一在 WWDC24 上推出的 SwiftUI 新特性。作者指出,网格渐变可以得体地应用以增强 UI 效果,也可能因使用不当而产生负面影响。
Rudrank Riyam 基于此功能开发了 iOS 应用 Meshing,帮助用户将创意转化为美丽的图片,适用于壁纸、网页等多种场景。
往期内容
THANK YOU
如果你觉得这份周报或者我的文章对你有所帮助,欢迎 点赞 并将其 转发 给更多的朋友。
欢迎访问 weekly.fatbobman.com 订阅本周报的中英文电子邮件版本。
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=20765,转载请注明出处。
评论0