#255
版本发布时间: 2023-08-07 23:37:13
SwiftOldDriver/iOS-Weekly最新发布版本:#305(2024-09-09 10:35:38)
老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
文章
🐕 Bad practice: capturing a method reference
@AidenRao:这篇文章讨论了在 Swift 中捕获方法引用的不良实践。文章指出,尽管在将方法引用作为参数传递给函数时不需要显式地使用 self 关键字,但实际上编译器会自动捕获对 self 的强引用,从而可能导致循环引用的问题,且编译器不会对此发出警告。
🐕 Objective-C Internals
@Smallfly:虽然 Swift 已经成为官方默认的编程语言,但在国内大部分大型应用依然由 Objective-C 主导,并且熟练掌握 Objective-C 对理解底层系统实现有较大的帮助。该博客分享了一系列剖析 Objective-C 内部实现的文章,涉及到类的实现、isa 指针、实例变量、以及内存管理等等。每一篇文章简短又不失深度,有需要的同学可以查漏补缺。
🐕 How to Create Callback-like Behavior Using AsyncStream in Swift
@Barney:文章详细探讨了如何在 Swift 中使用 AsyncStream 实现类似回调的行为,尤其聚焦于跟踪下载操作。
- Swift Concurrency Revolution:概述了 AsyncStream 是如何革新异步代码处理的。
- Replacing Old Methods & Creating Example:通过模拟下载操作示例,演示了 AsyncStream 如何替换基于闭包的传统方法。
- AsyncStream Implementation & Considerations:深入解释了 AsyncStream 的实现细节,并强调了调用 finish() 方法的重要性。
- User Interface Integration:描述了如何将下载进度与用户界面集成,并分享了完整代码的链接。
🐎 Xcode 14 如何调试 iOS 17
@EyreFree:这篇文章记录了作者尝试使用 Xcode 14 调试 iOS 17 的过程,并最终给出了解决方案,作者亲测 Xcode 14.3 有效,有需要适配最新操作系统的同学可以看看。
🐎 Smart Open Xcode
@含笑饮砒霜:本文分享了如何在 macOS 上智能打开多个版本的 Xcode。作者习惯将 Caps Lock 键映射为超级键,用于快速切换到 Xcode。然而,由于不同版本的 Xcode 可能会导致硬编码的热键打开错误的应用程序,作者介绍了一个名为 Hammerspoon 的小型 Lua 脚本实用程序,以解决这个问题。另外,作者还分享了一个附加内容,允许将脚本扩展到模拟器。这样可以在需要时快速切换到模拟器,并在模拟器和 Xcode 之间进行便捷切换。
🐎 系统自带日志框架 os.Logger
@Cooper Chen:OSLog 是 Apple 在 WWDC2016 推出的一套日志系统,而在今年的 WWDC23 上 Apple 将其进行更新,本文介绍了统一日志框架的基本情况,以及在使用、隐私和日志导的具体使用场景,重点也提到了今年对 OSLog 的更新,为开发者在调试阶段提供了更多的便利。
🐕 百度 APP iOS 端包体积 50M 优化实践(五) HEIC 图片和无用类优化实践
@xuyafei86:在之前的百度 APP 的包大小优化系列文章中,介绍了图片优化和代码优化的几种方式,本篇文章重点介绍 HEIC 图片和无用类检测的优化实践。
HEIC 是 High Efficiency Image Format(高效图像格式)的缩写,是一种新的图像文件格式,它是 2017 年苹果公司在 iOS 11 中引入,用于代替 JPEG 图像格式,以更高效地压缩图像并减少存储空间占用。HEIC 支持多帧图像、透明度和 16 位深度色彩,使得它成为高质量图像和动画的理想选择。
本文重点探究 HEIC 图片在百度 APP 中使用的可行性和包体积收益,验证 HEIC 图片在 Bundle 和 Asset Catalog 的兼容性,重点研究了 Asset Catalog 管理图片的机制,记录了验证过程中发现的特殊问题和解决思路。无用类则是详细介绍了如何用静态分析和动态分析相结合的方式,精简代码体积。感兴趣的同学可以阅读原文了解。
代码
TipKit-Examples
@zoeGuo:TipKit 是 WWDC23 上发布的新的 UI 组件库:Make features discoverable with TipKit,TipKit-Examples 是一个不错的使用 TipKit 的示例代码,感兴趣的读者可以自行阅读源码。
设计
🐎 A WWDC Design Lab Made My App So Much Better
@水水:WWDC Design Lab 可以与苹果工程师、设计师和专家进行交流,本文作者介绍了他在 WWDC Design Lab 中和苹果设计师一起就他的天气应用 App 进行了非常友好的交流,苹果设计师提供了一些非常好的建议和反馈,作者也非常用心的进行了改进,可以看出最后的改进结果很令人满意。
内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
[北京 / 杭州] - 抖音投屏 - Android/iOS
[北京] - 百度网盘 iOS/Android/FE/Server 研发工程师
[广州] 微信支付 - 客户端开发 - iOS/Android
[上海] B 站 - iOS 开发
[上海] 百度输入法 - 客户端开发 - iOS
[深圳 / 广州 / 北京 / 三亚] 字节跳动 - 剪映 - 招聘客户端开发
具体信息请移步: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)