老司机 iOS 周报 #212 | 2022-08-08
老司机 iOS 周报,只为你呈现有价值的信息。

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

《WWDC22 内参》

上周总共更新了 12 篇文章,现在总共现已更新了 86 篇,每篇质量都十分高,由于篇幅问题,开头先引荐 3 篇可能咱们更感兴趣的,其他的放到周报终究了~

【WWDC22 110352/110353】拥抱 Swift 泛型

本文首要介绍 Swift 5.7 中关于泛型新增的语言特性。经过一个示例程序与你讨论泛型的运用场景与协议的接口规划,协助你理解 some 与 any 修饰符在泛型中的运用。

【WWDC22 10068】UIKit 新特性

UIKit 作为 iOS 开发进程中十分中心的一个 framework,每年的更新换代都会对其做出一些升级和调整。只不过以往更多是针对单独的改动出独立的 session,没有专门出一个 session 成去系统地介绍 UIKit 里的改动。自从 WWDC 2021 开始,榜首次系统地介绍了 What’s new in UIKit ,首要环绕的方面包含针对出产效率提高的改动,UI 改动及 API 的改动等等。今年沿用了去年的思路,继续环绕这几个方面打开介绍。这个 session 尽管没有办法打开介绍所有的 UIKit 改动的技能细节,但它会把 UIKit 新特性里最重要的部分归纳到一同,起到提纲挈领的作用,让咱们对 UIKit 的变动有一个全体的了解。文中会附有一些 session 的链接以及苹果的官方文档,便利读者了解其更进一步的改动细节。

【WWDC22 10136/10137/110340/110342】Swift Charts 高效图表的完成与优质图表规划要素

本文将会根据各种实例和 Swift Charts API 完成从简略到复杂的图表;一起了解一些优质图表的规划体会要素;相信会对计划在桌面小组件场景应用 SwiftUI ,供给一些图表绘制的协助和指南。

文章

Switching between SwiftUI’s HStack and VStack

@zvving:HStackVStack 是 SwiftUI 根底的布局东西,在涉及设备横屏竖屏切换时,咱们也会期望布局在 HStackVStack 间动态转换。

GeometryReader 看似是可行的计划之一:经过核算容器宽高来挑选布局办法,但一起也会带来布局细节及(反正屏切换时的)动画问题。本文介绍怎么运用 Size classes 和 iOS16 引进的 AnyLayoutViewThatFits 更好地处理类似问题。

运用 deno_core 开发一个 JavaScript 运行时

@Smallfly:本文介绍怎么创立一个自定义 JavaScript 运行时 runjs,能够把它近似为简易版的 Deno。方针是开发一个命令行程序,完成履行本地的 JavaScript 文件,能够读文件、写文件、删文件,以及一个 console API。

tcmalloc 源码解析

@xuyafei:tcmalloc 是 Google 开发的内存分配器,在 Golang、Chrome 中都有运用该分配器进行内存分配。其有效地优化了 ptmalloc 中存在的问题,当然为此也付出了一些代价。感兴趣能够阅览原文了解 tcmalloc 的详细完成。

可支撑动态插入事务元素的混合 MP4 计划 – YYEVA

@JonyFang:本篇首要介绍 YYEVA 全体结构,YYEVA 是 YY 推出的一款 MP4 支撑动态元素的处理计划,包含 AE 插件、在线预览东西、烘托 SDK(支撑 iOS、Android、Web),文末附有 YYEVA 开源的地址。YYEVA 结构相关的一些文档介绍:

  • 榜首篇:直播间礼物动效 – 完成计划
  • 第二篇:通明 MP4 礼物
  • 第三篇:改换矩阵在动画上一些应用
  • 第四篇:YYEVA , 让 MP4 静态资源也能够动态起来
  • 第五篇:YYEVA 规划规范
  • 第六篇:YYEVA 数据结构

一文了解字节跳动“埋点验证渠道”

@Barney:本文首要从微观视角介绍了字节跳动的埋点验证渠道。从多人物、多节点、多方面,全方位保证了埋点质量,值得学习。

介绍大致分为:

  • 埋点验证流程
  • 技能架构总览
  • 产品流程总览
  • 技能挑战和结果收益

处理 Flutter 引起的 iOS 内存崩溃问题

@CrazyCoderShi: 现在干流版别的 Flutter 在 iOS 渠道上存在内存问题,但是却不易处理,本文经过两种计划协助读者处理问题。一起,供给了保姆级魔改 Flutter Engine 的操作流程。小编提醒⚠️ : 该计划不主张小白用户尝试。

iOS 16 UIView/UIViewController 新变化

@ChengzhiHuang:最近在适配 iOS 16 时发现了一个新的反常:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application circumvented Objective-C runtime dealloc initiation for <UIViewController> object.'

经过 pudge62 研究,iOS 16 里 UIViewController 多了一个办法叫 _objc_initiateDealloc,内部代码是用来保证 VC 在主线程释放的。 调用链为:

release – > -[UIViewController _objc_initiateDealloc] -> dispatch_async(_objc_deallocOnMainThreadHelper) -> -[UIViewController dealloc]

以前的系统也有这个机制,看起来是 iOS 16 换了完成办法。而 _objc_initiateDealloc 这个姓名和反常里的 dealloc initiation 看起来相关很大。

详细原因:工程内有代码掩盖了 UIViewController 的 +initialize 办法,这样会导致不调用 _class_setCustomDeallocInitiation([UIViewController class]),终究产生崩溃。

处理计划:由于系统 UIView/UIViewController 有了 initialize 办法,引荐咱们不要掩盖 UIViewController 的 +initialize 办法;如果一定要掩盖 +initialize 办法,那就要想办法先调用官方的,再调用自己的 +initialize 办法(不主张这么做)。

该详细分析与处理计划由 pudge62 供给

阿里跨端技能演进

@kemchenj:阿里巴巴的千牛团队为咱们带来的跨端技能演进共享,这个系列总共三篇文章:

  • 跨全端 SDK 技能演进:随同业界跨渠道技能发展与演进,千牛团队也沉积了一整套根据 C++ 的跨渠道技能系统,本文将以消息 SDK 为例,胪陈这一技能演进历程。
  • 跨桌面端 Web 容器演进:从容器的架构演进,容器的功用增强和稳定性保证及未来的演进,这 3 个方面介绍一下千牛的应用程序怎么对接浏览器的能力。
  • 跨桌面端之组件化实践:首要介绍了千牛 PC 跨端结构中,关于组件化部分的思考、计划挑选、遇到的一些问题和解法。

iOS 16 Live Activity

@享耳先森:WWDC22 Keynote 中介绍了 iOS 16 中一个比较亮眼的更新:Live Activity,开发者能够在锁屏页面上放置一个能够「实时」更新的 Widget,比方外卖或许打车应用,开启 Live Activity 后在锁屏页上实时看到 外卖小哥/司机 与咱们的距离及估计到达时刻。

这一 API 及对应功用总算在 iOS 16 Beta4 一同放出,但 Apple 清晰不会随正式版的 iOS 16.0 一同发布,而是在今年晚些时候释出,详细时刻没有给。

本文介绍了 iOS 16 Live Activity 的适配及注意事项,也共享了下开发 / 运用体会,文章终究也供给了一个 Demo 供咱们参考,能够与Experimenting with Live Activities 相关阅览。

WWDC22 内参更新

【WWDC22 10058 & 110343】SwiftUI on iPad

本文根据 10058 和 110343 两个 Session 的内容梳理,以官方 Places App 为典范,介绍了 SwiftUI 在 iPadOS 16 上的新特性。

【WWDC22 10142】 经过并发编程更高雅的办理后台任务

这篇 session 结合场景和事例,根据 SwiftUI 和 Swift 并发特性来解说怎么以更好的办法来办理异步的后台任务履行流程,并介绍了 URLSession 的后台模式,以更贴合实践的办法来解释后台任务的原理和规矩。

【WWDC22 10066/10101/10104】 探究 Metal3

Metal 是 Apple 的高效低销图形核算 API 。它旨在以最快、最高效的办法驱动 Apple 产品背面强壮的 GPU。本文介绍了 Metal 3 强壮的新功用,包含快速加载资源、离线编译、MetalFX、Mesh Shaders、光线追踪管道、机器学习支撑等内容。

【WWDC22 10079】提高应用程序和服务器的 DNS 安全性

本文旨在探究怎么确保 DNS 在应用程序中安全运用的最新办法。首要介绍了为什么 DNS 是不安全的,以及怎么经过 DNSSEC 和运用 DDR 加密的 DNS 来维护他的安全性。

【WWDC22 10032】运用新结构完成 Shortcuts

运用新结构 AppIntents 来为 App 扩展功用,以支撑 Siri 和 Shortcuts app。

【WWDC22 110367】运用 Concept 简化 C++ 模版

本 session 首要介绍了 Xcode14 上新支撑的 C++20 中比较有代表性的新特性 concept,并从实践例子出发,运用 concept 对 C++ 的模版代码进行简化,终究还介绍了用于编译时核算的 constexpr 特性。

【WWDC22 10016】运用 CarPlay 扩展你的 App

本文首要是介绍了 iOS 16 中 Carplay 的新特性,包含四个部分:榜首部分是对 Carplay 的 UI 烘托办法-模板的解说。第二部分介绍了新增的两种应用类型以及对应的一些应用。第三部分是解说了新增的一种 Caplay 测试办法的运用解说。终究则是介绍了 Carplay 怎么和汽车的仪表盘联动。

【WWDC22 10128】利用实际物体搭建 AR 场景

从你手边的实际物体(以及脑海中关于 AR 的 idea),到一个风趣的 AR App,需求阅历什么进程?这个 session 也许能给出答案。本文对 Object Capture 进行了回忆,介绍了 ARKit 相机增强可与其结合运用的新 API,并以一个 AR 象棋游戏作为例子,展示了从获取实际物体的 3D 模型到构建 AR 应用的根本工作流。

摸鱼周报

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

  • 本期话题:Apple 企业家训练营已开放请求
  • 本周学习:Swift 傍边的 Sequence
  • 内容引荐:WWDC22 & SwiftUI 好文引荐
  • 摸一下鱼:React 完成的 Win11 在线体会,模仿 Windows 和 x86 系统的网站

重视咱们

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

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

一起也支撑了 RSS 订阅:github.com/SwiftOldDri… 。

阐明

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

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