老司机 iOS 周报 #316 | 2024-12-16
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
新闻
🐢 Flutter 3.27 发布
@CrazyCoderShi: Flutter 3.27 悄悄的就来了,该版本包含了大量更新,包括:
- Cupertino 相关组件的大量优化
- Material 下的一些主题和控件调整,包括之前我们聊过的 Row and Column spacing
- Android Impeller 默认开启和 iOS 性能优化
- P3 色域的 UI 支持
- Web 下的大量改进
- Swift Package Manager 的支持
- 之前聊过的 Edge to Edge 和 Android Freeform 支持
- pub 下载数
- DevTool 工具大改进和优化,包括设备断线数据保持
- 对老 Dart SDK 插件不再维护适配,弃用 OC
文章
🐕 Prevent screenshot capture of sensitive SwiftUI views
@BluesJiang:这篇文章使用了一个比较巧妙的方法来实现截屏隐藏隐私信息。核心是使用 UITextField
的 isSecureTextEntry
属性,然后将被包装的 View 作为其子 View 即可。然后使用了 preference 来实现父容器大小与子容器大小匹配。可以通过这个文章整体了解 SwiftUI 的 View 的包装和 Modifier 的写法,是一个很好的参考。
🐕 Why Can't You Loop Over Ranges of Characters in Swift
@bq:当你对 "a"..."z"
执行 for 循环遍历时,你会惊讶地发现 Swift 并不支持的,虽然这有点违反常理。这篇文章你将了解到 Swift 字符并不是简单的 ASCII 字符,而是可变长的 Unicode 字符,其在不同的语言环境有不同的排序,不断迭代的 Unicode 也在不断地扩充字符范围,甚至有些字符是集群的时候,遍历、计数将变得不太可能。文章也介绍了 Unicode 这么设计背后的意图,以及当你硬要遍历一个字符范围时候,作者也给出了一个比较安全的解决方案。
🐕 WebKit GPU Profiling
@莲叔:WebGL 的 debug 一直以来都是一个令人头痛的问题,通过浏览器内置的调试能力能够满足一部分需求,但如果需要更进一步的分析往往都缺乏足够好用的工具。这篇文章针对 WebGL 和 WebGPU 两种应用在不同平台的调试技巧做了汇总,包括 Mac、Window 和 Quest。其中对于在 Mac 上通过 Xcode 来做分析给出了 step by step 的步骤,非常友好。
🐕 Concurrency Step-by-Step: Reading from Storage
@Barney:本文提供了关于如何在 Swift 应用中逐步从本地存储读取数据的详细指南。文章重点介绍了如何使用 Codable
协议来序列化和反序列化对象,并通过 FileManager
管理文件的读取和写入。作者逐步解析了实现这个过程的关键步骤,包括如何设置数据模型、保存数据以及从文件中加载数据的示例代码。此外,文章还提供了常见问题的解决方案,以帮助开发者更有效地处理数据存储。适合想要深入理解 iOS 数据存储机制的开发者阅读。
代码
rmtrash
@Kyle-Ye: Swift 实现的 macOS 命令行工具 rm 的替代方案,用于将文件移动到废纸篓。此外 rmtrash 提供了与 Linux 和 macOS 版本 rm 命令完全兼容的标志位支持方案。
ml-cross-entropy
@Leo:由 Apple 开源的 CCE(Cut Cross-Entrop) 是一种优化小模型(SLM)训练过程中内存消耗的代码库,以 Gemma 2 (2B) 为例,能够将内存从 24GB 优化到 1MB,显著提高小模型的训练速度。
内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
[北京] 支付宝-终端业务研发专家(支付碰一下) - iOS/Android - P7
具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)
关注我们
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
关注有礼,关注【老司机技术周报】,回复「2024」,领取 2024 及往年内参
同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。
说明
🚧 表示需某工具,🌟 表示编辑推荐
预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)