# 老司机 iOS 周报 #18 | 2018-05-07

![ios-weekly](https://github.com/SwiftOldDriver/iOS-Weekly/raw/master/assets/ios-weekly.png)

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

你也可以为这个项目出一份力，如果发现有价值的信息、文章、工具等可以到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 里提给我们，我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 提出。

## 新闻

### [知识小集推荐的值得关注的 iOS 博客](https://github.com/awesome-tips/blogs)

「 小集 」团队最近利用空余时间，整理了一些我们认为质量高的博客以及博主相关的信息，包括博客、微博、Github，后期我们会加上公众号和小专栏信息。博客的主题不限于移动开发，我们会持续收集各个领域的高质量内容。


## 文章

### 🐕 [计算机系应届生求职指北](https://github.com/easychen/career-guide-for-cs-graduate)

两点之间，直线最短，方向对了，你走的就是捷径。

文章分享了职业规划、校招、求职策略、技术职位选择、语言和技术栈的选择、技术栈的优化、简历的书写等经验，这些东西对于还在学校的计算机系的学生，非常有帮助，早点思考这些问题，未来能走的更顺利。

### 🐕 [50 iOS Interview Questions And Answers Part 5](https://medium.com/@duruldalkanat/50-ios-interview-questions-and-answers-part-5-de6241374a8f)

50 道 iOS 面试题，有一些不错的知识点，还有 part1-4。如果有换工作的打算，建议细看，查缺补漏，技术面试时一些基础知识掌握不全的话很减分的。

### 🐕 [小程序iOS客户端框架——控件事件逻辑框架与控件原生化](http://www.wxapp-union.com/portal.php?mod=view&aid=3942)

作者在文中介绍了微信客户端如何为小程序的运行提供了框架支持，比如事件响应处理，页面缓存机制及控件原生化等。对于小程序实现原理感兴趣的同学可以看一下。

### 🐎 [Delegation in Swift](https://www.swiftbysundell.com/posts/delegation-in-swift)

在日常开发中，我们一直和委托模式打交道。本文介绍了在 Swift 中实现委托模式的几种方式与其优缺点。本文除了介绍老生常谈的 `Protocol` 和 `Closures` 外，还提出通过 `Configuration types` 来使闭包的集合更清晰。

### 🚧 🐕 [Exploring Apps Without Jailbreaking](https://medium.com/@nathangitter/exploring-apps-without-jailbreaking-e932904f9863)

英文文章，作者介绍了如何不越狱来挖掘探索一些 App 的实现，来判断 App 是原生 Native 的，还是 Webview/Phonegap 的，还是 ReactNative 的。通过对比 Button Touch Move 的一些操作，通过对比 Navigation 的切换动画效果，通过系统自带的 VoiceOver 的支持度，通过改变 iOS 系统动态字体，通过断网看查看 App 无网处理方式。有很多种方式可以用于粗略的判断一些 App。通过文中的多处交互细节我们能感受到，不同开发框架的一些‘一般’差异，可以看出大部分的情况下，原生 Native 在细节中的体验是非常的细腻到位的。

但需要强调的是文中介绍的差异不足以做出 100% 肯定的结论，可以作为一个初步的判断与参考。这么多的细节并非是专属于某个框架的能力，其他框架就一定无法实现。只不过因为各个框架有他们常规的开发习惯与特点，有些细节不默认支持并不是做不到，而是出于跨平台的统一策略等原因。各个框架其实也有自己的定制与扩展能力去对这些细节进行定制化的开发。

### 🐎 [Instagram的iOS原生代码热加载技术](https://mp.weixin.qq.com/s/K29u4BDmzKUIvIImyb22Cw)

当年 13 个人就做到 3000 万用户的 Instagram，一直都是通过技术提升效率的标杆。这次介绍了他们原生代码热加载技术的实践，着实是一项令 Native 开发的程序员脸红心跳的技术。

文章介绍了一种基于在模拟器上通过 `dlopen` 来动态加载新模块的技术，配合 ComponentKit 来使得 Native 代码也能像 Weex 和 H5 一样 watch 变更并实时刷新。虽然文中并没有提供能够手把手照做的细节，不过核心的思路都已经阐述，稍加研究应该可以落地。建议做业务较多但缺乏技术产出苦于没好轮子造的同学赶紧上手尝试，说不定今年的晋升就稳了呢？:D

### 🐎 [iOS Springboard Security - Revisited](https://medium.com/@dfplaughton/ios-springboard-security-revisited-f55d7f057e4a)

本文介绍了一种在 iOS 的 App 切换页面替换 / 隐藏 App 原始缩略图的方法，有类似安全需求的同学可以作为参考。类似地，可以实现“后台模糊”效果，比如蚂蚁金服旗下的 [蚂蚁财富](https://itunes.apple.com/cn/app/AntWealth/id1025628019?mt=8) 就采用了类似的安全措施，感兴趣的同学可以参考这里的 [示例代码](https://github.com/EyreFree/VSCAM/tree/master/VSCAM/3rdPart/SecurityStrategy)。

### 🐎 [Facebook 工作体验小记（一）](https://mp.weixin.qq.com/s/2rCfTutHddKDnpwVHxhSPw)

这次 Peak 老师分享了他在 fb 的工作体验，划重点：“我现在认为加班对于企业生长必要性是个彻底的伪命题”。希望国内的老板们早日明白一个企业成功靠的不是加班文化。

## 工具

### [lobe.ai](https://lobe.ai/tour)

Lobe 可以让开发者不需要撰写任何代码，即可为应用程式加入图像或是声音辨识等机器学习功能。开发者只需要将训练资料拖进 Lobe 工具视图中，Lobe 便能自动建立深度学习模型，并开始训练，训练结束之后，便能输出 TensorFlow 或 CoreML 格式，直接在程序上执行，或者模型存储于云端，使用 Lobe 提供的 API 将深度学习能力整合进程序中。

### 🚧 [TeaCode](http://apptorium.com/teacode)

正在处于 Beta 的一个清新的代码段管理 + 文字生成器。相比其他文字生成器，它更懂代码。相比其他代码段管理器，它有灵活的生成规则。目前五折 12 刀，正式发布后的价格为 24 刀。

## 关注我们

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

![](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/qrcode_for_wechat.jpg?raw=true)

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

## 本期编辑

[@没故事的卓同学](https://weibo.com/1926303682/profile)，[@四娘](https://kemchenj.github.io)，[@mmoaay](https://weibo.com/u/1302422271)，[@享耳先森](https://github.com/iblacksun)，[@EyreFree](https://weibo.com/eyrefree777)，[@Damonwong](https://weibo.com/damonone)，[@折腾范儿_味精](http://weibo.com/agvicking)，[@张嘉夫](https://weibo.com/2949394297)，[@AidenRao](https://weibo.com/AidenRao)，[@Parsifal](https://weibo.com/parsifalchang)，[@aaaron7](https://weibo.com/aaaron7)，[@方秋枋](https://weibo.com/100mango)

## 说明

🚧 表示需翻墙，🌟 表示编辑推荐

预计阅读时间：🐎 很快就能读完（1 - 10 mins）；🐕 中等 （10 - 20 mins）；🐢 慢（20+ mins）
