老司机 iOS 周报 #107 | 2020-03-30

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

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

新手引荐

【译】用UIKit和UIView在视图上执行iOS动画

@8 ] _ ! 9 X n极速男孩:本文介绍了 UIView 中完成动画的几种办法以及各个参数的意义,最终简略介绍了怎么去优化动画的功用。能够参阅原文。

文章

为什么 Debug Information For( j h ?mat 改为 DWARF 能够进a O L K E _ d步编译速度?

@J_Knight_:本文探究了将 Debug Information Format 改为 DWARF 能够进步编译速度的原因。首要介绍了 DWARF 和 dSYM 的生成机遇,以及设置 DWARF with dSYM 与否的产物区别和功用区别,并提供了在不同情况下的功用测试成果。经过本* & K S文能够让咱们对编译器的编译进程、调试器的调试符号查找进程有较为深入的认识,也能够让咱们理解为什么这种优化能够带来编译功用的提高。

微信付出跨渠道软件架构

@莲叔:说起跨渠道,咱们一般想到的都是 RN: 1 T X Z、Weex 这样根据 JS 技能F / x栈的跨渠道技能。但 iOS、Android 都提供了比较友爱的穿插编译东西,使得根据 C/C++ 的跨渠道开发也是十分值得考虑的一个选项。微信付出根据事务逻辑复杂、双端完成不一样导致的高昂的保护本钱的背景下K b W + ? i W,开发了一套根据 C++的跨渠道开发结构,使得中心的事6 ] ( z d s务逻辑都下沉到 C++中,运用同一份代码来完成,取得了十分明显的事务作用。该文对该架构进行了具体的介绍,也有许多关于架构设计进程中u T l @ f的考量的解析,十分有参阅价值。引荐工作中有较多架构工作内容的同学阅读。

Swift 5C : J.2 正式发布 &k = t z 5.3 正在路上

@享耳先森:Swift 5.2F , = x N & 现已正式发布,主要是对错误诊断的增强以及以下两个新特性:

  • SE-0249 Key Pathh : v * ( K * Expressions as Functions
  • SE-0253 Callable values of user-defined$ f % p – G K E nominal types

Swift 5.3 已确J v | R X l x ]定相关计划,专心于质量和功用提高,另外,估计将增加对 Windows 及其他 Linux 发行版的支撑。

Weex、RN 还是 Flutter?资深技能专家与你聊聊阿里跨渠道思路

@looping:本文介绍了跨渠道开发的开展趋势和变化,并提出从研制本钱、灵活性、功用体会这三个视点来考虑怎么挑n * F选适合自己的跨渠道开发结构,同时也介绍了阿里各跨渠道开发结构的开展及运用,以及 5G 时代给移动领域带来的新机会。

手淘 App 怎么落地 Swift ?一边探: C _ { S s 究实践,一边“打怪升级”

@JimQ:上个月周报引荐了从探究到落地,手淘引入 Swift “历险记”,本篇是 InfoQ 对文章作者最新的采访稿。

  1. 首要,更细致的叙述了决议引入 Swift 之前的各种考虑,以及在落地进程中流程和办法的摸索。
  2. 讨论了中国 Swift 生态落后于国外的原因,以及随着 Swift ABI 的稳定,对未来一两年国内生态进步的极大期许。
  3. 最终,谈了年度热点 SwiftUI 和 Flutter,以及移动跨渠道技能的挑选问题。

滴滴正式发布开源客户端研制助手DoKit 3.0,新特性解读

@a I U H红纸:DoKit(DoraemonKit) 是滴滴开源的一D ~ : 9 i X款功用齐全的客户端研制助手。在最新发布的 3.0 版别中,新增了多项新功用:

  1. 接口 Mock:阻拦 APP 的网络恳求进行转发至 DoKit 渠道,回来开发人员预先设定好的数据
  2. 健康体检:该功用敞开后,– ( 7 3DoKit 会在必定间隔时间内去记载 CPU、内存、FP} M $ P ( u i #S 等信息,与此同时会触发式搜集网络、页面卡顿1 q 类数据。将此类数据上传到 DoKit 渠道后能够进行图形化展示剖析
  3. DBView:将咱们的 APP 内数据库同步到 PC,在 PC 上完成的增删改查会同步到 APP 的数据l A O v @ 6 !库内
  4. 函数耗时:采用 Hook objc_msgSend 的方法,来记载每个函数的耗` ( Z ] A * d n b时,并已树形结构输出

假如你的 APP 还没有适宜的 Debug 东西调集,DoKit 值得一试。具体文档请查阅 DoKit 官方文档。

Flutter Platform Channel 运用与源码剖析

@CrazyCoderShi:日常的 Flutter 开发中,假如你想和 Nati x , T y ~ _ Y [ive 层交互,那么 Platform Channel 是i t G . .必经之路,提供方便之余咱们也好P m 7 J 7 D奇其完成原理,底层是怎么操作的,本文多个纬度深度剖析 Platform Channel ,其2 } *间源码剖析更是抽丝剥茧,从更深的层次带你全方位了解 Platfor6 B – 7 t bm Channelt ; u n 2 n |

在 ARC 下对非 ObjC 类型的指针进行操作的编译器陷阱

@kyo:在 MRC(手动办理内存) 时代,内存办理是一件很重要的事,稍有不小心,就可能形成内存走漏乃至 crash 。假如敞开了 ARC 形v 7 ! z X D式,在 backend 阶段会经过几个 ObjcARC Pass 刺进根据引证计数的内存办理句子,从而使咱们不必再去手动 retain 或许 release7 K x m 6 Z 对象,而且,ARC 下的内存办理常常会比咱们手动办理得更好,内存走漏更少。但 ARC 也并不是完全不会犯错,假如某些隐式操作逃过了 ObjCARC Pass 的“火眼2 R 6 q”,可能会生成不配对的 RC 句子,从而导致运行时反常。本文介绍了两种可: i + h能引发 ARC 反常的情况并剖析了原理,也能够让咱们更深入了解 ARC 的底层原理。

代码

SourceKitForSafari

@莲叔:信任关于绝大多数开发同学来说,在挑选把一个 github repo clone 到本地之前,都会在页面上先阅读一下代码,看一下是否能够大约满足自己的要求。但在网页上看代码普遍是比较苦楚的,SouceKit for Safarig r ) B [ A s X 便是0 r # .处理2 . l这个痛点的一个插件,它完成了在阅读器的环境中完成一些基本的 IDE 功用,比方跳转到界说,查看文档以及查看变量界说0 ~ { L W p等功用。合作 OctotreeJ * 2 插件(github 的文件列表插件),信任能够极大的提高 github 的运用体会。我d ] Q现已刻不容缓想要测验一下了。

内推

老司机周Y } r , N I / % W报团队联合知识小集和 SwiftGG 翻译组收录了一份靠谱的内推职s W P z g s E @位。

假如你想找工作,点这里:wwb I – 4 W 0 | Y vw.yuque.com/iosalliance…

假如你想招人,点这里:www.yuque.com/iosalliance…

当然,也欢迎你关注咱 A ] @ 6 N 们每一期的周报,咱们会在每期周5 r V h l w v 9 O报底部及时更新编辑内推岗位。

关注咱们

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

同时也支撑了 RSf R N #S 订阅:github.com/SwiftOldDri… 。

说明

表明需fq, 表明编辑引荐

估计阅读时间: 很快就能读完(F $ Y `1 – 10 mins); 中等 (10 – 20 mins); 慢(20+ mins)