老司机 iOS 周报 #201 | 2021-05.09 #3416
Damonvvong
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
新闻
阐明 App Store 改善流程的标准和新的限期延长
过去几年,苹果为了保证贯彻在安全和隐私方面的最新改革,陆续下架了 280 万个 App。同时还强调了,在过去三年内从未更新且未达到最低下载量 (即该 App 在连续 12 个月内完全没有或只有极低的下载量) 时,其开发者将会收到电子邮件,告知该 App 已被识别并可能从 App Store 中被移除。具体细节请参照:App Store 改善的支持页面
SSWG 2021 Annual Update
Swift 服务端工作组发布了 2021 年的工作总结:
以及 2022 年的目标:
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 版本。
最终得到的结论:
参考:
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 翻译组收录了一份靠谱的内推职位。
如果你想找工作,点这里:https://www.yuque.com/iosalliance/article/bhutav
如果你想招人,点这里:https://www.yuque.com/iosalliance/article/ycyhf3
当然,也欢迎你关注我们每一期的周报,我们会在每期周报底部及时更新编辑内推岗位。
关注我们
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
关注有礼,关注【老司机技术周报】,回复「2021」,领取 2017/2018/2019/2020 内参
同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。
说明
🚧 表示需某工具,🌟 表示编辑推荐
预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)
This discussion was created from the release 老司机 iOS 周报 #201 | 2021-05.09.
Beta Was this translation helpful? Give feedback.
All reactions