老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
新闻
Xcode 14.3 Beta Release Notes
包含 Swift 5.8 以及 iOS/iPad OS 16.4 的 SDK。其中 Swift 5.8 的改动中包含了 SE-0370 等新特性。
class ViewController {
let button: Button
func setup() {
button.tapHandler = { [weak self] in
guard let self else { return }
dismiss() // refers to `self.dismiss()`
}
}
func dismiss() { ... }
}
Developer - 设计开发加速器
探索增强现实
现在就是开始在 Apple 平台上使用增强现实的最佳时机,加入我们了解如何为数亿台支持 AR 的活跃设备构建 App。通过本次活动,您可以全方位的了解 Apple 提供的 AR 技术栈,包括 ARKit 和 RealityKit 等功能强大的框架,以及 Reality Composer 和 Reality Converter 等创意工具,从而在 AR 中将您的想法变为现实。报名截止 2 月 22 日。
新手推荐
🌟 🐕 每天都在用,也没整明白的 React Hook
@CrazyCoderShi: 日常开发中不少同学也在做前端相关开发,本文小编和大家一起学习一下 React Hooks 的用法,重新认识常用的 useState、useCallback、useContext 等,甚至于那些不常用到的 hooks 的使用方法,本篇由字节团队提供,强烈推荐正在使用 React 或者打算尝试的同学深入学习。
文章
🐢 我们是如何追逐元宇宙、XR 等“概念股”浪潮的?
元宇宙已经不是一个很新的概念,但是我们大多数人可能更多的是听过这个词,但是并没有真正体验过,很多元宇宙的产品也是在雏形状态。淘宝人生在过去一段时间完成了淘宝人生小屋项目的正式上线,也这让我们可以很方便的体验元宇宙的世界。从一个展示页面变成元宇宙,相信大家一定很好奇淘宝团队是如何做到的,这里面涉及对于端上而言大量新的技术,以及去落实这样一个项目,该如何分工等等,那就可以好好看一下这篇文章,相信可以有所受益。
🐕 企业微信 Flutter 与大型 Native 工程跨四端融合实践
@极速男孩:本文介绍了在企业微信中实践四端 Flutter 与 Native 的跨平台使用。本文主要介绍了其在跨平台中遇到的困难与挑战并且是如何解决的:
- 企业微信代码复杂,业务模块中多,使用 add2app 的方式将 Flutter 工程集成到原生工程中。
- 参考 grpc 的设计流程 , 设计了一套跨语言的 rpc 调用模型 , 通过 protoc 来生成 dart 端 和 c++ 端的代码。并且实现了一套相比 pigeon 更便捷的 channel 的自动化框架:rpc-channel。
- 通过修改引擎代码,解决了部分在跨平台时 Windows 和 Mac 遇到的通信,UI,内存等问题。
- 完善和统一导航栏,文字等基础组件在在不同端上的体验。
- 对各个业务提供独立的 example application 运行的能力。通过 grpc 的远程调用宿主 APP 的服务的方式来和主工程进行解耦。
🐎 Debouncing with Swift concurrency
@Cooper Chen:本文简单介绍了 debouncing 在 Swift 多线程中如何进行定时执行和函数防抖,并通过简化任务次数提高了性能和效率,可以为有相似应用场景的开发同学提供一些有用的参考信息。
🐎 iOS 内存优化之工具介绍
@老峰:本篇文章主要介绍了 Xcode 内存图和 leaks 工具的使用,以及排查内存问题的流程与思路,涉及以下方面:
- 运行项目,测试覆盖场景
- 使用内存图 / leaks 查看内存泄露情况
- 针对场景检查是否有隐式间接持有场景
- 根据情况修复问题
- 回归
🐎 Swift Cookbook
@Damien:Swift Cookbook 是 kodeco 团队整理的 Swift 入门书籍,汇集了常见的 Swift 语言特性的说明和使用最佳实践,以便可以在需要的时候可以提供参考。学习 Swift 的新手同学不妨收藏使用。
🐕 跨端通信终结者|看我是如何保证多端消息一致性的 🔥 - 掘金
@Barney:本文完整介绍了作者从问题出发,思考如何优雅地保证多端消息一致性的过程。
- 以 iOS - Web 通信桥接为例,解释了当下方案难以维护的原因。
- 介绍以 YAML 标准化语言定义组件的 DSL 解决方案。
🐎 理解 Clang Module 和 Module Map 语法
@J_Knight_:本文介绍了 Clang Module 的功能特点,以及它的缓存机制,在 Xcode 中的使用方法,也结合代码讲解了如何制作一个模块的方法。另外还介绍了 Module Map 的作用以及它的声明方法。
🐕 Text Buffer Reimplementation - VSCode
@红纸:本文是 VSCode 代码缓冲区的一次优化改造,基于传统的 piece table 数据结构来替代原有基于行的 ModuleLine 的 line array 。旧行数组结构需要耗费大量的构造时间,并占用大量内存。新的数据结构有着内存开支小、初始化快、插入和查询效率高等优势。如果对数据处理感兴趣的话,本文值得一读。
译文:【译】重新实现 Text Buffer 扩展阅读:Piece Table 数据结构
🐢 从大前端“穿越”到终端,开发者应该必备什么技能? | 解读终端的 2022
@享耳先森:现下裁员不断,新增招聘岗位越来越少,终端开发者何去何从?本文介绍了过去几年移动端领域技术发展;对比了现有跨端技术;同时,针对未来技术演化作者也给出了一些预测,希望对大家有帮助。
代码
ChatGPT Jailbreak
@老驴:ChatGPT 这类的 LLM 模型,一般都会存在特殊 prompt 来越过系统限制。链接中的就是其中之一,可以让 ChatGPT 回答一些正常情况下不能回答的问题。大家可以试试看,权当娱乐。
摸鱼周报
@摸鱼周报 #84:第 84 期摸鱼周报来了,一起来看下本期概要:
- 本期话题:开发加速器:在 App 或游戏内创造无障碍体验
- 本周学习:Any 和 AnyObject 以及 AnyClass
- 内容推荐:依赖注入、自定义 Button 外观与行为、正则表达式、创建 XCFramework 以及创建可配置的小组件文章推荐
- 摸一下鱼:一个白噪音网站;ChatGPT 飞书机器人配置;在线 NodeJS 平台 AirCode;ChatGPT for stackoverflow 浏览器插件
内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
具体信息请移步:www.yuque.com/iosalliance… 进行查看(如有招聘需求请联系 iTDriverr)
关注我们
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
关注有礼,关注【老司机技术周报】,回复「2021」,领取 2017/2018/2019/2020 内参
同时也支持了 RSS 订阅:github.com/SwiftOldDri… 。
说明
🚧 表示需某工具,🌟 表示编辑推荐
预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)