Skip to content

老司机 iOS 周报 #282 | 2024-03-25

Compare
Choose a tag to compare
@ChengzhiHuang ChengzhiHuang released this 25 Mar 02:01
· 74 commits to master since this release

ios-weekly
老司机 iOS 周报,只为你呈现有价值的信息。

你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

新手推荐

Cocoapods 之版本号问题

@zoeGuo:文章是一篇关于 Cocoapods 版本号使用的一个建议:要注意使用标准化的版本号,不要在主干分支使用 prerelease 版本号。原因是 Podfile 中强指定一个库的版本号,如果是一个 prerelease 版本号,最终依赖的不一定是这个版本,这其中的不确定性便来于 Cocoapods 底层对 prerelease 版本的处理策略。文中解释了 Cocoapods 如何判断 Source 里面的版本是否满足依赖要求的,可以配合语义化版本号规范一起阅读。

文章

🌟🐕 Apple 也在用的 Benchmark 框架

@kemchenj:这篇文章介绍了一个专为 Swift 编写的 Benchmark 包,除了支持追踪常用的 CPU 时间和内存占用情况,还支持了 ARC 相关的数据,swift-foundation 之类的 Apple 官方开源项目也都在使用。

另外 Benchmark 的文档也写得非常好,手把手教你生成 baseline,生成可视化图表,甚至连 GitHub CI 的 workflow 都教你怎么写,直接评论到 PR 上看对比结果。

🐢 A Gentle Introduction to LLVM IR

@Kyle-Ye: 本文由浅入深地介绍了 LLVM IR 的一些基本常识和概念,并给出了相关例子。

  • % 和 @ 的在 LLVM IR 中的含义
  • LLVM IR 的类型表示
  • CFG 和不可达优化等

了解 LLVM IR 的主要用途是,在进行性能优化时,介于源代码和汇编代码之间的 LLVM IR 可能会是更方便的选择。

🐎 Swift Tooling: Windows Edition

@Kyle-Ye: 本文介绍了 Arc 公司所推动 Swift on Windows 的最新进展和一些他们的开发体验分享

  • 🔨 开发环境 : VSCode 是 Swift on Windows 上的首选开发环境。
  • ✍️ 代码编辑 : VSCode IDE 目前已提供了代码补全、导航和错误显示功能等功能。
  • 🧪 构建和测试 : 支持通过 Swift Package Manager 和 CMake 进行构建和测试。
  • 🐛 调试能力 : LLDB 调试和命令行调试目前都已支持。

🐢 Nerdy internals of an Apple text editor & 9 years of Apple text editor solo dev

@含笑饮砒霜:作者作为一位全栈 Web 开发者,出于对 Mac 上独特应用程序生态系统的热爱,踏上了制作 Mac 原生文本编辑器的旅程。经过两年的努力,成功推出了名为 Paper 的 Mac 应用程序,随后又将其扩展到了 iOS 平台。作者尤其注重用户体验和应用程序的稳定性,因此选择了开发本土应用,充分利用了 Xcode、AppKit 和 Objective-C 等技术的优势。

正是作者的坚持和追求,使得 Paper 文本编辑器得以诞生并逐渐完善。而当我们深入了解 Paper 背后的工程细节时,不禁为作者的专业素养和技术实力所折服。Paper 的核心组件 TextView,通过 NSTextStorage、NSTextContainer 和 NSLayoutManager 等旗舰类的协同工作,实现了流畅而高效的文本编辑体验。这些技术细节不仅展示了作者的精湛技艺,更是他对用户体验极致追求的体现。

🐕 lsregister: How Files Are Handled in Mac OS X

@Barney:这篇文章主要讲述了如何使用 lsregister 命令管理 Mac OS X 中的 Launch Services 数据库,这个数据库决定了文件的默认打开方式。文章详细介绍了如何查询、导出、强制重新注册文件类型、取消应用程序的注册等操作,以及如何关闭文件类型默认被隔离的功能。同时,文章也指出了清理和重建大规模数据库的方法,以及如何指定某应用打开特定文件类型或网络协议。

🐕 Sending trial notifications with provisional authorization on iOSX

@享耳先森:Push 是很好的吸引用户注意的方式,但难点是如何获取用户的授权,本文介绍了 provisional notifications 这一通知机制。

内推

重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考

[杭州] 淘宝 - Meta 技术团队 - iOS 工程师 / Vision Pro 工程师 (校招)

具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)

关注我们

我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。

关注有礼,关注【老司机技术周报】,回复「2023」,领取 2023 及往年内参

同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom

说明

🚧 表示需某工具,🌟 表示编辑推荐

预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)