Skip to content

Releases: SwiftOldDriver/iOS-Weekly

老司机 iOS 周报 #306 | 2024-09-23

24 Sep 02:33
cf7f23f
Compare
Choose a tag to compare

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

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

文章

🐢 Xcode Folders & Groups

@CrazyCoderShi: Xcode 15 到 Xcode 16 有不少变化,本文就 Folders & Groups 相关变化做了一些比较,比如 : 添加文件,创建 Group 等;最终作者也给出了一些总结性的建议,如果有不习惯新组织形式的小伙伴依然可以保持 15 时候的形式.

🐢 COW2LLVM: The isKnownUniquelyReferenced Deep-Dive

@Cooper Chen:Swift 编译器中的 copy-on-write(CoW)优化了 Swift 结构体,结合了值语义和引用语义。它将数据存储在堆内存中,允许通过轻量级指针高效复制,同时确保在数据更改时触发值语义。这种技术被 Swift 的标准类型(如 Array 和 String)所采用。这篇文章深入探讨了 Swift 编译器中的 CoW 优化,文章将带领读者探索 Swift 编译器的源代码,揭示 CoW 的工作原理,旨在让读者对这一复杂的机制有更深入的理解。

🐕 SwiftUI's Observable macro is not a drop-in replacement for ObservableObject

@Barney:文章指出 SwiftUI 的 @Observable 宏并非 ObservableObject 的完美替代。主要区别在于初始化行为: @StateObject 仅初始化一次,而 @State 每次视图重建时都会重新初始化。这可能导致意外行为,建议将全局状态放在 App 结构中以避免问题。

🐢 我是怎么做个人知识管理(PKM)的

@含笑饮砒霜:这篇文章概述了作者个人知识管理(PKM)的历程与心得,从早期使用备忘录、Evernote 等工具,到探索 Bear、Notion、Obsidian 等结构化笔记应用,作者经历了从信息囤积到注重信息消化的转变,最终采用卢曼卡片盒笔记法,通过闪念笔记、文献笔记、永久笔记等形式,建立笔记间的关联,形成知识网络。同时,结合 P.A.R.A 框架优化管理流程,并引入费曼学习法、CODE 方法论等工具促进知识内化。作者强调工具与方法的选择应基于个人需求,且写作是知识管理的重要产出形式。整篇文章为读者提供了关于如何高效管理和利用信息的实用指南。

工具

swift-export

@Smallfly:swift-export 是一款命令行工具,用于在 macOS 上更容易地签名和公证可执行包。这可以帮助开发者简化在 macOS 上分发应用程序时的安全和合规性流程。具体来说,它包括以下功能:

  • 签名:为应用程序添加数字签名,这是 macOS 应用程序分发的一个要求,以确保应用程序的来源和完整性。
  • 公证:将应用程序提交给 Apple 进行公证,这是 macOS Catalina 及更高版本中的一项新要求,用于确保应用程序在启动时不会损害用户的安全。

这个工具对于需要频繁构建和分发 macOS 应用程序的开发者来说非常有用。

代码

HandVector 2.0 版本更新

@BluesJiang:这个之前推荐过的开源库又迎来的大的更新,新增了 HandleShape 的 API,给不同手的不同形态给出了具象化的分类,可以更语义化的了解目前手势的情况,如手掌弯曲了多少、手指捏合了多少、手指弯曲了多少等。有利于开发快速调整以寻找合适的手势匹配参数,而不是像之前录制手势那样必须完全精准的重现手势才能达成目的。对手势交互依赖比较重的应用可以考虑升级和使用。

🐎 Hummingbird 2

@DylanYang:Hummingbird 是一个用 Swift 编写的轻量又灵活的后段框架,它包含了路由、请求和结果处理、编解码等诸多能力。它最近发布了新版本 Hummingbird 2,代码整体基于 Swift 的结构化并发进行了重写,使代码更易读,感兴趣的读者可以关注一下。

内推

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

具体信息请移步: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)

老司机 iOS 周报 #305 | 2024-09-09

09 Sep 02:35
Compare
Choose a tag to compare

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

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

WWDC24 内参

🌟 WWDC24 10151 - SwiftUI 过渡效果篇

@zdd:本文将介绍 SwiftUI 实现过渡效果的两种方式:AnyTransition 和 Transition。并逐步剖析自定义 SwiftUI 过渡效果的步骤和注意事项,最后通过多个示例展示视觉、着色器、颜色、文字、滚动和导航等不同类型过渡效果的应用,旨在启发读者创建令人印象深刻的过渡效果。

文章

🐕 Backport SwiftUI modifiers

@AidenRao:SwiftUI 每年都会更新新的修饰符,但我们往往需要等待用户更新到修饰符支持的最低版本,才能享受这些新功能。本篇作者分享了一些技巧和方法,帮助开发者在较旧的 Swift UI 环境中使用新的 SwiftUI 修饰符,在确保旧版本用户体验不变的情况下,面向未来做开发,毫无问题地使用新版本 API。实现原理主要是检查操作系统版本,并在可用时调用 SwiftUI 函数,在不可用时回退到其他函数。

🐢 抄 Apple Intelligence 作业的思路

@Cooper Chen:近年来,AI 领域迅猛发展,模型规模和性能不断提升,而这是一篇对端上智能或者说 LLM 总结和思考的文章,作者从三个大的方面对当前 Apple Intelligence 的诞生、现状以及展望做了非常详尽的分析,其核心的观点大致可以总结为:

  • 以技术为基石的应用更要对技术诚实,LLM 幻觉和推理能力不足可以采用移交控制 / 验证和主动治理 / 约束策略
  • 并不是所有 AI 都需要以 AGI 为目标,提升现有产品的核心体验 / 收益也可以作为投入目标
  • 借助 LLM 实现跨 domain 交互在技术上可行,但不同 domain 有不同的商业模式考量

对于不仅是 AI 相关行业的开发,甚至对于各平台的开发来说都有非常大的参考价值,值得反复的阅读和思考。

🐎 Dogfooding Emerge Tools: Open-sourcing an Android Hacker News App

@Crazy:关于 Hacker News 的 App 有很多,这次是由 Emerge 团队开发的一款 Hacker News 阅读器。Emerge 团队开发了很多关于应用性能优化与分析的工具,他们在移动应用领域有着深厚的背景。这款新的 Hacker News App 正是使用了他们自己开发的诸多工具来完成的具体实践,这些工具可以让开发者在开发的过程中发现一些错误,并且有自动去除 dead code 等功能。开发者也可借鉴他们的开源代码来使用 Emerge 团队的开发工具,大大简化了开发者从开发到上架的实施难度。

音视频

🐢 Cross-Platform Swift: View Paradigms & Cross-Platform Swift: WebAssembly

@Kyle-Ye:本系列视频探讨了如何通过合理的领域建模,将同一套功能集无缝地应用于不同的视图范式和跨平台环境中(UIKit/SwiftUI/WebAssembly),对 Swift 进行跨平台开发感兴趣的读者可以阅读学习下。

内推

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

具体信息请移步: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)

老司机 iOS 周报 #304 | 2024-09-02

02 Sep 02:15
d7db5f1
Compare
Choose a tag to compare

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

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

文章

🐕 JSON Parsing in Swift explained with code examples

@zoeGuo:解析 JSON 是我们在编码中常处理的问题,文章介绍了在 Swift 编码中不使用外部依赖解析 JSON。作者示例说明了如何使用 Decodable 协议来轻松解码 JSON,如何通过自定义映射将 JSON 关键字映射到 Swift 属性名,以及如何转换驼峰命名法和蛇形命名法,示例了如何使用自定义日期格式解码 JSON 中的日期。作者还提供了利用 AI 将 JSON 转换为 Swift 结构体的 prompt,一个以美观的格式打印 JSON 的扩展。这篇文章详细介绍了 Swift 中 JSON 解码的各个方面。

🐕 SwiftUI for Mac 2024

@水水:这篇文章列举了系列示例代码来展示 WWDC 2023 和 WWDC 2024 中 SwiftUI 在 MacOS 应用程序上更新的新功能,主要包含了以下方面的内容:

  • Xcode
  • Previews
  • Windows
  • Tabs
  • Charts
  • Colors and Gradients
  • SF Symbols

🐢 Flutter Web 正式官宣弃用 HTML renderer , Canvas 路线成为唯一

@CrazyCoderShi: Flutter Web 一直是 Flutter 团队努力攻克的一个方向 , 最初 HTML renderer 的路线最近被团队所抛弃 , 采用 CanvasKit 结合 WASM 方式;本文讲述了 Flutter Web 在 HTML renderer 到 CanvasKit 上的取舍和对比 , 可以让我们更深度的了解为何 CanvasKit 成为了唯一路线.

🐎 Investigating a Dynamic Linking Crash with Xcode 16

@Smallfly:这篇文章作者介绍了 Xcode 16 beta 导致 PSPDFKit 在 iOS 上启动崩溃的问题。该问题与动态链接 sqlite3_threadsafe 有关。调查发现,Xcode 的线程性能检查器默认启用,会导致 libRPAC.dylib 错误解析 SQLite 符号。解决方案是禁用该工具或更新 PSPDFKit 至 13.7 版本,后者允许 libRPAC.dyliblibsqlite3.dylib 共存,以防止崩溃。

🐎 Swift Build Times and Module Verification …

@Cooper Chen:这篇文章讲述了开发 Secrets 4 时遇到的构建时间变慢的问题。作者将 Secrets 4 重构为 36 个框架,结果发现构建时间逐渐增加。主要原因是启用了 Xcode 的模块验证功能(ENABLE_MODULE_VERIFIER),该功能在构建时检查各种模块问题,虽然对框架分发有帮助,但在调试时会显著拖慢速度。作者决定在调试构建中禁用该功能,结果构建时间从 3.5 分钟减少到 52 秒。此举大大提高了开发效率,也提醒开发者定期检查构建时间以优化开发流程,这对于优化 Swift 工程的编译效率有不错的参考意义。

🐕 JavaScript to Swift and back: Bridging location services in WKWebView

@AidenRao:这篇文章主要解决 WKWebView 访问地理位置权限,会触发两次位置授权弹窗(APP 授权 与 特定网页授权)的问题。解决方案主要是通过拦截来自浏览器的位置服务请求,在 iOS 中本地处理它们,然后在位置相关工作完成后将控制权交还给浏览器。如果你的 APP 有类似的体验问题,可以参考文章的实现原理进行优化。

🐎 Send data Between iOS Apps and Extensions Using Darwin Notifications

@DylanYang:本文介绍了一种用于进程间通信的方式。在 App 内通知是一种通信的常用的手段,而有一种特殊的通知可用于进程间的通信 ———— Darwin Notifications。通常谈到进程间通信,我们会想到 Userdefaults 或者 Keychain,但是从作者看来 Darwin Notifications 会是一种更合适的方式,不过它有一个缺点是无法携带额外的信息(类似 userInfo)。作者展示了一个简单的 demo 来说明如何使用,感兴趣的读者可以阅读本文学习一下。

内推

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

具体信息请移步: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)

老司机 iOS 周报 #303 | 2024-08-26

26 Aug 02:43
Compare
Choose a tag to compare

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

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

新闻

CocoaPods 官宣进入维护模式

CocoaPods 的生命走入倒计时,后续将在某个时间节点将 Specs repo 设置为 read-only,一个时代结束了。感谢开源社区的作者们提供了这么好用的依赖工具。对于国内的开发者来说,在 SPM 能满足大家需求前,可以考虑在内网建立私有 Specs repo 以及定制 Cocoapods 功能以持续迭代。

WWDC24 内参

🌟 WWDC24 10173 - Analyze Heap Memory

@iPhreetom:新手级的 iOS 内存分析入门文章,通过学习 MemoryGraph 和 Allocations 的使用,帮助你在开发中更好的解决内存问题。

文章

🐕 Reminder: Conditional Breakpoints are Slow

@水水:这篇文章作者分享了一个有趣的调试故事,为了排查调试项目时发现的不合理的延迟,尝试了禁用调试器、深入了解 GRDB、代码验证等手段,花了数个小时跨越几周的时间,最终发现其实是 LLDB 中的条件断点会增加明显的执行延迟问题。能发现并解决问题总是一个令人愉快的体验,相信读者也有一样的体会,感兴趣的可以看看这个故事。

🐕 Issue with AVAsset access in iOS 18 beta | Apple Developer Forums

@Barney:在 iOS 18 中,直接通过硬编码路径访问 AVAsset 会引发权限错误。Apple 技术支持 Quinn 指出,应用应使用 PhotoKit API 来安全地访问和处理用户的照片库,以符合 iOS 的沙盒机制。

🐕 How to automatically detect memory leaks on CI/CD using UI tests

@莲叔:内存泄露一直都是 iOS 开发者头疼的问题,并且绝大多数情况都会比较隐蔽,无法简单的被发现。这篇文章介绍了一种结合 UI test 来挖掘内存泄露的方式,通过使用 xcodebuild 新的 enablePerformanceTestsDiagnostics 特性,在 UI test 过程中能自动生成 memory graph 的报告,作者还给出了通过 Swift 来解析内存报告和判断内存泄露的案例,这样就能够自动化的去测试用户在使用 App 的过程中是否有内存泄露。整体来说提出了一种新的解决泄露的思路,并且给出了可落地的方案参考。

代码

🐎 swift-translate

@DylanYang:一个帮助开发者快速完成字符串本地化翻译的工具,支持通过 ChatGPT 或者 Google Translate 进行翻译。目前源语言必须是英语,同时项目还在早期阶段,可能存在部分翻译不准确、漏翻等情况,使用者需要自行关注。

内推

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

具体信息请移步: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)

老司机 iOS 周报 #302 | 2024-08-19

19 Aug 02:41
Compare
Choose a tag to compare

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

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

新闻

🐕 NFC & SE Platform for Secure Contactless Transactions - Support - Apple Developer

@Barney:苹果即将在 iOS 18.1 中引入 NFC & SE 平台,让开发者能在 iOS 应用中实现安全便捷的无接触支付等功能。开发者得先跟苹果签个协议,确保他们遵守行业规则和保护用户隐私。新系统要求 iPhone XS 或更新机型,运行 iOS 18.1 或更高版本。

WWDC24 内参

🌟 WWDC24 10125 - 自动化创建 Passkey 和全新密码 App 帮助简化登录流程,并提升安全性

@米广:即刻起开始部署更加简单易用,更加安全的 Passkey。

🌟 WWDC24 10100 - ARKit 新功能介绍

@lijingpei:本文介绍了 2024 年 ARKit 的新增内容。

文章

🐎 Swift Navigation: Powerful navigation tools for all Swift platforms

@DylanYang:本文介绍了一个新的导航用开源库 Swift Navigation。这个库适用于 SwiftUI、UIKit、AppKit 以及其他一系列非苹果的平台上。它整体沿用了 SwiftUI 的导航思想,通过一些宏的封装和枚举的使用,使开发者能够更简洁的进行导航的管理。同时在 UIKit 等非 SwiftUI 的框架下,它也提供了视图和数据的绑定能力,让开发者能够在数据更新时及时更新视图。

🐕 Non-Sendable types are cool too you know

@zoeGuo:本文深入探讨了 Swift 语言中的并发特性:Sendablenon-Sendable 类型的使用,提出二者在多线程编程安全中的重要作用,以及它们在处理线程安全和协议一致性方面具有各自的优势。文章通过实例分析了 non-Sendable 类型在异步函数中的应用,并提出了使用隔离参数的解决方案,使得这些类型在并发环境中更加灵活。最终,作者鼓励开发者充分利用 non-Sendable 类型,以提高代码的线程安全和并发性能。

🐕 Diffuse reflection UV computation tool

@BluesJiang:本文介绍了苹果在 Vision Pro 中的观影模式下环境对屏幕内容的反射效果的实现方式。今年苹果在 WWDC24 上开放了这个效果给开发者们使用,本文就是介绍了相关的工具和使用。想要实现这种反射效果,苹果给了一个 python 脚本来我们计算 Emitter UV 以及 Attenuation UV,并且简单的介绍了原理。这个工具可以实现任何物体类型投射的光线都可以在预定的位置快速计算其反射的效果。在 Reality Composer Pro 上使用这两种 UV 就可以把反射 UV 应用到场景上。这种实现方式也给我们自研引擎的开发者们提供了一种新的思路。

🐎 Exploring OpenAI: Creating a Proxy with AIProxy for iOS and macOS Apps

@EyreFree:这篇文章介绍了作者使用 AIProxy 服务来保护 OpenAI API 密钥的经验。AIProxy 通过加密和分割 API 密钥提高安全性,并使用 DeviceCheck 框架防止未授权访问。文章详细讲解了 AIProxy 的工作原理、安全措施及在 iOS 和 macOS 应用中的实施步骤。作者展示了如何在 Swift 项目中集成 AIProxy,包括设置依赖、创建服务实例和发送 API 请求。文章还讨论了优化系统提示以控制 API 调用成本,以及使用 AIProxy 仪表板监控请求情况。有需要的同学不要错过。

🐎 Concurrency Step-by-Step: A Network Request

@Smallfly:本文是一篇 SwiftUI 并发编程教程,通过一个网络请求示例,讲解了如何使用 GCD 和 async/await 进行线程安全的操作。文章强调了区分 I/O 和 CPU 密集型任务的重要性,并介绍了 nonisolated 关键字的使用,以避免在非主线程上操作 UI 状态。建议读者从基础学起,逐步深入 Swift 并发编程。

🐕 Migrating KeyboardKit to Swift 6 language mode

@AidenRao:这篇文章介绍了将 KeyboardKit 更新到 Swift 6 的一些迁移经验,将 KeyboardKit 实现了完全的数据竞争安全性。KeyboardKit 是一个键盘控制的开源框架,作者在迁移过程中遇到了一些有趣的问题,包括 UIViewController 子类无法使用无参数的初始化方法、全局常量被错误地隔离等。这些变化对使用 KeyboardKit 的开发者没有影响,但如果感兴趣,可以查看最新版本的 KeyboardKit。

内推

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

具体信息请移步: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)

老司机 iOS 周报 #301 | 2024-08-12

12 Aug 05:35
Compare
Choose a tag to compare

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

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

WWDC24 内参

🌟 WWDC24 10177 - 用 HDR 图片点亮你的 App

@陈震昊:本文首先简要阐述了 HDR 相关的基本概念,例如 reference white、headroom 以及 tone mapping,然后回顾了苹果以往建立的 HDR 标准以及 HDR 渲染技术,最后重点介绍了今年新推出的 Adaptive HDR 标准以及在该标准下,如何对 HDR 图片进行读写、编辑和展示。

🌟 WWDC24 10073 - 提升 SwiftUI 的可访问性体验

@Jason:深入了解 SwiftUI 如何提供开箱即用的内置 Accessibility,以及如何使用工具来完善和打造你的应用程序的 Accessibility。

新闻

‘ You are a helpful mail assistant, ’ and other Apple Intelligence instructions

@含笑饮砒霜:在 macOS Sequoia 15.1 开发者测试版中,有用户发现了一些包含人工智能后台提示的 JSON 文件,并分享了如何找到这些文件的方法。这些文件揭示了苹果 AI 工具在接收到用户提示之前所接收到的隐藏指令。这些指令为 AI 工具提供了如何响应用户输入的指南,例如邮件助手如何基于邮件内容提问,以及如何生成“回忆”视频等。此外,还提到了一些具体的指令要求,如限制字数、不捏造事实信息等。同时,本文也提醒用户在探索这些系统文件时要谨慎行事,因为它们涉及系统敏感信息。

文章

🐕 SwiftUI app lifecycle: issues with ScenePhase and using AppDelegate adaptors

@Barney:这篇文章入剖析了 SwiftUI 的 ScenePhase API,并指出了它在跨平台应用生命周期管理上的局限性。文章建议,为了更细致地控制应用生命周期,应该扩展 ScenePhase 或引入新的 AppPhase API。同时,作者发现在 macOS 上,依赖 ScenePhase 不如直接使用 NSApplicationDelegate 来得可靠。为开发者在构建跨平台应用时提供了宝贵的见解。

🐎 Swift Protocol 背后的故事(理论)

@DylanYang:本文作者从原理上解析了在 Swift 中 Protocol 是如何实现的。Swift runtime 为每个类型都生成了类型元信息(Type Metadata),不同类型的元信息的共同特点是都包含了 VWT、Kind。Class、Struct 的实例上通过 Existential Container 模型来指导 Protocol 变量布局内存,非类约束的 Protocol,会在此模型中通过 type 指向真实类型的元信息,类约束的 Protocol 因为类的实例中已包含了类的元信息,故此模型中不再包含。而泛型在无约束、类约束或者 Protocol 约束的情况下表现均有不同,并在特定条件下特化,改为静态派送来提升性能。感兴趣的读者可以阅读本文,了解更细节的知识。

🐕 轻踩一下就崩溃吗——踩内存案例分析

@Cooper Chen:本文探讨了内存踩踏问题的现象、成因及解决方案,结合具体案例和代码示例,详细解析了全局符号介入和编译参数不一致引发的内存错误。主要通过四个章节进行了分析,分别是:

  • 踩内存问题分析成本高,需要借助专业的调试工具和方法
  • 即使代码逻辑本身没有问题,全局符号介入机制也可能导致内存越界
  • 编译参数不一致会引发内存踩踏崩溃
  • 工程标准化,能够有效减少踩内存等问题的发生

🐎 Zoom transitions

@极速男孩:这篇文章主要介绍了如何在 iOS 18 SDK 中分别用 SwiftUI 和 UIKit 使用缩放过渡。作者通过具体的代码示例展示了如何在不同的场景中实现缩放动画,比如从一个列表项缩放到一个全屏的详细视图。此外,文章还讨论了如何优化源视图和目标视图的选择,以确保过渡动画的自然和流畅。

工具

🌟🌟🌟 Cursor: The AI Code Editor

@kemchenj:Cursor 是基于 VSCode 的一个 AI 编辑器,实际使用比起 VSCode+Copilot 体验好上不少。使用 Cursor 只需要会用两个快捷键:

  • CMD+k,单文件编辑,选中你要修改的代码,告诉他需要修改的内容,还能贴 UI 图
  • CMD+i,多文件编辑,直接按快捷键,然后按 + 号指定改动的文件,告诉他需要修改的内容

然后站起来走两步,拿起杯子喝口水,看着他把代码写好,健康编程从此刻开始!!!

音视频

🐢 Embedded Swift Tutorial - Getting Started (Everything you need to know)

@Kyle-Ye: 一篇关于 Embedded Swift 的详细教程,对嵌入式 + Swift 方向感兴趣的可以观看。目前 Embedded Swift 还处于较早期的玩具阶段,期待后续搭配 HomeKit/Matter 生态的进一步发展。

内推

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

具体信息请移步: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)

老司机 iOS 周报 #300 | 2024-08-05

05 Aug 02:00
Compare
Choose a tag to compare

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

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

WWDC24 内参

🌟 WWDC24 10162 - 多次拍摄保持色彩一致

@bqlin:色彩一致性是人类视觉感知的一个特性,看苹果如何软硬件结合,在拍摄上重现该“生理”特性。

🌟 WWDC24 10149 - 在 SwiftUI 中设计窗口

@Rickey:Window(窗口) 是承载 App 内容的最重要的容器,尤其是在 macOS 和 VisionOS 平台上更是需要优雅地设计和使用窗口。本文将介绍 Windows 组件,并且基于一个 Demo(BOT-anist)从实战角度进行教学。

文章

🐎 Xcode-Kotlin 2.0 Release

@Crazy:本文是一篇公告,介绍了 Kotlin 的跨平台技术在 Xcode 上取得的巨大进展。Kotlin 的跨平台开发能力已经提供了很长一段时间了,这次,他们带着 xcode-kotlin 2.0 来再次挑战广大开发者的神经。下面是他在 2.0 版本中主要的优化项:

  • 极大的提升了 Debugging 的性能(最快可达到之前的五倍)
  • 扩展了每一帧变量的信息
  • 在 Swift, Kotlin, Objective-C 下都可工作
  • 默认支持 List 和 Map 并且后续还会持续更新(例如:StateFlow, Set)

Kotlin 还是延续了它一贯的特点,开源,免费,文章很短,大家可以快速浏览,对新技术有个简单的认知。

🐢 Async await in Swift: The Full Toolkit

@AidenRao:这篇博客介绍了 Swift 中异步 / 等待(async/await)的完整工具包,包括 async/await 基础语法、Task、Task group、Actors 等多种技术。通过实际示例和理论讲解,展示了这些工具在 Swift 并发编程中的用法和场景。

🐎 Building Swift Executables

@Kyle-Ye: 这篇文章介绍了如何在不同操作系统和架构上构建和分发 Swift 可执行文件。对于使用 Swift 构建 CLI 程序感兴趣的同学建议阅读学习。

🐕 Swift 6 适配的一些体会以及对现状的小吐槽

@含笑饮砒霜:这篇文章主要围绕 Swift 6 的迁移体验、并发编程的引入、以及作者对 Swift 语言发展的个人感想进行了详细阐述。

  • 1.Swift 6 迁移体验

    • 迁移挑战:作者提到 Swift 6 的迁移过程并不顺利,与 Swift 3 的迁移有相似之感,主要是因为并发编程和严格线程安全的引入
    • 并发编程工具:Swift 6 通过 actor 隔离和 Sendable 标注等工具,试图在编译阶段就解决数据竞争和线程问题
    • 迁移建议:尽管 Apple 提供了对旧版本的兼容选项,但迁移仍需要大量工作,作者建议新代码可以按 Swift 6 标准编写,老代码则观察后再决定
  • 2.并发编程和严格线程安全

    • 主要任务:迁移过程中的主要任务包括添加 @mainactor、标记 Sendable、以及将回调函数改写成 async 并考虑 Task 的使用
    • @mainactor 的使用:UI 相关类型默认添加 @mainactor,非主线程调用时需使用 Task 或添加 @mainactor
    • Sendable 和 @unchecked Sendable:对于非 Sendable 的 class,需要实现线程安全机制,如使用锁或 dispatch queue,但可能导致性能问题
  • 3.迁移过程中的具体挑战

    • 回调和闭包:async 普及前,遗留的 completion handler 代码需要转换为 @sendable 闭包,但易导致“传染”问题
    • deinit 问题:deinit 无法被 actor 隔离,导致在 Swift 6 中一些原本可行的代码变得无法书写,需要使用 Task 或 withoutActuallyEscaping 来绕过限制
  • 4.Swift 语言的发展和个人感想

    • 复杂度增加:Swift 从最初的简单到如今包含 Result Builder、Property Wrapper、宏、并发编程等多个复杂特性的编程语言,学习负担加重
    • 开发者体验:编译速度退化、Xcode 的代码补全和 SwiftUI 预览等开发者体验问题尚未得到显著改善
    • 未来展望:作者对 Swift 的未来发展持观望态度,认为其重点似乎并未完全放在帮助开发者更快完成 App 上,而是扩展到了 Server Side 和其他操作系统平台
  • 5.作者的个人经历和对新人的建议

    • 十年 Swift 开发者经历:作者回顾了自己从 Swift 发布第一天开始的十年历程,见证了 Swift 的多个重要节点
    • 对新人的建议:初学者面临的学习负担较重,作者认为新人需要掌握基础语法、值类型和引用类型等基础知识,以及更复杂的宏和 Property Wrapper 等特性

🐢 结合实例深入理解 C++ 对象的内存布局

@老驴:这篇来自腾讯技术工程的文章通过实际案例深入探讨了 C++ 对象的内存布局,包括简单对象、带方法的对象、私有和静态成员、类继承以及虚函数的实现。

通过使用 GDB 调试工具,文章分析了 C++ 对象在内存中的分布情况,揭示了成员变量和方法在内存中的存储方式。其中,作者强调了编译器如何通过对象地址和偏移量来定位成员变量,并讨论了多态实现的底层机制。这篇文章算是一篇 C++ 进阶的文章,有兴趣的同学可以细读。

代码

🐎 swift-issue-reporting

@Damien: Point-Free 推出了一个名为 Issue Reporting 的新库,它允许开发者以 Xcode 运行时警告、断点、断言等方式报告应用程序和库代码中的问题,并支持测试。这个库提供了 reportIssue 函数来在代码中标记不应发生的问题,并可自定义问题报告方式,包括自定义报告器以发送问题到 OSLog 或外部服务器。此外,在测试环境中,所有报告的问题都会变成测试失败,有助于确保问题代码路径不被执行。

内推

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

具体信息请移步: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)

老司机 iOS 周报 #299 | 2024-07-29

29 Jul 02:16
Compare
Choose a tag to compare

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

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

WWDC24 内参

🌟 WWDC24 10146 - 为自定义容器视图添加更多的能力

@whf881211:该文章介绍了 SwiftUI 新添加的一些用于操控 Subview 的 API。这些 API 令 SwfitUI 的操控 UI 的能力大大增强,让我们可以给自定义容器添加更多灵活性和更强大的能力。

🌟 WWDC24 10198 运行、暂停、检查:探索如何使用 LLDB 进行有效调试

@haochen08:本文以 WWDC24-10198 为主线,综合了 WWDC19-24 期间多个和调试主题相关的 Session,向大家介绍如何使用 Xcode IDE 和 LLDB 的最新能力,进行有效和高效的调试。同时还介绍了如何处理使用相关工具碰到的常见问题和一些高级技巧。

文章

🐎 SwiftUI Hero Animations with NavigationTransition

@xiaofei86:借助 iOS 18 中 SwiftUI 新引入的 NavigationTransition 协议实现和 App Store 首页卡片展开类似的 Hero 动画只需三行代码。阅读本文,跟着作者一步步复现一模一样的效果,并了解相关的 SwiftUI 新特性。

🐕 Memory consumption when loading UIImage from disk

@含笑饮砒霜:这篇文章主要讨论了在使用 SwiftUI 从磁盘加载 UIImage 时遇到的内存消耗问题,并提供了多种解决方案来优化内存使用。通过下面这些要点,读者可以全面了解文章讨论的内存消耗问题、原因、解决方案以及优化建议:

  • 1.内存消耗问题
    • 问题描述:当使用 UIImage 从磁盘加载大量图片时,内存消耗会迅速增加,特别是当图片频繁切换或数量较多时
    • 示例场景:文章通过一个包含 200 张壁纸的示例项目,展示了使用 SwiftUI Slider 滑动查看图片时内存消耗增加的问题
  • 2.内存增长原因
    • 系统缓存机制:使用 UIImage(named:)方法加载图片时,图片会被系统缓存,导致内存占用增加
    • 代码实现:展示了使用 UIImage(named:)方法的代码示例,并解释了为什么这种方法会导致内存问题
  • 3.解决方案
    • 避免系统缓存:推荐使用 UIImage(contentsOfFile:)方法加载图片,该方法不会将图片添加到系统缓存中,从而减少内存消耗
    • 代码优化:通过重写图片加载逻辑,使用 UIImage(contentsOfFile:)替代 UIImage(named:),解决了内存快速增长的问题
  • 4.图像缓存策略
    • NSCache 使用:对于需要处理或频繁访问的图片,可以使用 NSCache 进行缓存,以提高性能和减少内存浪费
    • 缓存逻辑:展示了如何使用 NSCache 创建一个简单的图像缓存,并在需要时从缓存中检索或存储处理后的图像
  • 5.性能优化建议
    • 预处理图像:建议在后台线程预先处理图像(如缩放),以避免在主线程上进行耗时操作,提高应用性能
    • 预加载策略:可以提前加载即将显示的图片,以减少滑动时的加载延迟

🐎 Exploring SwiftUI: Make SF Symbols Wiggle Wiggle

@Smallfly:这篇文章主要介绍了如何在 SwiftUI 中使用 SF Symbols 的新型摆动(wiggle)动画效果。

🐎 Using SwiftUI in Command Line Tools

@Damien:文章介绍了一种创新的方法,使用 SwiftUI 框架在命令行工具中为 iOS 应用图标添加徽章。通过 ImageRenderer 类,SwiftUI 视图可以被导出成图像。文章提供了一个名为 badgeify 的示例工具,它接受命令行参数来指定图标的输入输出路径和徽章文本。badgeify 工具利用 SwiftUI 构建视图,并利用 ImageRenderer 生成最终的带徽章图标图像。尽管在命令行环境中使用 SwiftUI 存在一些限制,比如 Xcode 无法为 SPM 可执行文件生成预览,但文章也提供了一些技巧来优化开发和测试流程。

工具

🐎 Enable XcodeLLM on ChinaSKU Mac without disabling SIP

@Kyle-Ye: 借助开源 eligibility_util 实现,实现在国行设备不关闭 SIP 的情况下使用 Xcode 16 Beta 的 LLM 功能

代码

🐎 🌟 Charts

@水水:Charts 是一个用 Swift 编写的为 iOS 创建图表方面提供各类样式的库,其对标的是在 Android 开发人员中非常受欢迎的 MPAndroidChart 图表库。对于读者来说非常值得参考和收藏。

内推

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

具体信息请移步: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)

老司机 iOS 周报 #298 | 2024-07-22

22 Jul 02:24
3dced7c
Compare
Choose a tag to compare

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

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

WWDC24 内参

🌟 WWDC24 10104 - 使用 RealityKit 构建空间绘画 App

@Layer: RealityKit 是 visionOS 应用空间功能的基础。我们将以空间绘画 App 为例,探索资源在 RealityKit 中的运作方式,通过构建自定义网格、纹理和着色器、使用低级别网格和纹理 API 等,实现精致的视觉设计。

🌟 WWDC24 10074 - 动态字体体验入门

@nuomi1: 使用动态字体功能实现一个演示 App,对比 SwiftUI 与 UIKit 在实现上的异同点。

🌟 WWDC24 10118 - UIKit 新功能

@Sharker: 在 iOS 18 中,UIKit 经历了显著的改进,专注于提升用户界面的直观性和互动性。最引人注目的是全新的文档启动体验,它为应用提供了更多个性化展示的空间,同时优化了用户的首次文档创建流程。标签栏和侧边栏也经过了重新设计,不仅外观更加紧凑,还增加了新的定制功能,使得内容展示更为突出。强化了 SwiftUI 和 UIKit 之间的互操作性,特别是通过统一手势系统和允许 SwiftUI 动画类型直接应用于 UIKit 视图,极大地丰富了开发者在动画和交互设计上的选项。此外,UIKit 的 Trait 系统现在支持自动特性跟踪,简化了视图更新,提高了应用性能。为了进一步增强用户体验,iOS 18 引入了 UIUpdateLink ,它使得周期性的 UI 更新更为高效,并且通过感官反馈的改进,如对 Apple Pencil Pro 的支持,为 iPad 用户提供了更加丰富的交互反馈。文本编辑也得到了提升,新的文本格式化面板和写作工具为用户提供了更直观的编辑体验。总的来说,iOS 18 的 UIKit 更新为开发者提供了更多创新的工具和 API,以构建更加引人入胜和用户友好的应用界面。

新手推荐

🐎 Blend Modes in SwiftUI

@Smallfly:这篇文章详细介绍了 SwiftUI 中的图层混合模式(Blend Modes),展示了如何通过这些模式增强图像的视觉效果。从基础的「正常」模式到复杂的「强光」和「颜色减淡」,每个模式都有详细的计算公式和效果展示。如果你想设计更有吸引力的视觉效果,推荐一读。

文章

🐕 Mastering Animatable and AnimatablePair in SwiftUI

@水水:在本文中,探索了 SwiftUI 的 Animatable 和 AnimatablePair,并通过 Demo 代码和实际效果举例让大家了解如何使用这些 API 在应用程序中制作更高级的动画。

🐎 Introducing Entry macro in SwiftUI

@EyreFree:这篇文章介绍了 SwiftUI 中新推出的 @Entry 宏,这是一个用于创建独立视图入口点的功能。文章解释了 @Entry 宏的用途和优势,包括:

  • 允许开发者为不同平台(如 iOS、macOS 等)创建特定的入口点;
  • 支持多个入口点,便于创建不同的预览和测试场景;
  • 简化了应用程序的结构,不再需要传统的 App 协议和 @main 属性;
  • 文章通过实例演示了如何使用 @Entry 宏创建多个入口点,以及如何为不同平台定制 UI。同时,作者还讨论了 @Entry 宏与现有 SwiftUI 生命周期(如 Scene 和 WindowGroup)的兼容性。

文章强调了 @Entry 宏带来的灵活性和简洁性,认为它将改变 SwiftUI 应用程序的开发方式,特别是在创建多平台应用时。感兴趣的朋友不要错过。

🐎 Create Custom SF Symbols in Sketch

@zoeGuo:SF Symbols 是由苹果公司推出的一套系统图标,这篇文章作者介绍了如何用已有的 SF Symbols 简单修改获得自己想要的自定义 SF Symbols。通过简单的示例说明了怎么导入符号、调试、调整和优化等,操作简单易学,适合想自己做一些简单图标的初学者。

代码

🐎 Charts

@极速男孩:DGCharts 是为 iOS、tvOS 和 macOS 平台设计的图表库,灵感来源于 Android 的 MPAndroidChart。除了基本的图表类型,如折线图、条形图、散点图和饼图,还支持自定义图表样式、高亮显示、图表交互、动态数据更新等高级功能。

内推

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

具体信息请移步: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)

老司机 iOS 周报 #297 | 2024-07-15

15 Jul 02:26
Compare
Choose a tag to compare

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

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

WWDC24 内参

🌟 WWDC24 10135 - What's new in Xcode 16

@Yuanxu Han:和往年一样,今年 Xcode 也迎来了全新版本,Session 10135 从 EditBuildDebugTestProfile 几个方面非常简短地讲述了更新的内容,文章针对这些重点特性分别进行了 Session 内容的翻译和部分必要的补充,尽力保证读者都可以对其有清楚的认识和理解;然后从 Xcode Release Note 中整理了部分需要关注的更新点;最终进行总结和探讨。

🌟 WWDC24 10188 - SF Symbols 6 使用指南

@Mim0sa:为了更方便没有 SF Symbols 经验的读者理解,也将往年的 SF Symbols 相关内容归纳整理。本文从 SF Symbols 的特性切入,讨论 SF Symbols 这款由系统字体支持的符号库有哪些特点以及该如何使用。在这次 WWDC 2024 更新中,除了符号的数量增加到了 6000+ 之外,还新增了一些能让符号们更加活泼的动画效果,同时提升整体使用体验,给界面带来了更多活力和想象力,让 SF Symbols 这把利器变得又又又更加趁手和锋利了。

文章

🐎The State Of Meridian

@Kyle-Ye: 本文介绍了于几年前 Meridian Swift 服务端框架的最新状态(async&await / Websockets 支持 / 中间件等)和未来计划(Swift Macro 和 Swift OpenAPI framework 迁移),对 Swift on Server 感兴趣的同学可以详细阅读了解。

🐎 Swift Testing support for SnapshotTesting

@Smallfly:WWDC24 推出的 Swift Testing 框架为 Swift 语言带来了新的原生测试支持。作者介绍 SnapshotTesting 库已同步支持此框架,同时提供了 Beta 预览和新特性。它简化了 XCTest 与 Swift Testing 的不兼容问题,允许开发者在不同测试环境中使用统一的 assertSnapshot 方法。对测试框架感兴趣的同学可阅读原文了解更多。

🐕 Using TextRenderer to create highlighted text

@AidenRao: 这篇博文介绍了如何使用 TextRenderer 在 SwiftUI 中创建带有文本高亮效果的视图。TextRenderer 是在 WWDC 2024 上引入的新协议,可以增强文本的渲染。使用TextRenderer,我们可以更纯粹地在 SwiftUI 中实现文本高亮,而不再需要使用 NSAttributedString。

工具

🐎 ImHex

@EyreFree:ImHex 是一个功能丰富的十六进制编辑器,专为逆向工程师、程序员和夜间工作者设计。它提供了许多实用功能,如:

  • 强大的十六进制视图,支持字节修补、无限撤销 / 重做、多种数据解释和高亮显示等;
  • 自定义 C++ 风格的模式语言,用于解析和高亮文件内容;
  • 数据检查器,可将数据解释为多种类型;
  • 基于节点的数据预处理器,可在显示前修改和解码数据;
  • 支持多种数据源,如本地文件、原始磁盘、进程内存等;
  • 内置反汇编器,支持多种处理器架构;
  • 集成 Yara 规则扫描;
  • 差异比较、数据分析、可视化等辅助工具;
  • 现代化用户界面,支持多工作区、自定义布局、深色模式等。

总之,ImHex 是一款功能全面、设计专业的十六进制编辑器,可以极大提升逆向工程和低级编程的工作效率,感兴趣的朋友可以试试。

代码

🐎 StreamUI

@Damien: StreamUI 项目是一个用于创建和流媒体视频的强大库,它允许开发者使用 SwiftUI 编程生成动态视频,并实时渲染和直播。这个库的主要功能包括实时视频渲染,直播流媒体,动态视频生成等。

内推

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

具体信息请移步: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)