平安好房iOS开发团队技术周报(第二十八期)
本期导读:本期周报主要包括iPhone 6s 意外关机问题计划、APP 缓存数据线程安全问题探讨、如何用私有 API 让 WKWebView 支持 NSURLProtocol 子类、如何解决 JSONKit 引起 RN 的 Crash 等内容。
资讯
1) iPhone 6s 意外关机问题计划 By Apple
Apple 已经确认有部分 iPhone 6s 设备可能会意外关机,符合条件的可以免费更换电池。
开发
1) APP 缓存数据线程安全问题探讨 By 陈振焯
对于 APP 缓存数据线程安全问题,分线程 cache 和数据不可变是比较常见的解决方案,都有着不同的实现代价。前者接口不友好,后者需要配合单向数据流之类的规则或框架才会变得好用。
2) 让 WKWebView 支持 NSURLProtocol By Yeatse
WKWebView 还没有完善到能完全替代 UIWebView 的程度。比如 WKWebView 中的请求却完全不遵从自定义 NSURLProtocol 子类,本文介绍了如何用私有方法解决此痛点。
3) JSONKit makes React Native Crash
在 React Native 0.33 时,我们是通过修改 RN 源代码规避 JSONKit 引起的 Crash 问题;升级到 RN 0.35 后,将 JSONKit.m 中的 *((void **)XXX) 替换成 object_getClass(XXX) 也可解决此问题。
工具
1) 免费抓包工具 mitmproxy By MrPeak
似乎知道 Charles 的同学更多一些,但其实 Charles 有的功能 mitmproxy 基本都有,mitmproxy 还免费,而且对于 terminal 用户来说使用起来更亲近。
2) iCloud 日历垃圾广告清理办法探讨 By Waerfa
近期被黑五的日历垃圾广告干扰,采用文中的『建立分类、设置垃圾广告为刚建立的分类、删除分类』大法清理干净。
其他
1) The Battle Is For The Customer Interface By Tom Goodwin
本文就是下面这段被无数人转载了的话的出处:
Uber是最大的出租车公司,但并不拥有任何车;FB是最大的媒体公司,但不自己生产内容;阿里巴巴是最大的零售商,但没库存;Airbnb是最大的旅馆,但不拥有房产。
互联网成就了这些公司,让他们有能力提供一层看似非常简单的用户界面,大规模地连接供需双方。
@end