Skip to content

老司机 iOS 周报 #311 | 2024-11-11

Latest
Compare
Choose a tag to compare
@ChengzhiHuang ChengzhiHuang released this 11 Nov 02:05
· 1 commit to master since this release

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

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

文章

🐕 Migrating Combine to AsyncAlgorithms

@zoeGuo:Swift Concurrency 发布以来,其设计在许多简单用例上大大超越了 Combine,而在 AsyncAlgorithms 发布之后,Combine 中的许多功能在 Swift Concurrency 中都可以使用。本文以一个示例项目为例,逐步演示了将 Combine 代码迁移到 AsyncAlgorithms 的过程,涵盖了数据源合并、流和节流、以及 CurrentValueSubject 到 AsyncChannel 的转换等常见场景。迁移后代码更简洁易读,易于维护;与 Swift Concurrency 无缝集成,享受异步编程的便利。

🐕 Expanding SwiftUI capabilities in Nutrient: Customizable main toolbar

@Barney:这篇文章主要探讨了在 SwiftUI 中使用主工具栏的实现方法。作者介绍了 SwiftUI 的 ToolBar 视图及其在 iOS 16 及以上版本中的应用,强调工具栏在提升用户体验和界面整洁性方面的重要性。文章通过示例代码展示了如何创建和自定义工具栏,包括添加按钮、分隔符以及响应用户交互的功能。此外,作者还讨论了工具栏的布局和风格设置,以及如何在不同设备上保持一致的用户体验。

🐕 Faster iOS Networking with Shared Dictionary Compression

@JonyFang: 共享字典压缩是一种有效加速 iOS 应用的网络性能的技术,通过在客户端和服务器之间共享数据字典来减少传输数据量。

工具

GitHub Copilot 官方发布 Xcode 插件

@kemchenj:Xcode 在 AI 补齐的功能上一直落后其它 IDE/Editor,虽然今年 Xcode 也发布了 Code Completion Prediction 功能,但只有国外能用。终于终于,GitHub Copilot 官方在近日发布了 Xcode 插件,让我们也可以用上 AI 补齐的功能:

  • 代码补齐
  • 多语言支持,包含 Swift/Objective-C/C/C++/Metal
  • 多行代码补齐
  • ...

周报之前其实也介绍过一款国内工程师开发的 Copilot Xcode 插件,经过了解之后发现 GitHub 这次发布的插件其实是 fork 出来的,并且是已经跟原版作者达成了协议,GitHub 也给了一点赞助金给作者

原版后续也会继续维护,而且就目前来说原版的功能甚至比 GitHub 版本更多更丰富。最后想说这大概是我入行以来看到最和谐的一次项目分叉了。

代码

🐕 Metal-Puzzles

@BluesJiang:这个代码库提供了一些简单的习题,用来联系编写 Metal 的 Custom Kernel,可以利用在 MLX、Metal Shader 等场景下。对于想学习使用 Metal 加速计算、自己写 Shader 的可以下载下来跟着教程周走一遍。仓库提供了一个测试框架,需要写的代码注意是在 source 变量字符串里。

内推

重新开始更新「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)