老司机 iOS 周报 #158 | 2021-05-10

Posted 老司机技术周报

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老司机 iOS 周报 #158 | 2021-05-10相关的知识,希望对你有一定的参考价值。

阅读原文,体验更佳!

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

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

福利

极客时间戴铭老师的「iOS 开发高手课[1]优惠活动截止时间是 5.12,想要购买的读者可以通过周报二维码渠道,不仅享受半价,而且我们会将官方返现的 20 元全额退款给大家。更多详细内容可以参考 - 系统构建自己的 iOS 知识体系

新闻

周报开通视频号了!

@Parsifal:号外号外!!周报编辑组正式开通微信视频号了!为了丰富我们的内容形式,更好地将优质知识传递给大家,我们接下来也会尝试不同的方法。WWDC 2021 临近,我们今年也在考虑更多样化的『WWDC 内参』活动,关注视频号,或许 6 月有惊喜哦(开通直播服务需要 1000+ 粉丝,希望大家多多帮忙!)~

iTDriverr 视频号开通在周报微信号里,欢迎大家添加!

swift-5-4-released[2]

@享耳先森:五一长假前 Apple 随 Xcode 12.5 一起发布了 Swift 5.4 版,除 Result 生成器 等新特性外,5.4 主要集中在编译和运行性能的提升,具体内容也可以参考「知识小集」翻译的这篇文章

文章

???? ???? 美团做 React Native 性能优化的三个关键点

@looping:这是一篇 InfoQ 对美团移动端的采访记录,提到了美团在 React Native 性能优化实践层面的一些经验,以及对于技术框架选型的一些建议。里面讲的有些点还是比较干的,像是预告片,期待之后能在 QCon 大会上稀释下。本文可作为大纲参考,对罗列的问题结合我们自身的实际情况来分析,再看下跟大厂的差距,找到提升空间和下一阶段的演进方向。

???? ???? 解读 Flutter 中热重载原理

@Parsifal:相比于前端圈子,开发调试体验是客户端人员挺头疼的痛点。而近些年 React Native/Weex/Flutter 等跨端框架吸引人的一方面也是其热重载这一开发体验,早之前社区有利用 File Watcher 监听文件变化并通过动态库注入与 runtime 在模拟器上实现热重载的 InjectionIII ,甚至苹果自己也在 SwiftUI 上支持了实时预览。本文则基于 Flutter 源码,解读了 Flutter 是如何用 Dart 语言特性和 DartVM 实现其热重载功能。全文思路比较清晰,如果你也对 flutter 热重载机制有很大兴趣,阅读此文,应该能解决掉不少你的疑问。

???? ???? 干货 | 携程火车票 Flutter 最佳实践

@CrazyCoderShi:本文介绍了携程火车票选择 Flutter 的初衷,Provider  状态管理的实际使用,建议 Flutter 主体的构架采用 MVVM 模式,还介绍了一些 Flutter 性能检测、量化工具和一些性能优化点供大家参考。收集了 Flutter 开发过程中常见并且大量发生的问题,并提供了相应的解决方案。

???? 听说你想写个渲染引擎(布局树 + 绘制)

@xiaofei86:讲述浏览器渲染引擎工作原理的系列文章,代码开源。作者参考了 “动手写浏览器渲染引擎” 系列文章,原文用 rust 编写,作者使用 Swift 进行了重写。

根据渲染引擎的工作流程,分为 “html 解析”、“CSS 解析”、“生成样式树”、“生成布局树”、“绘制” 5 篇内容。在往期周报中,我们已经推荐前 3 篇,本期作者更新了最后 2 篇。至此,本系列已全部完结,感兴趣的读者可以一起动手练习,对我们理解现代浏览器渲染引擎的工作原理会有所帮助。

???? How OrderedSet works[3]

@四娘:新的 Swift Collection 库为我们带来了一些实用的集合数据结构,在这篇文章里作者就为我们分析了其中 OrderedSet 的实现方式。

代码

GetX[4]

@Damienn:GetX 是 Flutter 的一个轻巧并且强大的库。它具有高性能的状态管理、智能的依赖注入和路由管理的能力。并且 GetX 围绕着研发的生产力、高性能和优秀的代码架构这 3 点设计原则去整体性的设计,对于使用 Flutter 的同学不妨一试。

ResponderChain[5]

@红纸:ResponderChain 提供了一种通过响应者链传递事件/数据的新方式,有别于传统 iOS 开发中 delegate 与 block 的形式,无需找到具体实例,即可进行数据和事件的传递。

自荐:GodL

音视频

GGTalk | 某 C:两年前从合肥去广州,两年后从广州回合肥,我为什么放弃一线城市和一线大厂[6]

@含笑饮砒霜:这是一篇值得一听的播客,请到的嘉宾是两年前从合肥去广州,两年后又从广州回合肥的 BNC。这两年在微信工作的 BNC 也谈到了大家比较感兴趣的一些问题,比如在微信的工作体验以及为什么离开微信,微信为什么总是被骂等。逃离北上广还是回到北上广这几年时常会引起社会讨论,这是一个没有标准答案的选择,不管在哪里,遵从自己的内心,我们终将都有光明的未来!

赞助者

虚位以待..

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

内推

哈啰出行(杭州/上海)招聘 资深/专家 iOS 开发工程师,参与哈啰出行 App 的软件架构设计 / 日常迭代开发;负责客户端应用优化及相关领域的技术探索;有大中型项目的开发经验优先,有跨端 (Flutter/ReactNative) 项目开发经验优先,有安全性、性能优化经验的优先。联系方式:邮箱:shishaoyong11215@hellobike.com 微信:CrazyCoder_SY

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

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

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

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

关注我们

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

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

说明

???? 表示需某工具,???? 表示编辑推荐

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

参考资料

[1]

iOS 开发高手课: https://time.geekbang.org/column/intro/100024501?code=0eTznNzpAbVisw%2FesJ9iM9iraIX21mfPuPgxm1jY5tI%3D

[2]

swift-5-4-released: https://swift.org/blog/swift-5-4-released/

[3]

How OrderedSet works: https://oleb.net/2021/ordered-set/

[4]

GetX: https://github.com/jonataslaw/getx

[5]

ResponderChain: https://github.com/GodL/ResponderChain

[6]

GGTalk | 某 C:两年前从合肥去广州,两年后从广州回合肥,我为什么放弃一线城市和一线大厂: https://www.xiaoyuzhoufm.com/episode/6087ff41d99c5b06d55584f7?s=eyJ1IjoiNWU3ZDRiZTBhMmYyZTUwM2NlYzQzZTM3IiwiZCI6MX0%3D

以上是关于老司机 iOS 周报 #158 | 2021-05-10的主要内容,如果未能解决你的问题,请参考以下文章

老司机 iOS 周报 #161 | 2021-05-31

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

老司机 iOS 周报 #165 | 2021-07-05

老司机 iOS 周报 #164 | 2021-06-28

老司机 iOS 周报 #162 | 2021-06-07

iOS 符号化:基础与进阶