老司机 iOS 周报,只为你出现有价值的信息。
你也能够为这个项目出一份力,假如发现有价值的信息、文章、东西等能够到 Issues 里提给咱们,咱们会尽快处理。记得写上引荐的理由哦。有建议和定见也欢迎到 Issues 提出。
新闻
说明 App Store 改进流程的标准和新的期限延长
曩昔几年,苹果为了确保遵循在安全和隐私方面的最新改革,连续下架了 280 万个 App。一起还强调了,在曩昔三年内从未更新且未达到最低下载量 (即该 App 在连续 12 个月内完全没有或只有极低的下载量) 时,其开发者将会收到电子邮件,奉告该 App 已被识别并可能从 App Store 中被移除。具体细节请参照:App Store 改进的支撑页面
SSWG 2021 Annual Update
Swift 服务端工作组发布了 2021 年的工作总结:
- Swift Concurrency:社区的各个 HTTP 框架的客户端现在都已经增加了 async/await 接口
- 东西链:
- 发布了 RPM/Deb 包
- 发布了 Swift for VSCode 插件
- 发布了 Setup Swift 的 GitHub Action
- 加强了关于 ARM Linux 的支撑
- 文档:工作组为旗下的项目弥补了很多的文档
- 生态:
- SwiftMetrics,gRPC Swift 项目完成了孵化
- SwiftStatsdClient,SwiftPrometheus,MongoSwift,Swift Service Lifecycle,Soto for AWS 连续进入孵化阶段
以及 2022 年的方针:
- 继续扩大生态圈
- 继续加强 Concurrency 的支撑
- 拓宽东西链
- 缩短编译构建时刻
- 提高 Swift 服务端的运用率
Developer – 规划开发加速器
电商购物类 App 专场:为你的电商购物 App 提高体会
2022 年 5 月 10 日至 11 日(报名截止 5 月 09 日)
此活动将全面讲述 Apple 的相关最新技能在电商和购物领域不同运用场景中的最佳实施性,以及引荐的规划理念等,一起,也期望和行业从业者一起讨论现在遇到的问题、机会和应战。
事例学习:为 iPad 规划卓越的 App
2022 年 5 月 12 日(报名截止 5 月 11 日)
经过理论讲座与事例剖析,学习怎么充分运用 iPad 的大屏幕供给更高效的导航机制和更有用的规划形式,怎么运用 iPad 多样的输入能力供给更加丰富的交互方法,以及怎么面向全新的超大尺寸小组件进行规划。
文章
iOS StoreKit 2 新特性解析
@ChengzhiHuang:StoreKit 2 距离发布已经快一年了,本文对全体的 Client/Server API 运用、选择晋级与否等问题,做出了完整的介绍与阐述。适合有内购开发需求的同学阅览。
Mutex vs Semaphore: What’s the Difference?
@Damien:在多线程咱们常用互斥锁和信号量来确保线程安全,在本文中会根据:
- 什么是互斥锁?
- 信号量的运用
- 互斥锁的运用
- 信号量与互斥锁之间的区别
- 关于互斥锁和信号量的常见误解
- 信号量的优点
- 互斥锁的优点
- 信号量的缺点
- 互斥锁的缺点
几个视点来带读者深入了解互斥锁和信号量。关于 iOS 开发者来说,值得一读。
淘宝小程序体会优化:数据剖析和优化实践
@Barney: 本文介绍了淘宝小程序的体会优化,要点介绍了指标的界说和数据实践的探索,而且取得了不错的事务效果。
- 写在前面:怎么界说好的体会
- 数据采集
- 数据剖析和优化实践
- 东西和渠道
- 数据效果
Flutter PlatformView 优化
@邦Ben: UC 的 U4 内核团队针对 Flutter 上的 PlatformView 做了深入的研究,而且做了一下优化 PR(部分合入到官方中),主要是针对 Android 的场景,现在官方供给的 Virtual displays 和 Hybrid composition 都存在一些问题,Virtual displays 存在功用性问题,Hybrid composition 存在由于线程合并带来的功能问题,以及死锁危险,且在 Android Q 以下由于内存拷贝导致功能变差。在之前的 Hummer 引擎中实现了挖洞形式,而且经过移植 Roger 大神在 U4 浏览器内核中实现的 Embed Surface 计划,来进一步优化。而且 Embed Surface 计划被合入到主线,后续会逐渐弃用 Hybrid composition。因此能够等待最新的 release 版本。
最终得到的结论:
- 「挖洞形式」的功能仍然是最好的。在挖洞形式能满足的场景下,请考虑优先运用挖洞;
- Embed Surface 除了仅支撑 Android 6.0 及以上外,没有明显短板,其帧率在大多数场景下能够与挖洞形式相等;
- 从测验数据看,不合并线程的 HybridComposition 的帧率波动比较大,并不比 Embed Surface 有优势。另外,由于不能完全避免 Android Q 以下的内存拷贝,一起还需求处理部分场景下的同步问题,所以咱们不会继续优化该计划。
参阅: Hummer 引擎优化系列
AVPlayer 播映器对远端缺失 Content-Range 功用的本地支撑和处理
@JonyFang: 一般来说 H264/HEVC 编码能够经过 AVPlayer 直接播映,但是相对弱些的后台路由,在定位文件的时分并不支撑 Content-Range 和系列相关报头,则会导致无法播映。本篇主要针对这类 case,经过 WebServer 的方法来解决该类问题。
Binary targets in modern Swift packages
@AidenRao:本文总结了 2022 年在 Swift 包中运用二进制文件的最佳实践:
-
假如你需求为 iOS/macOS 项目增加预编译库或可执行文件,你应该运用 XCFramework, 并为 iOS 设备、macOS 设备和 iOS 模拟器包括单独的二进制文件。
-
假如你需求创立一个插件并运转一个可执行文件,你应该将其嵌入为一个 Artifact Bundles,其间包括适用于不同支撑架构的二进制文件。
Flutter 新一代图形烘托器 Impeller
@CrazyCoderShi: Flutter在2022年的Roadmap中提出需求重新考虑着色器的运用方法,计划重写图画烘托后端。最近该烘托后端 Impeller(叶轮)初见端倪,本文就从 Flutter 图形烘托优化前史讲起,一步步带你了解 Flutter 下图形烘托的优化,以及最新开发中的 Impeller ,具体带你了解 Impeller 的方方面面
Locking in WebKit
@水水:WebKit 团队在 2015 年 8 月用新的 WTF::Lock(WWeb Template Framework)替换了WebKit中所有的自旋锁和操作系统供给的互斥锁,一致了 Lock 的实现,与操作系统供给的锁(如pthread_mutex)相比,WTF::Lock 小64倍、快180倍。与操作系统供给的 pthread_cond 等条件变量相比,WTF::condition 要小64倍。本文首要介绍了一些关于锁的背景常识,要点介绍了怎么构建 WTF::Lock 和 WTF::Condition。
macOS 进化史
@红纸:作为 iOS 的开发人员,咱们每天都在运用着 macOS,你对这个系统的前史了解有多少呢?本文将带你了解 macOS 的发展前史,从早期系统不成熟的 Mac OS Classic 到融合优秀特性 NeXTSTEP 后成为 MacOSX。了解 Darwin、XNU、Mach、BSD 的根底概念以及其之间联系、Darwin 的开源之路。
Use Dependency Injection to Unit Test a ViewModel in Swift
@含笑饮砒霜:依靠注入是一种将一个或多个依靠目标传递给另一个目标的技能。本文将根据 Weather App 在初始化时将气候服务传递给气候 ViewModel。这将允许运用模拟气候服务在单元测验中测验 ViewModel,而无需访问 OpenWeather 或任何网络调用。依靠注入使类或结构独立于它所依靠的目标的创立,有助于创立松懈耦合的应用程序。
代码
GRDBQuery
@anotheren:GRDBQuery 是一个为 GRDB.swift(一个 Swift 版本的 SQLite 东西库)准备的扩展,供给了 @Query
的 property wrapper,简化了数据同步。
它类似于 SwiftUI 中为 CoreData 供给的 @FetchRequest
。
内推
老司机周报团队联合常识小集和 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)