老司机 iOS 周报 #163 | 2021-06-21

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

你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

周报编辑组又迎来了一位新人 - @Smallfly,他是来自网易云音乐的开发者,对 Native 和跨端技术栈均有涉猎,希望未来能一起给大家持续输出高质量内容~

WWDC 21

@Parisfal:WWDC 21 圆满结束,但关于 WWDC 21 的学习才真正开始~苹果官方汇总了新技术和已有框架的重点变化[1],本周我们针对部分内容更新了 6 篇 WWDC 21 Session 的深度解读,每篇文章都是经过不断推敲和审核才完成。

【WWDC21 10114】 初见 StoreKit 2[2]

@黄骋志: 开发过 In-App Purchase 的同学应该都应该体会过被它 生涩难懂的 API、不合理的数据结构、难以处理的掉单 等问题支配过的恐惧。WWDC21 针对 StoreKit 做了一次全新的升级,同时得益于 Swift 的新特性,进一步简化了 API 调用,并带来了诸多新特性,阅读本文后相信你会惊艳于这次的升级。

【WWDC21 10101】使用 ReplayKit 记录你的高光时刻[3]

@七夜: 主要介绍了 Apple 为 ReplayKit 新增了一个新的特色功能 Clips Recording,用于记录用户应用或游戏内不超过 15 秒长的精彩瞬间。

【WWDC21 10158】使用 VideoToolbox 探索低延迟视频编码[4]

@bqlin: 讲述通过 VideoToolbox 最新功能实现低延迟 H.264 硬件编码,最大限度地减少端到端的延迟,并提高性能,实现最佳的实时通信和高质量的视频播放。

【WWDC21 10019】在 SwiftUI 中遇见并发编程[5]

@Edmond: 众所周知,在计算机领域并发是很棘手的一个难题,现在您拥有了管理应用程序中这种复杂性的工具。我们希望您喜欢并了解 Swift 5.5 和 SwiftUI 中出色的新并发工具,我们期待看到您使用它们解决应用程序中棘手问题。

【WWDC21 10134】 探索 Swift 结构化并发[6]

@SZ: Swift 5.5 创新性地引入了结构化并发的概念。同时,也革命性地引入了不同风格的任务、任务树的自动管理机制以及编译时的数据安全检查,极大地降低了并发程序编写难度。尽管最终正式版还是存在更改部分 API 的可能,我们仍然推荐大家先学习并熟悉一下编写 Swift 程序的新方法。

【WWDC21 10017】为 Swift 和 SwiftUI 带来 Core Data 并发[7]

@SZ: 今年 Core Data 上带来了大量的功能增强,其中包括使用了 Swift 并发的新 API。这些变化改善了使用 Core Data 进行 Swift 和 Swift UI 开发的体验,简化了异步数据操作的程序,因此我们推荐大家学习并逐渐开始使用这些新的 API。

新闻

🌟 WWDC.技术沙龙 - 北京地区专场圆满结束

@Parsifal:由 SwiftGG 和快手联合主办的 WWDC.技术沙龙 - 北京专场于本周六在快手总部顺利举办,分享活动吸引了近 200 开发者朋友一起前来学习。本次分享的后续总结工作正在紧锣密鼓地进行中,同时由我们周报主办的杭州场和上海场技术沙龙也将陆续开放报名,欢迎各位同行好友来聚聚。本次活动我们不收取任何费用,除了嘉宾带来的主题分享外,现场更有主办方为每一位到场朋友悉心准备的伴手礼和茶歇,同时周报也将在现场免费赠送 WWDC 21 内参[8] 哦。

文章

🌟 🐕 Concurrency in Swift 5 and 6[9]

@anotheren:来 Swift 官方社区的帖子,介绍了 Swift 并发控制在 Swift 5 和 6 中的展望。Apple 需要考虑将 Swift 生态系统迁移到 Swift 6 会是什么样子,并预计这个过程需要数年时间。在此过程中,Apple 需要确保:

  • Swift 5.x 和 Swift 6 代码可以在并发模型的演进中,良好地相互操作
  • 逐步采用并发模型可以使代码更好维护,也更安全
  • 每个模块、包和程序都可以以自己的速度采用并发控制,而不会不必要地破坏原来的代码

总的来说,Swift 5 中会更加宽松,以能够使并发控制逐步推广开,完成平稳过渡。而 Swift 6 会在需要的情况下要求异步执行的闭包满足 @Sendable (详见 SE-0302 Sendable and @Sendable closures[10])。

🌟 🐕 Xcode 工程文件解析

@老峰:从我们接触 iOS 开发就与 Xcode 工程配置文件 xcodeproj 打交道,本文作者详细介绍了 xcodeproj 文件结构,以及如何 xcodeproj 开源库 解析并修改 xcodeproj 文件,文章主要包含一下内容:

  • Xcode 工程文件组成:xcworkspace、xcodeproj
  • Project 解析、Object Module、Object Attributes、Xcode Object等
  • 通过代码编辑 Xcode 工程

🐕 iOS 14.5 如何用 PAC 保护 Objective-C 对象

@AidenRao:一篇非常硬核的文章,本文介绍了 iOS 14.5 针对 Objective-C 运行时进一步加强 PAC 保护的两处改动。这些保护仅针对系统自带应用和服务启用,目的是防止跨进程和远程代码执行的漏洞利用。

🐕 Flutter IM 跨端架构设计和实现

@CrazyCoderShi:一个非常好的跨端 IM 设计方案,从痛点分析到实施方案,到 DB 同步设计,以及状态管理,应有尽有。有相关业务小伙伴值得仔细阅读,文中很多解决方案可以带来不少参考.

🐕 从探索到实践,iOS 动态库懒加载实录

@红纸:本文是 58 同城对于 APP 模块动态化的实践总结,对方案定制、实现流程、方案结果对比、量化收益等多个方向进行描述。由于动态库的吸附性,团队整理完依赖树,选用自下而上的方式,将模块逐一动态库。并使用懒加载的形式加载动态库,而非启动加载,降低了启动耗时。

🐕 WWDC21 Ultimate application performance survival guide[11]

@Leo:性能是客户端永远绕不开的话题, 所以 WWDC 每年都会有很多 session 是关于性能的。这个 session 更像是一篇概述,讲解了苹果提供的性能相关监控、工具和诊断,推荐对性能感兴趣的同学阅读。

  • 推荐人:GCSNNB

🐕 Code Signing - iOS 代码段的校验机制分析

@Smallfly:从 iOS JIT 遇到 Crash 的神仙打架,到 iOS 代码段的校验机制。本文作者高级页面仔,从内核源码着手,详细地分析了 iOS 代码段合法性校验的时机和过程。最终给出了 Crash 的原因,并介绍了连接调试器和越狱环境下 JIT 不会 Crash 的实现原理。

🐕 听说你想写个 Lisp 解释器

@折腾范儿_唯敬:我们使用的编程语言,我们写下的代码,本质上就是一行又一行的字符串,而这些字符串到底是如何工作的,这本是属于编译原理范畴。很多书或者有些文章也会介绍到“词法分析/AST/解释执行”之类的高大上的概念,稍微有些抽象也有些晦涩。但是本文作者 silan-liu[12] 从一个最基础最简单的 Lisp 语言入手,从 0 开始用 swift 写了一个解释器,在这个过程中你可以看到从分词到解析,再到生成 AST 的全部代码过程,亲自感受一遍代码被理解被执行的过程,相信会比书本上抽象的概念更容易吸收和理解。注:本文是该文章的第一篇,写到了生成抽象语法树 AST,而 AST 的执行运算出最终的结果,还请继续期待作者的下一篇文章。

摸鱼周报

@摸鱼周报 #14:本期我们整理了一些包体优化的方案,从资源到代码层面,涉及的 Tips 很多,为了便于观看和记忆,我们将其制作成一张思维导图。开发者账号的续费问题最近有好几个小伙伴都有遇到,我们将其中的注意事项做了一个整理。

概念篇开始整理一些 Web 前端知识,介绍了 React、Vue、React Native 这几个概念,还附带了一些代码片段,实际学习之前可以给大家带来一个初体验。

资料内容收录了一个 Github 仓库 Newbie Security List[13],其中整理了网络安全相关的博客、工具、电子书籍资料、在线知识库、在线漏洞库等内容。

@摸鱼周报 #15:本期介绍了几个去掉导航栏返回按钮文案的实现方案;还有个系统自带的命令行工具 plutil,通常我们将其用于打包脚本设置版本号,但它还可以用来检查多语言文件的格式问题。处理繁杂且巨大的多语言文件,自动化工具永远是最佳助手。

概念篇 Web 前端知识第二弹:BootStrap、Webpack、Flutter。

博客篇整理了一些逆向和签名相关文章,虽然不是新文章,但篇篇都是精品,值得反复阅读。

资料内容收录了一个国外的网站:SwiftLee[14],一个分享关于 Swift、iOS 和 Xcode 技巧和窍门的周更博客,博客的文章写得清晰易懂,排版、配图和动画质量也很高。

赞助者

虚位以待..

非常感谢以上赞助者的支持,如果你也有赞助我们的兴趣,欢迎添加微信 iTDriverr 哦~

内推

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

如果你想找工作,点这里:https://www.yuque.com/iosalliance/article/bhutav

如果你想招人,点这里:https://www.yuque.com/iosalliance/article/ycyhf3

当然,也欢迎你关注我们每一期的周报,我们会在每期周报底部及时更新编辑内推岗位。

关注我们

我们开通了公众号,每期发布时公众号(LSJCoding)会推送消息,欢迎关注。

老司机技术周报

每周定期整理与发布业界资讯、开发工具、开源代码、学习资料、求职招聘信息。
238篇原创内容
公众号

同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。

说明

🚧 表示需某工具,🌟 表示编辑推荐

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

参考资料

[1]

新技术和已有框架的重点变化: https://developer.apple.com/documentation/New-Technologies-WWDC-2021

[2]

【WWDC21 10114】 初见 StoreKit 2: https://xiaozhuanlan.com/topic/6138790425

[3]

【WWDC21 10101】使用 ReplayKit 记录你的高光时刻: https://xiaozhuanlan.com/topic/1068759324

[4]

【WWDC21 10158】使用 VideoToolbox 探索低延迟视频编码: https://xiaozhuanlan.com/topic/2530964187

[5]

【WWDC21 10019】在 SwiftUI 中遇见并发编程: https://xiaozhuanlan.com/topic/2957164803

[6]

【WWDC21 10134】 探索 Swift 结构化并发: https://xiaozhuanlan.com/topic/3625784190

[7]

【WWDC21 10017】为 Swift 和 SwiftUI 带来 Core Data 并发: https://xiaozhuanlan.com/topic/4625791038

[8]

WWDC 21 内参: https://xiaozhuanlan.com/wwdc21

[9]

Concurrency in Swift 5 and 6: https://forums.swift.org/t/concurrency-in-swift-5-and-6/49337

[10]

SE-0302 Sendable and @Sendable closures: https://github.com/apple/swift-evolution/blob/main/proposals/0302-concurrent-value-and-concurrent-closures.md

[11]

WWDC21 Ultimate application performance survival guide: https://gcsnnb.github.io/2021/06/09/APP%E6%80%A7%E8%83%BD%E7%BB%88%E6%9E%81%E7%94%9F%E5%AD%98%E6%8C%87%E5%8D%97/

[12]

silan-liu: https://github.com/silan-liu

[13]

Newbie Security List: https://github.com/findneo/Newbie-Security-List

[14]

SwiftLee: https://www.avanderlee.com/

(0)

相关推荐

  • 我们花钱订阅了这些 App:能备份微信的 Swift Backup、第三方微博之光 Share……

    本期我们特意邀请了几位编辑来聊聊他们所订阅的服务以及使用起来的感受.

  • 苹果 WWDC15 终极观看指南

    谷歌 I/O 大会的热度还未散尽,一年一度的苹果 WWDC 又要来了.北京时间明天凌晨 1 点,WWDC15 将在位于美国旧金山的 Moscone 会展中心开幕. 一.回顾 WWDC14 WWDC14 ...

  • WWDC19苹果发布会,谁说程序员不能做设计?SwiftUI、AR 3 、ML 3

    WWDC19苹果发布会,谁说程序员不能做设计?SwiftUI、AR 3 、ML 3

  • 苹果将于6月22日举办WWDC20,iOS 14将首次亮相

    苹果官方今天正式公布WWDC20将会在6月22日举办,这已经是苹果举办的第31届开发者大会.因为受到新冠肺炎疫情影响,苹果的第31届开发者大会将会以在线的方式举办,这也是这么多届以来第一次以这种方式举 ...

  • 优化总结:有哪些APP启动提速方法?

    一  通过 Universal Links 和 App Links 优化唤端启动体验 App 都会存在拉新和导流的诉求,如何提高这些场景下的用户体验呢?这里会用到唤端技术.包含选择什么样的换端协议,我 ...

  • 苹果 iPadOS 15 上手:更全面、更好看,谈生产力仍需再等

    熬夜看完 WWDC 2021 演讲的你,是否跟我一样有种「就这?」的感觉. 万众期待的.本该赋予 M1 版 iPad Pro 更多生产力的 iPadOS 15 系统,并没有如愿变成我们想要的模样,对, ...

  • 苹果的野心:通过iPad培养下一代开发者 儿童也可以做游戏

    文/游戏陀螺 月夜猫.罗伊 北京时间6月14日凌晨1点,WWDC2016苹果开发者大会在美国召开.对于普通用户来说,这场大会明显惊艳不足,但对iOS开发者来说却足够让他们兴奋,因为苹果在开放.整场发布 ...

  • 下周运势抢先知!(2021.06.21—06.27)

    大家好,又到了下周运势早知道的环节了.我们一起来看! 2021年06月21日 星期一  农历五月十二 辛丑年[牛年]双子座 岁煞南 鼠日冲(甲午)马 九星:四绿-招摇星(木)-安神 宿名:西方毕月乌- ...

  • 十二星座明日运势(2021.06.21)

    白羊座 宜:只要想改变,任何时候都不晚 忌:频频回头是最徒劳的事 金牛座 宜:别迷茫别着急,要一步步前行 忌:说都不说别人怎么会知道呢 双子座 宜:有些人,只可远观不可靠近 忌:还是容易被别人的三言两 ...

  • 航运新闻早知道 2021.06.21

    N EWS 综合资讯 1.[IMO]国际海事组织海洋环境保护委员会第76次会议(MEPC76)已经确定了2026年可实现的碳强度降低11%的目标.包括日本.韩国.挪威.新加坡.巴哈马和利比里亚在内的主 ...

  • 早啊!新闻来了〔2021.06.21〕

    ○我国新冠疫苗接种超10亿剂次 ○北京长安街10组立体花坛亮相 ○中国女排战胜美国女排 取得七连胜 ○今日,夏至 要闻 按照中央有关活动安排,庆祝中国共产党成立100周年文艺演出<伟大征程> ...

  • 早啊!新闻来了〔2021.06.21〕​

    ○我国新冠疫苗接种超10亿剂次 ○北京长安街10组立体花坛亮相 ○中国女排战胜美国女排 取得七连胜 ○今日,夏至 要闻 按照中央有关活动安排,庆祝中国共产党成立100周年文艺演出<伟大征程> ...

  • 【每日一字】 侧(2488)2021.06.21

    应书友们的要求,今天继续解析田英章先生楷书<虞恭公碑>.需要说明的是,单字是从田英章楷书字汇里摘取制作的,与作品里的字稍有不同,望书友们明鉴.已解析过的字请在本公众号里(从主界面里进入)查 ...

  • 白银、美元走势分析 2021.06.21

    美元指数   美指因为美联储有意向提前加息,市场理解为美联储的宽松货币政策正在改变,因此,美元指数连续大幅上涨.即便是美元在2022年以后开始加息,美元超发也是存在的,加息无法改变这个事实. 美国通胀 ...

  • 李战哲老师跑步日记【第1604篇跑步日记丨2021.06.21】

    辛丑年 牛甲午月 庚子日 跑步日记 2021-06-21 星期一 五月十二 多云 东南风3~4级 温度 21 ~ 36℃ 空气质量 46 优 ★ 7时28分 北京今天晴天,气温25度,在楼下进行热身后 ...

  • 2021/06/21【络脉】络损百病生

    健康谈 1251篇原创内容 公众号 络脉 脑梗.冠心病.恶性肿瘤.老年痴呆.帕金森等疾病看似不相关,但它们都有同一个起始点--"百病之源"."百病之源"是什么呢 ...