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

你也能够为这个项目出一份力,假如发现有价值的信息、文章、东西等能够到 Issues 里提给咱们,咱们会尽快处理。记得写上引荐的理由哦。有建议和定见也欢迎到 Issues 提出。

新闻

🌟 🐢 Flutter 3.0 发布

@CrazyCoderShi: 前两天的 Google I/O 上 Flutter 3.0 现已发布,首要包含 Flutter 对 macOS 和 Linux 正式版支撑、进一步的功能改进、手机端和 Web 端相关的更新等等。此外还有关于减少对旧版本 Windows 的支撑,以及一些 breaking changes 列表。国内外的相关技能咨询上有诸多解说,这儿小编就简单为咱们汇总一下,方便同学们阅读学习:

  • 中文版解说
  • 英文原版
  • Dart 2.17 新特性

 Developer – 设计开发加速器

通过服务器处理 App 内购买和供给用户支撑

2022 年 5 月 17 日(报名截止 5 月 16 日)

了解怎么运用 App Store 服务器 API 和 App Store 服务器告诉处理 App 内购买,为您的客户供给支撑和退款处理。报名估计开放时刻:5月12日

音频类 App 专场:为你的音频类 App 提高体会

2022 年 5 月 25 日至 26 日(报名截止 5 月 24 日)

欢迎参加为期两天的音频类 App 专场活动!通过本次活动,您将全方位了解 Apple 的相关技能针对在“音频”范畴不同运用场景如音乐、K 歌、有声书以及播客类场景中的最佳实施性等,包含物理音频空间化引擎作业原理和运用,音频辨认和分类的智能构建等,以及怎么利用 watchOS 打造更好的音频类 watchOS App 等等。等待您的加入和咱们一同探究音频范畴的空间!

156925166-f0e9ae02-0d06-4806-aa19-e84d84e2fd1f

文章

🐕 西瓜视频 iOS Voice Over 无障碍适配实践

@ChengzhiHuang:无障碍的适配既是工信部的要求,也是企业社会责任感的表现。本文介绍了苹果原生无障碍相关的 API 运用以及事务浸透较高场景的适配实践。如有相关适配需求能够借鉴对应场景中的交互方法。文章内容集中于处理如下问题:

  • 焦点相关问题:信息缺失/冗余/过错、顺序错乱、停留不当 等
  • 浮窗问题 / 焦点被覆盖时仍可拜访
  • 嵌套容器 ScrollView 无法跟从翻滚

🐕 MachO 文件编译链接常见的三大认知误区

@AidenRao:《iOS15动态链接fixup chain原理详解》 对 iOS15+ 动态链接进程功能优化的深度解析,引发了字节跳动 APM 团队对 MachO 文件的编译链接进程探究的爱好。在学习的进程中,初学者常常会因为对该范畴的不熟悉而堕入误区。本文整理了初学者比较简单犯的三大认知误区,防止咱们重蹈覆辙。

🐢 Swift 初次调试断点慢的问题解法

@享耳先森:在 Swift 项目开发进程中,相信咱们最近两年都深受「初次断点调试启动慢」问题困扰,依据项目巨细和结构不同,初次调试时刻从十几秒到几分钟不等,最近中文社区对此问题进行深入研究。

优酷团队发文 Swift 初次调试断点慢的问题解法 通过以下命令优化 LLVM 装备:

settings set target.memory-module-load-level minimal
settings set symbols.use-swift-clangimporter false

字节团队发文 Swift 调试功能的优化方案 通过自定义 LLDB 及装备更详尽的处理调试断点慢问题,实测作用更加显着。

需要阐明的是,以上方案与主工程项目结构有关,依赖的二进制库越多,作用越显着。

🐕 Detecting Xcode Previews

@Damien:在 SwiftUI 中想区分当时运行环境是在 Preview 中仍是虚拟机中吗?来看看这篇文章吧,作者供给了从 ProcessInfo 中通过 XCODE_RUNNING_FOR_PREVIEWS 获取当时的运行环境的信息的思路,然后能够让咱们辨认运行环境是在 Preview 仍是虚拟机。

🐕 Jenga – 根据 Swift ResultBuilder 高雅的构建 UITableView

@老峰:Jenga 是一个根据 ResultBuilder 封装的类 SwiftUI 运用声明式语法构建 UITableView 开源库,供给了 State 和 Binding 特性,代码简洁,可读性强,感爱好的同学不妨一试。

🐕 Flutter 状况办理结构 Provider 和 Get 分析

@极速男孩:Flutter 作为一个声明式的 UI 结构状况办理是一个让人头疼的问题,没有状况办理会导致难以复用/单元测试,跨页面无法传递数据,setState 方法会过度改写的问题。本文首要介绍了 Get 与 Provider 的状况办理的原理,而且怎么利用他们去实现 MVP 模式,而且对比了两者的优缺点。

🐢 Flutter 深入探究混合开发的技能演进

@邦Ben: 本文整理了 Flutter 中 PlatformView 的演进进程,也便是从直接通过 channel 翻开一个 WebviewController 到 Virtual Displays 到 Flutter Hybrid Composition 的进程,文中通过各种例子阐明原理以及也指明了优缺点,在运用 Flutter 的同学建议一看。同时上星期引荐的 UC 团队做的进一步优化进行是下一步演进方向,也能够一并看看。

参阅链接:
U4 内核技能 – Flutter PlatformView 优化

🐕 深入理解 OC/C++ 闭包

@xuyafei:ObjC 编译器允许用户在同一个源文件里自由地混合运用 C++ 和 ObjC,相对于其它言语与 C++ 的文件隔离和架桥通讯(Kotlin 运用 JNI,Dart 运用 FFI),Objective-C++ 的同文件混编方法无疑是令人酣畅的。虽然 Objective-C++ 没有为 ObjC 和 C++ 类增加功能,类的体系结构也互相独立,类之间不能互相承继,但有时二者也会彼此把自己的魔杖伸向对方范畴,然后会引发一些比较隐晦的问题。本文就从两种言语闭包混合捕获的原理出发,了解其混编方法背面机制的冰山一角,也协助咱们写出更好的 ObjC/C++ 混编代码。

代码

老司机技能沙龙

不知不觉,现已联合举办了 6 场开发者活动了。咱们对过去几场活动从头做了一次整理,把一切可公开的材料都上传到了这儿,后续的活动也会同步更新到这儿。需要的朋友移步自取哈

image

摸鱼周报

@摸鱼周报 #53:第 53 期摸鱼周报来了,一同来看下本期概要:

  • 论题:远程作业正在成为趋势
  • 面试模块:CRC 实践使用:理论推导
  • 优异博客:App Extension
  • 学习材料:一个大学生的学习计划
  • 开发东西:适用于 macOS 的现代媒体播放器,IINA 由开源媒体播放器 mpv 供给支撑,简直能够播放您拥有的一切媒体文件。

内推

老司机周报团队联合知识小集和 SwiftGG 翻译组收录了一份靠谱的内推职位。

假如你想找作业,点这儿:www.yuque.com/iosalliance…

假如你想招人,点这儿:www.yuque.com/iosalliance…

当然,也欢迎你重视咱们每一期的周报,咱们会在每期周报底部及时更新修改内推岗位。

重视咱们

咱们是「老司机技能周报」,一个持续寻求精品 iOS 内容的技能公众号,欢迎重视。

重视有礼,重视【老司机技能周报】,回复「2021」,收取 2017/2018/2019/2020 内参

同时也支撑了 RSS 订阅:github.com/SwiftOldDri… 。

阐明

🚧 表明需某东西,🌟 表明修改引荐

估计阅读时刻:🐎 很快就能读完(1 – 10 mins);🐕 中等 (10 – 20 mins);🐢 慢(20+ mins)