老司机 iOS 周报 #6

3,504 阅读5分钟

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

新闻

从 iOS 11.3 开始 App Store 的评价终于可以排序了

从 iOS 11.3 开始,用户可以根据四个分类来给 App Store 评价排序,分别是“最有帮助”、“最高评价”、“最低评价”和“最新发表”。由于 iOS 11 之前的版本没法给 App Store 评价排序,所以这个改动会很受欢迎,特别是考虑到目前 App Store 会给一部分用户显示最早来自 2008 年的过时的、不相关的评价。

Apple Reports First Quarter Results

苹果公司发布 2018 财年第一季度财报,财报显示,苹果第一财季营收 883 亿美元,较上年同期的 784 亿美元增长 13%,净利润为 201 亿美元,较上年同期的 179 亿美元增长 12%。

相比 2017 年,iPhone 的销量从 7829 万,下降至 7732 万。但平均销售价格从 695 美元增至 796 美元,营收 615 亿美元,较上年同期的 544 亿美元增长 13%。

Apple 宣布因信号问题召回部分 iPhone 7

Apple 已经确认,由于主板上的某个组件发生故障,一小部分 iPhone 7 可能会在状态栏中显示「无服务」。这些受影响的设备生产日期在 2016 年 9 月至 2018 年 2 月之间,售出地为中国内地、中国香港、日本、中国澳门和美国,Apple 将免费维修。

Transporter 支持上传 App 预览信息了

Apple 官方提供的分发工具 Transporter 现在支持上传 App 预览信息了,具体细节请参考 Transporter 用户指南App 元数据规范,注意这两个文档都有中文版。

文章

数据结构 & 算法 in Swift (一):Swift基础和数据结构

学习通用性知识,突破技能瓶颈,@J_Knight_ 开始《数据结构与算法分析 -- Swift 语言描述》的连载.

此文作为开篇,将从 Swift 基础、数据结构开始。讲解一下后续连载中所涉及到的 Swift 语法知识,以及用 Swift 来实现几个简单的数据结构。

🚧 Learn iOS Programming from Top Swift Articles of 2017

MyBridge AI 从 15000 篇文章根据关键词 Swift 挑选出的最受欢迎的 45 篇文章。

Protocol Buffer 序列化原理大揭秘 - 为什么Protocol Buffer性能这么好?

Protocol Buffer 是由谷歌开发并开源。通过两端约定好报文格式,数据传输过程中直接编码成二进制包。因为数据不再自描述,所以数据就小了很多,因此传输效率比 XML、Json 都高很多。本文详细介绍了 Protocol Buffer 提高序列化性能采取的策略和编码规则。

Swift Tip: OpaquePointer vs. UnsafePointer

objc.io 新文章,介绍了为什么将 C 类型导入到 Swift 时有些指针是 OpaquePointer,有些又是 UnsafePointer<struct_type>。如果你在开发中 Swift 需要与 C 交互的话,建议结合 Unsafe Swift: Using Pointers And Interacting With C 一起看。

最近很火的 Safe Area 到底是什么

iOS 11 出来很久了,适配的文章也很多,第一眼看到的时候我会觉得这个时候来写已经挺晚了,但看完之后觉得总结得是最好的,配图跟代码示例都有,重点的地方有加粗展示出来,这篇绝对值得 Mark 下来。

Pragmatic iOS Development: In defence of MVC

社区里广为流传着MVC 意味着非常臃肿的视图控制器,但其实这只是 5 年前 Twitter 上的一个玩笑。

在开发中,大量的元素都需要一个外部委托,如果它们都委托给视图控制器,控制器将迅速的膨胀起来。但我们可以尝试另一种做法,控制器将任务委托给单独的第三方对象,自身不包含任何业务逻辑,只负责根据数据提供 UI 逻辑交互。如此便能使控制器保持小巧灵活。

Writing declarative code using Result Extensions

Result 类型写 Extension 来编写声明式代码,创建高度灵活的代码和声明式 API,易于维护、阅读和测试。

Model-View-Controller without the Controller

觉得 MVC 不好用,想找点新思路?本文详细介绍了作者对传统 MVC 模式进行改造从而构建一种全新 ModelAdapter-ViewBinder (MAVB) 设计模式的历程,并提供了相应示例代码,对架构有兴趣的同学绝对不要错过。

Swift Algorithm Club: Hash Tables

英文的 swift 算法文章,介绍 Hash Table 的基本原理,A hash table is nothing more than an array,文章从数组出发,介绍哈希值算法,数组 Index 计算,处理 index 冲突,值检索等方面,从0用 swift 教你一步步实现一个 hash table

工具

Transformer:EASY iOS NSAttributedString!

一个在线的富文本编辑器,实时编辑富文本,然后转换生成 Swift 或 Objective-C 代码,目前支持 文字粗细划线样式文字大小前景色/背景色文字对齐 等功能,方便好用。

SwiftAI - Generate Model class from JSON

一个 Xcode 插件(也有独立 App),可将 JSON 转换成 Model,支持 CodableHandyJSON

代码

谷歌开源了一个 Promise 框架

标准的 Promise 库,谷歌出品,质量肯定是有保证的,具有轻量,高性能,安全,测试完备的优点。核心是使用 Objective-C 编写的,Swift 的版本是在 Objective-C 的基础上封装了一层(需要注意的是 Swift 版本暂时还无法用 Cocoapods 集成)。

Swift Design Patterns

Hacking with Swift 刚刚发布的 Swift 设计模式书籍 -《Swift Design Patterns》。售价 40 刀,目前包含了 24 个常见的设计模式。附源码,而且会随着 Swift 版本的更新免费升级。属于最佳实践类型的书籍,价格在英文原版书籍中也不算贵,有钱的童鞋可以买了看看。

本期编辑

@没故事的卓同学@四娘@mmoaay@享耳先森@EyreFree@Damonwong@折腾范儿_味精@张嘉夫@AidenRao

说明

🚧 表示需翻墙