老司机 iOS 周报,只为你呈现有价值的信息。
新闻
今年 C 语言并没有很强势,只是也没有其他增长很突出的语言,C 的增长率 1.69% 就成为了佼佼者。亚军是 Python ,增长了 1.21%。
2018 年 1 月的排行中,Swift 排名 12,OC 18,相比去年略有提升。
集成过 iCloud, Passbook 或订阅类 iAP 将导致 App 无法转移到别的开发者帐号,即使之前集成过,新版禁用也不行。
美国专利商标局报告显示,苹果已经拿到了 iPhone X 的外形设计专利。不过据最新报道,此专利并非针对「刘海」造型提出,而是著重边框上的按键、天线断点、扬声器等处细节。另外,iPhone X 的「刘海」部分集成了多达 8 个传感器(比 iPhone 8 多 3 个),分别是红外镜头、泛光感应元件、点阵投影器。
Intel CPU 爆出史上最大漏洞。腾讯安全联合实验室的详细的介绍了漏洞的原理和影响。
文章
冰霜的 17 年总结,标题改成《我是如何从霜菜到霜神》也不为过。技术人员都要面对如何成长的问题,冰霜在文章中结合自身介绍了他是如何进行高效学习的,值得借鉴思考。
QUIC(Quick UDP Internet Connections)是基于 UDP 的 WEB 开发协议 TCP + TLS + HTTP2 = UDP + QUIC + HTTP2’s API
,由 Google 开发,希望其取代 TCP,加快网页传输速度。还计划提交至 IETF,成为下一代的正式网络规范。文中详细介绍了 iOS 平台下集成方式及与 HTTP2 的对比数据。
?
非常详细的介绍了 Swift 中并发编程涉及到的概念,你值得拥有。
RN 的导航和跳转一直是一个需要解决的问题。作者总结对比了现有的几个开源方案,并阐述了自己的解决思路。
数字货币已经成为新的风口。文章从技术角度通俗易懂的介绍了比特币的技术原理及基本概念。
随着教育、娱乐等领域付费视频服务的兴起,怎样防止付费内容的流失与传播成为了一个很重要的问题,本文详细阐述并演示了如何在 iOS 11 上实现对用户屏幕录制或镜像操作进行侦测的方法,值得一看。
工具
查看主流 app 都用了哪些第三方服务和 SDK 。
代码
Kickstarter 开源了他们的客户端代码,里面有非常多可以学习的内容,例如:
- AppEnviroment 的抽象:所有状态都用一个全局的
Enviroment
去保存,包括了缓存,设备状态,用户等等,有了这一个抽象的存在就意味着测试时可以随意模拟和切换状态,在测试和监控复现 bug 时非常有用。 - 可运行的文档:使用 Playground 去搭建 API 文档,UI 的格式可以通过 PlaygroundLiveView 即时查看,构建出了一个类 REPL 的调试环境出来。并且每次 pull request 也会尝试编译 playground 里的代码,如果 API 进行了修改,那就让我们知道该更新文档了。美中不足是目前 Playground 对于 framework 的支持很一般,我们使用 Carthage 或者 Cocoapods 的话需要做很多 setup 才行。
- ...
相关资料:
- 在 Kickstarter-iOS 源码中学到的
RxSwift 社区推出的基于 Coordinator 模式的响应式导航框架。
by
基于多维链表实现的 iOS 链式动画库,相比业界另外一个知名 Swift 动画库 ,有如下特性:
- 支持多链式动画,并发执行多条动画链;
- 每个动画节点采用
CAAnimationGroup
实现,从而支持单动画节点复合动画; - 提供 OC 版;
- 侧重于对动画的深度定制。
OOMDetector 是腾讯开源的一个 iOS 内存监控组件,应用此组件可以帮助你轻松实现 OOM 监控、大内存分配监控、内存泄漏检测等功能:
- OOM 监控:监控 OOM,Dump 引起爆内存的堆栈;
- 大内存分配监控:监控单次大块内存分配,提供分配堆栈信息;
- 内存泄漏检测:可检测 OC 对象、Malloc 堆内存泄漏,提供泄漏堆栈信息。
大家在工作中应该经常遇到数据集合更新,然后我们手动 diff 之后刷新 TableView 的情况,但这样的代码重复也容易出错。
DeepDiff 这个框架把这个过程地封装了起来。只要我们直接传入旧的集合和新的集合,然后把 diff 的结果交给 TableView 直接刷新就可以了,下面是代码示例:
let changes = diff( old: oldItems, new: newItems, reduceMove: true)tableView.reload(changes: changes, completion: { _ in })复制代码
并且它在性能方面的表现也很棒,官方的介绍页里有一个简单的性能对比,排名第一。
quicktype 可以根据给出的 JSON 数据推断出数据类型,然后输出具体的类型模型,支持 Swift、C++、Go、Java、C# 等语言。支持 Xcode 9,使用得当可以给我们的开发带来一定的便利。
书
作者是唱吧的音视频架构师。全面的介绍了音视频开发的基础知识,也结合了移动开发的相关技术(FFmpeg、OpenGL ES)进行了介绍。
音视频
?
阿尔法狗(AlphaGo)官方纪录片,全方位展示了人机大战的过程,更尽可能多地揭示了人类思维和未来人工智能的工作方式。
raywenderlich 的付费视频课程(第一部分可以免费观看)。视频课程分为:单元测试基本概念、单元测试实战和 UI 测试实战三个部分。
本期编辑
,,,,
微信打赏
感谢您的支持。
说明
? 表示需翻墙