老司机 iOS 周报,只为你呈现有价值的信息。android
你也能够为这个项目出一份力,若是发现有价值的信息、文章、工具等能够到 Issues 里提给咱们,咱们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。ios
受今年新冠疫情的影响,早些时候苹果就已经宣布今年的 WWDC 会以线上形式继续进行,而如今正式官宣明确了时间为 6 月 22 日。这是第 31 届开发者大会,而今年的 WWDC 又是以全新的线上形式举行,相信也会带来全新的体验。git
忘了 WWDC 19 讲了些啥?欢迎查收周报编辑们参与编辑的专题特辑 - WWDC 19 内参。github
@CrazyCoderShi:Flutter 2020 年的第一个稳定版本发布了🎉🎉🎉,此次的新版本主要以加强稳定和修复历史 Bug 为主。在 iOS 端支带来了 Metal 的支持,使得性能大幅提高,同时对 Flutter 的包体积作了不小的优化,新组件的增长等等。不想看英文的同窗能够看中文版, 一样推荐一块儿发布的 Dart-lang Release Note。面试
SketchK 的一篇数据调研笔记,能够帮助你们看清当前国内 iOS 开发形式。数据库
总的来讲,国外 Swift 社区活跃度已经比 Objective-C 高了,国内大厂也在推动,具有 Objective-C 与 Swift 混编能力,若是你还没上车,如今买票吧。小程序
在移动互联网时代,众多的跨平台、动态化方案,其本质都是在寻找 NA 和 H5 之间的平衡。从渲染层面上,可分为 NA 渲染(RN、Flutter 等),以及 H5 渲染(小程序)。在一个平台型的 APP 里,目前业界最普遍使用的方案就是小程序,由于它能够有效下降生产者和用户的使用成本。小程序做为 H5 渲染流派,灵活性已经被证明,因此性能一直是最受关注的技术点。本文介绍了百度小程序在性能优化方面的实践,从框架启动、小程序包下载、小程序包加载以及渲染等 4 个方面进行了全面的优化。swift
@含笑饮砒霜:启动速度是 App 给用户的第一印象,对用户体验来讲相当重要。本文主要讲述对微博绿洲 App 的启动优化并阐述优化原理,主要从如下两个方面入手:安全
@邦Ben:Flutter 现在已经发布了 1.17 稳定版本,迭代速度还挺不错的。该文大致介绍了一下目前的应用状况,例如:使用最多的国家前五是:印度、中国、美国、欧盟和巴西;在 Play Store 上 Flutter 应用约 5w 个。还介绍了亚洲之外的最大的数字银行 Nubank 选择了 Flutter 的缘由(有视频)。有兴趣能够点进去了解了解。性能优化
@张嘉夫:Facebook SDK 引起了大规模应用崩溃,缘由是 Facebook 服务器向其 SDK 发送了错误的数据,并致使 SDK 中的代码崩溃,进一步致使运行该 SDK 的 app 终止运行。这篇文章提出了第三方 SDK 可能带来的问题,因为它们是在编译时连接的动态库,会让 Facebook、Google 等数据收集、挖掘公司对这些 app 拥有控制能力。Facebook 致使的应用崩溃问题就是该能力的体现,他们似乎拥有了一个 “kill app 开关”。随后做者提出了两种技术解决方案,第一种方案是在不使用 Facebook SDK 的状况下实现 Facebook 登陆,另外一种方案则是将这种类型的 SDK 和主 app 的代码经过“沙盒”进行隔离。最后做者还提出了人为解决方案,例如限制市场部门向 app 添加第三方数据分析代码的权力。
@looping:本文对比了 Flutter Widget 和 CSS 布局原理的差别,客观地分析了二者的优缺点,而且对它俩的优点可否互补也作了进一步的探讨评估,同时还分享了实践过程当中遇到的一些问题和解决方案,对这块技术感兴趣的同窗可顺其思路好好研究一番。
@红纸:近期 Github 推出了四项新功能,以帮助开发社区协同工做:
@EyreFree:本文介绍了 Auto Layout 自 iOS 6 引入后如何发展至今的过程,经过举例方式让读者直观感觉到苹果如何一步步解决 Auto Layout 的约束代码冗长性问题。在您阅读完本文以后,您可能会考虑淘汰第三方布局库,并开始直接使用标准 API。
@JimQ:又到了复习 Block 源码(找工做)的时间,做者从一道 Block 面试题出发,深刻源码为你们剖析 Block 存储域,Block 捕获的变量传递类型,__block 修饰过的变量传递类型及其在 Block 中的存储域变化,并结合 __weak 说明符,探讨如何解除循环引用,避免内存泄露。
@anotheren:Realm 是一个跨平台的移动数据库引擎,在实际业务中,咱们通常会把业务模型和 Realm 的存储模型分开。本文介绍了如何设计协议及其默认实现来快速完成 NSObject
到 Realm Object
的相互转换。对于还处在大量混编阶段的团队,这是一个不错的案例。
@水水:一个基于 lldb 的 breakpoint 命令快速列出 App 的全部 +load 方法的实用小技巧,你们能够收藏起来,万一要用到呢~
@极速男孩:opentrace-ios 是在 iOS 上实现 BlueTrace 协议的一个开源 APP。BlueTrace 一开始是新加坡政府开发的一个便于公共卫生机构使用低功耗蓝牙对 COVID-19 的接触者进行追踪的工具,后来这个协议背影用到了全球。一样这个 APP 有安卓版本,具体能够查看连接。
@J_Knight_:TrampolineHook 是一个能够替换和拦截目标函数的框架。它能够用来查看任意函数的耗时和调用链路以及帮助实现日志功能等等。其流程设计是:
并且在该流程下,能够保证参数寄存器、返回地址等不会错乱。读者也能够从下面的三篇文章(框架做者原创)来看一下该框架的从思路到实现的演进过程:
@xiaofei86:SwiftTrace 是用来追踪 Swift 和 Objective-C 中 non-final 类的方法调用的框架,它是 Xtrace 的 Swift 版本,经过将 Swift 类的函数指针替换为指向惟一汇编语言 “Trampoline” 入口点的指针来完成 Hook。经过 SwiftTrace 除了能够追踪类、实例、协议,还能够为成员函数建立切面,以在执行函数实现以前或以后调用一个闭包,在闭包中你甚至能够修改传入的参数或返回值。
@老峰:Localize 是一个很小的 Swift 实现的运行脚本,来提高本地化工做效率。主要包含:清除空格,按 Key 排序、检测未使用对的 Key、检测缺失的 Key、检测未翻译的 Key、检测冗余的 Key 等功能,使用简单只要在 Build Phases 配置 Run Script 便可,在国际化工做中有相似需求的同窗能够研究一下。
@四娘:Swift by Sundell 的播客访谈这期请了一个重量级嘉宾 Dave Abrahams,他以前是 C++ 委员会的一员,参与过 C++ STL 和 Boost 的早期开发,后来在 Apple 参与了 Swift 的开发,如今在 Google 作 Swift For Tensorflow 的开发。(若是你们记得 WWDC 讲 Swift POP 的那个 Session,讲者就是他)
此次聊了他早期的 C++ 开发经历和 Swift 标准库的一些设计决策,包括王垠在Swift 语言的设计错误吐槽过的 Value Semantic Array,这个决定当时在 Swift 团队内部也引发了成员的强烈反对,对这段故事感兴趣的人很是推荐收听这期播客。
北京 / 成都 - 抖音:应届 / 高级 / 专家 iOS、安卓、Server 都有大量 HC,欢迎
- 应届学生,一块儿和大佬学习撸码姿式。
- 熟练老手,一块儿作有挑战的事情。
- 行业专家,一块儿在抖音这个平台,实现更大我的价值。
保证每一封简历,我都跟进进度,给与反馈。有任何想了解的,能够加我微信: jingmu1994,也能够直接发送简历到 raozhizhen@gmail.com
老司机周报团队联合知识小集和 SwiftGG 翻译组收录了一份靠谱的内推职位。
若是你想找工做,点这里:www.yuque.com/iosalliance…
若是你想招人,点这里:www.yuque.com/iosalliance…
固然,也欢迎你关注咱们每一期的周报,咱们会在每期周报底部及时更新编辑内推岗位。
咱们开通了公众号,每期发布时公众号(OldDriverWeekly)会推送消息,欢迎关注。
同时也支持了 RSS 订阅:github.com/SwiftOldDri… 。
🚧 表示需某工具,🌟 表示编辑推荐
预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)