forked from SwiftOldDriver/iOS-Weekly
-
Notifications
You must be signed in to change notification settings - Fork 0
/
#4.md
148 lines (77 loc) · 11 KB
/
#4.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# 老司机 iOS 周报 #4
![ios-weekly](../assets/ios-weekly.png)
进行了四期的周报编辑后,目前参与编辑稳定在 7 个人。看到挺多人表示希望我们能够坚持下去,现在我们每人平均花几个小时就足够维护周报的内容,继续做下去应该问题不大。
欢迎来自百度的[@折腾范儿_味精](http://weibo.com/agvicking)加入我们的编辑团队。
感谢来自饿了么的[@mmoaay](https://weibo.com/u/1302422271)为老司机画的 logo,真是 666。
## 新闻
### [库克:将允许 iPhone 6 / 6s / 7 手动解除降速](http://digi.163.com/18/0119/06/D8G91D3R001680N8.html)
持续发酵的苹果电池降频门,苹果再退一步。库克接受采访时表示会在系统中增加一项设置,用户可以禁用苹果为了保护电池而设的降频策略。最新的 11.2.5 测试版中已经可以查看电池状况。
### [微信打赏功能将在 iOS 上回归](http://tech.sina.com.cn/i/2018-01-16/doc-ifyqqieu6753280.shtml)
在「微信公开课 Pro」的主题演讲中,张小龙表示打赏功能将回归,并将修改打赏机制,打赏金额将直接支付给内容创作者。
### [Apple 更新 App Store 网页预览界面](https://itunes.apple.com/cn/app/id911261462)
Apple 在 iOS 11 中对 App Store 进行重新设计,现在终于对网页版动刀,跟上 iOS 上的简洁和卡片式风格。
### [苹果预计下周修正文字讯息漏洞「ChaiOS」](https://cn.engadget.com/2018/01/18/apple-fix-for-chaios-bug-next-week-imessage/)
跟之前的 iMessage 漏洞类似,收到一个特殊链接的短信之后,设备就会重启,主要是因为 iMessage 会自动加载网页信息生成预览界面,在这一个网页里嵌入几十万个不必要的字符就可以系统崩溃,[据悉这个 bug 已经在 iOS 11.2.5 beta 6 里修复了。](http://www.idownloadblog.com/2018/01/18/ios-11-2-5-beta-6-fixes-the-chaios-text-bomb-messages-bug/)
## 文章
### [蜂鸟商家版 iOS 组件化 / 模块化实践总结](https://juejin.im/post/5a620cf5f265da3e36415764)
文章详实介绍了饿了么物流移动 iOS 开发组的 Swift / OC 混编项目「蜂鸟商家版」进行组件化 / 模块化改造的实践历程,有类似需要的同学可以参考一下。
### [iPhone X home button]( http://blog.zats.io/2017/12/27/iPhone-X-home-button)
iPhone X 用来替换物理 home 键的虚拟 home indicator,可能展示在任何一个 view 上,也展示在锁屏界面上,home indicator 背景颜色会根据背后展示的 view 而改变。这是怎么实现的呢?Sash Zats 深入底层来揭示秘密。
### [从 Aspects 源码中我学到了什么](https://lision.me/aspects/)
作者分享了自己阅读 Aspects 代码之后的收获,另外博客里还有几篇 YYKit 的源码阅读分享,质量都很高。
### [iOS 如何进行网络测速](https://juejin.im/post/5a62c2416fb9a01ca713893d)
[@Joy_xx](https://weibo.com/u/5419850564) 大佬的文章,主要分享了两种常见的网络测速方案。文章内容简短,只谈思路,不涉及技术细节。想做网络测速又没有思路的童鞋可以看看。
### [Useful Optional Extensions](https://appventure.me/2018/01/10/optional-extensions/?utm_campaign=Revue%20newsletter&utm_medium=Newsletter&utm_source=AppCoda%20Weekly)
文章分享了各种 `Optional` 的实用扩展。通过这些扩展,可以用更少的代码来实现判断非空、设置默认值、设置默认行为、处理异常、定义多个可选值之间的关系、判断执行以及条件过滤等功能。文章末尾还给了一个例子,通过代码对比的方式,鼓励大家使用扩展 `Optional` 的方式来实现业务逻辑。
### [WebAssembly 的那些事](https://mp.weixin.qq.com/s/lFqvdBvusCcndoBK0-U7kg)
文章介绍了 WebAssembly 这门在浏览器里跑编译后的字节码的神奇技术,可以把 C++ / Rust 编译成字节码下发给浏览器,进行高效的字节码运行,而非传统 JS 解释执行。文章还手把手教你亲自写一个 C,先编译成 asm.js,在生成 wasm 文件执行,也教你把Rust,编译成 wasm 执行。
### [objc - 编译 Runtime 源码 objc4-680](http://blog.csdn.net/wotors/article/details/52489464) [objc - 编译 Runtime 源码 objc4-706](http://blog.csdn.net/wotors/article/details/54426316)
> 从苹果开源网站上,我们可以找到很多有意思的开源项目。objc4 是其中一个,也即我们通常说的 Runtime 源码,我们遇到的 `libobjc.A.dylib` 就是用它编译出来的。
这两篇文章就是介绍如何将从苹果网站上下载的 Runtime 源码,创建工程进行编译,运行,调试,从而更深刻的学习和理解 Runtime 源代码的,并且文章中留有作者的 GitHub 可以直接下载可编译版的 2 套源码。
### [WKWebView 强大的新特性](http://www.cnblogs.com/zhanggui/p/8260136.html)
越来越多的项目逐渐开始使用 WKWebView 进行网页展示,是否苦恼于 WKWebView 对于操作 Cookie 的天坑以及不支持 NSURLProtocol 的弊端?这篇文章介绍了 iOS11 的新 API 为你解决了这些问题,不仅包括操作 Cookie 的 `WKHTTPCookieStore`,处理自定义协议的 `WKURLSchemeHandler`,还有用于广告屏蔽的新 API `WKContentRuleList`。
### [Building for the Blockchain(面向区块链开发)](https://zhuanlan.zhihu.com/p/32914619?iam=7a313be561811283ea95625f373cdd99)
> 在区块链上,你不需要部署任何中心化的服务器,这就意味着单点失败的风险为零。如果你的整个技术栈都是去中心化的,那么就不需要引入“可信”的第三方,而没有第三方则意味着可以 100% 对抗审查。区块链技术带来了数据开放的新机会,基于区块链的去中心化数据库未来可期。
YC 是著名的科技企业孵化机构。发布在 YC 官博上的这篇文章介绍了区块链技术对开发者的意义。
### [给 Bool 扩展一个 Toggle 方法](https://www.objc.io/blog/2018/01/16/toggle-extension-on-bool/)
objc.io 介绍的小技巧,给 `Bool` 扩展一个 `toggle` 方法之后就可以避免 `myVar.prop1.prop2.enabled = !myVar.prop1.prop2.enabled` 这种丑陋的写法了,可以直接写为 `myVar.prop1.prop2.enabled.toggle()`。
并且已经[起草提案](https://github.com/apple/swift-evolution/pull/782/files)给 Swift Evolution 了,这个方法有可能在以后会加入标准库。
### [今日头条算法原理(全)](https://mp.weixin.qq.com/s/DC_hJUbTnLhuCwYVOgVlVw)
今日头条公开了他们推荐算法的原理。介绍了如何做到内容、用户、环境(工作场合、通勤、旅游等不同的场景)的匹配预估。
## 工具
### [CocoaPods 发布 1.4.0](http://blog.cocoapods.org/CocoaPods-1.4.0/)
CocoaPods 发布了 1.4.0,带来了很多强大的功能。如下:
- **Test specs 支持配置 App host**;
- **脚本配置** 支持 Podfile 和 Podspec 配置脚本,CocoaPods 会根据你在Podfile 和 Podspec 的关联脚本描述,自动添加相关脚本到不同的Target;
- **支持静态库** 使用 `use_frameworks!` 同时支持 static framework 和 dynamic framework。只要开源库的作者在 podspec 文件中添加 `s.static_framework = true`,CocoaPods 就会把这个库配置成static framework。同时支持 Swift 和 Objective-C;
- **Podspec 文件可以配置 Swift 的版本号**;
- **过渡到https** 当你发布一个 Pod 不支持 https 的时候,会有一个警告。在未来的某个版本,将不再支持不支持 https 的 Pod。
### [Design+Code](https://itunes.apple.com/cn/app/design-code/id1281776514?mt=8)
Design+Code 是一个教你从零开始设计、开发一款 App 直到在 App Store 上架的 iOS App,不需要任何编程基础。其中包括 iOS 11 的设计理论例如颜色、动画以及为 iPhone X 进行适配等,少见的设计和开发兼具的交互式教学工具,值得一试。
### [cocoapods-packager](https://github.com/CocoaPods/cocoapods-packager)
CocoaPods 官方工具,可以根据现有的 podspec 生成 framework 或 static library,给我们的 Pods 库发布工作带来了更多选择和想象空间。
## 代码
### [SwiftyUserDefaults](https://github.com/radex/SwiftyUserDefaults)
利用 `NSUserDefaults` 存储一些数据在开发中是常用的事。但是每次存取都依赖于字符串类型的 key、类型也不校验,在实际开发中也带来了不小困扰。这个库利用 Swift 的枚举和泛型优化了 `NSUserDefaults` 的使用体验,思路值得借鉴。
### [Turi Create](https://github.com/apple/turicreate)
「Turi Create」是 Apple 的机器学习框架,目前已经开源在 Github 上。它简化了定制机器学习模型的开发。就算你不是一个机器学习专家,也可以在你的应用中添加建议、对象检测、图像分类、图像相似性或活动分类。让开发者更容易的构建机器学习模型。
## 书
### [objc.io 新书「App Architecture」](https://www.objc.io/books/app-architecture/)
本书预计四月完成,但提供「早鸟」版购买,每周可以收到新内容。
## 音视频
### [Swift Unwrapped #42 Conditional Conformance](https://spec.fm/podcasts/swift-unwrapped/105029)
这期很简短,只是简单地聊了一下,之前 Ole 大神发过一篇文章讲了如何查看 Swift 源码,里面讲到了一个代码生成工具 gyb,主要是为了解决 Swift 泛型能力不足的问题,现在实现了 Conditional Conformance 之后就可以重构掉之前很大一部分 gyb 代码。并且**单单只是重构掉 Slice 类型,就已经让 Swift 标准库的二进制文件缩小了 5% 😱**,真是越来越期待 Swift 4.1 的发布了!!!
另外 Swift 的博客还发布了[一篇文章](https://swift.org/blog/conditional-conformance/)专门讲解这个功能,有兴趣的人可以去看看。
## 内推
### [淘宝 - Weex 内核研发技术专家 - 基础平台部](https://job.alibaba.com/zhaopin/job_detail.htm?refNo=GP041921)
Weex 的价值在阿里集团已经得到高度认可。weex 下一步计划是利用 C++ 重写内核。
简历可发送至 [email protected]。
### [阿里巴巴 - 国际技术事业部 - ICBU 技术部 - iOS 高级开发工程](https://job.alibaba.com/zhaopin/position_detail.htm?positionId=38653)
国际事业部在杭州滨江,发展迅速非常缺人。
感兴趣的可以简历发送到曾宪华的邮箱:[email protected]。
### [CSDN 亟需前端开发和后端好手加盟,一起打造程序员新社区](https://weibo.com/1355610915/FEUpVkafe?type=comment#_rnd1516518085805)
> @蒋涛: 老社区的技术债负担不轻,亟需技术开发前端和后端好手加盟 CSDN,一起打造程序员新社区。
## 本期编辑
[@没故事的卓同学](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)
## 说明
🚧 表示需翻墙