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

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

《WWDC22 内参》

上周一共更新了 13 篇,每篇质量都十分高,由于篇幅问题,开头先引荐三篇或许咱们更感兴趣的,其他的放到周报最终了~

【WWDC22 10092】遇见 Passkey

苹果一贯以对用户隐私的严厉注重和超卓的隐私维护才能而广受赞誉。passkey 是苹果在用户隐私维护与信息安全方面提出的一个完好的处理计划。本文将带你一同来了解这一计划是什么、为什么和怎么用。

【WWDC22 110357/110358】Swift Regex: 蓄谋已久的正则优化

Chris 画了有五年的大饼 Swift Regex 总算要落地啦!一种声称要逾越 Perl 的字符串处理方法,一种统筹简练和直观的正则表达式构建办法,一种使正确处理 Unicode 编码垂手可得的笼统模型。Swift Regex 的脚步虽然缓慢,凡坚信不疑的,主必赐福于他。(官方原文:So we go out and evangelize our clearly superior approach to anyone who will listen. Adoption is slow but promising.)

【WWDC22 10054】SwiftUI 新导航计划

导航是一切 App 不可或缺的功用。SwiftUI 在发布时就为咱们带来 NavigationView 来支撑简略的导航场景,但存在许多缺乏。走运的是 WWDC22 为咱们带来 NavigationStack 和 NavigationSplitView 来处理各种痛点。
本文经过一个真实的比如《唐诗三百首》具体讲述新的计划的适用场景及运用主张,协助读者了解和搬迁到新的导航计划。

新手引荐

How to Start iOS Development Career

@老峰:作者经过系列文章罗列了 iOS 开发上手首要常识点,首要包含如下内容:

  • Swift 言语:学习资源以及学习办法
  • 构建 UI 界面:Using Interface Builder&Build programmatically;UIKit&SwiftUI
  • iOS 根底概念:数据存储、网络恳求、多线程、内存管理
  • 测验:单元测验、集成测验、快照测验、运用程序流测验
  • 架构&东西:未完

逐步完成依据源码的 Swift 代码覆盖率

在这篇短文中,作者将向你介绍其研究 Swift 代码覆盖率检测计划时找到的最佳实践,包含:

  • 怎么生成 *.profraw 文件并经过指令行丈量代码覆盖率
  • 怎么在 Swift App 项目里调用 C/C++ 办法
  • 怎么在 Xcode 中丈量完好 Swift App 项目的代码覆盖率

文章

依据 Bazel 的 iOS Monorepo 工程实践

@JonyFang: 一篇有用的技能同享,首要介绍了 BILIBILI 依据 Bazel 的 iOS Monorepo 工程实践,内容结构如下:

  1. 介绍 BILIBILI 客户端工程开发模式演进的背景;
  2. 回答什么是 Monorepo?有哪些老练的 Monorepo 东西?
  3. 介绍选型 Bazel 原因,侧重介绍了 Monorepo 以及 Bazel 带来的优势;

现在 B 站客户端的 Monorepo 模式还在进化中,未来会有越来越多的编译优化的自研规则实装到咱们的 iOS 项目中,现在分布式编译才能也已经提上了日程。欢迎对 Monorepo 或 Bazel 感兴趣的同学和咱们一同进行技能讨论,也欢迎参加咱们的 CI/CD 团队,深度参加改造和建造 iOS 端 Monorepo 工程体系。

西瓜视频 iOS 播放器技能重构

@ChengzhiHuang:西瓜视频中有各种视频体裁,事务逻辑很多耦合,也是事务的最中心模块。本文集合于事务播放器的重构(并非 VideoEngine 层),经过将播放器拆分为:极简播放器、根底播放器、事务播放器 三层;将事务使命化;下降各层耦合 等手法,最终在可维护性、功用、事务等多方面都拿到了不错的收益,具体的分层计划与思维咱们能够学习,但最终都要依据事务复杂度来挑选最合适的区分。

Using the ‘some’ and ‘any’ keywords to reference generic protocols in Swift 5.7

@zvving:比较 ObjC,Swift 协议带来更丰厚的有用场景和更严厉校验的类型信息。当咱们遵循苹果的主张,测验在项目中落地面向协议编程时,在参数类型、范型相关等场景,类型信息带来很多的约束,这导致咱们不得不很多运用类型擦除,能处理问题,也带来更多的理解本钱。

Swift 5.1 引入 some 关键字(opaque return types),让依据协议的返回类型更易用。而 Swift 5.7 更进一步,让 some 更灵敏的运用与函数参数及范型等场景,一起引入 any 关键字带来官方的类型擦除语义用于类型容器场景。至此,在实例类型更清晰的场景运用 some 关键字,类型容器场景运用 any 关键字,Swift 在面向协议编程中真实达到简练一起统筹灵敏。

App Store Server API 实践总结

@J_Knight_:本文同享了苹果敞开的 App Store Server API 的接口:

  • 查询用户订单的数据
  • 查询用户历史数据
  • 查询用户内购退款
  • 查询用户订阅项目状况
  • 提交防诈骗信息

还介绍了线上环境和沙盒环境的测验服务器地址。而由于这些接口的调用需求先经过 JWT ( JSON Web Token) 的方法授权,所以也介绍了该授权方法的具体操作,例如生成密钥和签名等等。文章的后半部分供给了这些接口的调用示例以及相关的错误码等的相关信息。

拓宽阅览:【WWDC22 10040】 探究 In-App Purchase 集成和搬迁

Announcing the Language Workgroup JUNE 15, 2022Ted KremenekTed Kremenek

@含笑饮砒霜:自 Swift 成为开源项目以来,Swift 社区共同完成了许多工作。现在,将启动言语工作组,它将承当监督言语和规范库的首要职责。有了一个致力于言语发展的工作组,中心团队将在项目的全体监督和方向上投入更多。中心团队成员将担任管家,和谐各个工作组的工作,并制定建立一个更加活泼的开源项目和周边社区的战略。

SwiftUI 状况管理体系指南

@EyreFree:SwiftUI 与 Apple 之前的 UI 结构的区别不仅仅在于怎么界说视图和其他 UI 组件,还在于怎么在整个运用它的运用程序中管理视图层级的状况。SwiftUI 没有运用委托、数据源或任何其他在 UIKit 和 AppKit 等指令式结构中常见的状况管理模式,而是装备了一些特点包装器使咱们能够精确地声明咱们的数据怎么被咱们的视图调查、烘托和改动。这篇指南能很好地概述 SwiftUI 的各种状况处理机制,文中强调的概念涵盖了一切依据 SwiftUI 的状况处理的绝大多数用例,引荐对 SwiftUI 感兴趣的朋友阅览。

WWDC 2022 Viewing Guide

@Barney 本年的 WWDC 有 175 个 sessions 和很多的新特性要学,光是看视频就要花费很多的时间。东西太多抓不住重点?不要紧,不如先按本文的分类从感兴趣的下手。

Rendering SwiftUI views within UITableView or UICollectionView cells on iOS 16

@JimQ:本年的 WWDC 总算带来了在 UITableView/UICollectionView Cells 中烘托 SwiftUI 视图的才能,但并不是能够彻底混用了,仅限于 Cells(比如 UITableViewHeaderFooterView 就不能用),Cells 与 SwiftUI 之间要依靠 UIHostConfiguration 的桥接支撑,运用一个新的 UIHostConfiguration 方针 wrap SwiftUI 视图并赋值给 cell.contentConfiguration。John Sundell 的这篇文章能够带领咱们了解更多概况,并充分使用这一新特性。

Google I/O Extended | Flutter 游戏和全渠道正式版支撑下 Flutter 的现状

@极速男孩:本年 Google I/O 上谷歌首要展示了 Flutter 对游戏开发的支撑和全渠道支撑的才能。谷歌经过一款 pinball 的小游戏来展示 Flutter 怎么经过 Skia 烘托引擎和 Flame SDK 来供给游戏开发的才能。在 3.0 中 Flutter 提高了 macOS 和 Linux 上运用稳定性,让开发者在尽或许多的同享 UI 和逻辑的根底上,更灵敏的使用底层逻辑操作体系。

wakeup in XNU

@水水:重视功用的读者或许会碰到有一种有一种被体系 kill 类型是 weakup,又由于收集到的日志缺乏以定位问题,本文经过另一种思路去处理这个问题。全体介绍了weakup是什么、体系怎么计算的以及关键的是怎么管理。

  • 为什么要计算 wakeup
  • wakeup 是什么
  • wakeup 怎么计算的
  • wakeup 管理
  • 监控与防劣化

What’s new in Swift 5.7

@AidenRao:Swift 5.7 改变巨大,新特性中包含正则表达式, if let 速记语法,以及环绕 anysome 关键字的一致性改动,在本文中,作者会经过一些示例来介绍这些新特性。

中文翻译:【WWDC22 110354】Swift 新特性介绍

Flutter 高延迟烘托流水线调度

@CrazyCoderShi: Flutter 长久以来以高功用著称,但你或许猎奇 Flutter 上的卡顿是什么引擎的,又应该怎么处理。本文由 U4 内核组带你揭秘 Flutter 体系下的烘托流程,并从中找到卡顿的原因,抽丝剥茧,进阶必看

WWDC22 内参更新

【WWDC22 110379】创立一个响应速度更快的媒体运用

本 session 首要对 AVFoundation 中原本不是很合理的同步 API 做了异步优化,一起将 async/await 运用到了更多 API 中,让 API 更安全的一起还能保持易用。涉及到的模块包含视频截图、视频修改、自界说资源加载。

【WWDC22 10002】使用 Virtualization 构建虚拟机,从未如此简略

本文介绍了渠道虚拟化技能的计划类型,剖析了 macOS 上的虚拟化计划。经过 Virtualization.framework 和依据这个结构的指令行东西,咱们一同创立可用的 macOS 虚拟机、Linux 虚拟机(GUI)、Linux(CLI),感受现代虚拟机强大的功用。使用 Virtualization 打造属于专属自己的虚拟机,从未如此简略!

【WWDC22 110341】短信过滤器原理和更新

本文将首要聚焦于 iOS 16 中 IdentifyLookup 结构的新特性。全文共分为 3 个部分:

  • 榜首部分是回忆整个短信过滤 API 的发展。
  • 第二部分是对 短信过滤的原理介绍。
  • 最终一部分是一个简略的 Demo 示例实践。

【WWDC22 10049】探究 iOS 16 中 WKWebView 的新功用

本文首要是探究 WKWebView 在 iOS 16 中的新功用,全文首要分为 4 部分:

  • 榜首部分是 对 Web 内容的交互新增了 3 种方法,一起新增了 20 种 CSS 视口单位和查找交互功用。
  • 第二部分是新增了对特定 URL 其显现内容拦截的功用。
  • 第三部分是 iPadOS 中新增了加密媒体的功用。
  • 第四部分是支撑在第三方浏览器中调试 App 内嵌的 Web页面。

【WWDC22 110350】Swift 并发的可视化和优化

本文首要是讨论 Swift 并发代码的优化,并介绍了一个 Instrument 14 供给的一个可视化东西。session 的内容能够分为 3 个部分:

  • 一、回忆 Swift 并发代码根底
  • 二、结合代码片段展示怎么用 Instrument 来处理功用问题,包含 Main Actor 阻塞 和 Actor 竞争
  • 三、最终讨论了一些 Swift 并发的潜在问题包含线程池耗竭和续体误用

【WWDC22 110354】Swift 新特性介绍

Swift 一直致力于让编程变得更简略,并以此为方针不断地进行迭代。本文将对 Swift 5.7 的新特性进行介绍,首要分为以下五个部分:

    1. 社区最新动态
    1. Swift Package Manager 插件
    1. Swift 底层功用优化
    1. Swift 并发模型
    1. Swift 言语优化

【WWDC22 10065】即插即用:将 Apple frameworks 添加到您的 Unity 游戏项目

本文将协助开发者怎么在 Unity 运用或游戏中快速集成 Apple 的一些原生功用插件,以提高著作的体会。本次 WWDC , Apple 为咱们带来了六个依据 Unity 版别的插件:Apple.Core、Game Center、Game Controller、Accessibility、Core Haptics 和 PHASE。咱们将别离介绍它们的功用,以及怎么快速编译、导入到开发者的项目中。文末,还给出了运用这些插件的一些场景以及留意点。

【WWDC22 110336】 Screen Time API 的新特性

本文将介绍 Screen Time API 在 iOS 16 的新特性以及依据此能够完成的功用。全文分为三个部分:

    1. 回忆 iOS 15 中 Screen Time API 特性
    1. Screen Time API 在 iOS 16 的新特性介绍
    1. Screen Time API 新特性的实践

【WWDC22 10115/10119】优化 CoreData & CloudKit 完成

本文将结合开发者个人项目事例,旨在经过单元测验、Instruments、日志收集三方面,覆盖开发流程的三个重要方面:探究、剖析与反应,协助开发者优化完成计划完成,做出更好的产品。一起了解到 CloudKit 的同步流程与相关体系服务。

【WWDC22 10040】 探究 In-App Purchase 集成和搬迁

本文首要聚焦于 App Store Server API 和 App Store Server Notifications。从上一年 WWDC21 苹果推出了 StoreKit v2、App Store Server API v1 和 App Store Server Notifications v2,本年 WWDC22 依据这些功用的根底上,增加了一些新的 API 和一些服务的优化。别的,针对咱们对这些新特性有一些疑虑,如 JWT/JWS、兼容性、安全性、订阅告诉、集成和搬迁等等,苹果进行了具体的回答,还供给十分多的最佳实践的事例和优化主张。

摸鱼周报

@摸鱼周报 #57:第 57 期摸鱼周报来了,这期排版做了一些改动,一同来看下本期概要:

  • 本期话题:WWDC22 讲座集锦,Apple 夏令营课程回归
  • 本周学习:Xcode Playground Tips
  • 内容引荐:苹果开发者大会闭幕,介绍一些 WWDC22 推出的新技能和新内容
  • 摸一下鱼:Apple Logo Artwork,录入苹果共同多彩风格的媒体版别 Logo

内推

老司机周报团队联合常识小集和 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)