新闻
- Apple 确认 iOS 10 Beta Kernel 未加密并非疏漏:本周,有开发者发现 Apple 提供的 iOS 10 Beta 版本的 Kernel 部分没有进行加密,这和以往 iOS 系统的情况并不相同。未加密的 Kernel 将会使开发者和研究人员更容易明白 iPhone 的软件和硬件到底是如何进行交互的,也将导致漏洞更容易被发现。本周 Apple 确认 iOS 10 Beta 中未加密的 Kernel 是有意为之,这样 Apple 将可以借助研究者的力量提供更安全的系统。
- Thunderbolt 显示器产品线将不再继续:Thunderbolt Display 是 Apple 的大屏显示器产品,不过该产品线最后一次更新已经是 2011 年的事情了。在当今 iMac 一体机的显示器已经适配 4K 和 5K 分辨率的当下,可以说这款显示器已经无人问津。Apple 也不打算再继续更新这条产品线,本周 Apple 正式宣布了不再继续出品新的显示器产品。
教程
- 为什么 objc_msgSend 必须用汇编实现:我们知道,在 Objective-C 中对于方法的调用最终会被转换为 `objc_msgSend` 的函数调用,而 `objc_msgSend` 是使用汇编实现的。不过,使用汇编的目的不仅仅是为了更好的性能,这篇文章为我们介绍了 `objc_msgSend` 实现的一些细节和它背后的考虑。
- UICollectionView: Unjustly Maligned :`UICollectionView` 是从 iOS 6 开始引入的用 Grid 来显示数据的一种 view。除了 Apple 提供的默认的 `UICollectionViewFlowLayout` 以外,开发者也可是实现自己的 layout 来进行各种各样的视图布局。`UICollectionView` 可能一直以来都被开发者和设计师忽视,很多时候我们会简单地使用 Table View 来展示数据。然而,为了灵活性和可扩展的考虑,无论何时你都应该优先考虑 `UICollectionView`。本文为我们展示了 `UICollectionView` 的强大之处,以及可以通过自定义 layout 所实现的一些漂亮的效果。
- What’s New in Swift 3? :因为 Swift 3 是开源开发的,所以新版本中的变化大家都已经基本知道了。不过这篇文章还是对 Swift 3 的变化进行了很好的总结,如果你有项目需要从 Swift 2 迁移到 Swift 3 的话,读一读本文将会很有帮助。
开源项目
- Save the Dot :在 iOS 10 中 Apple 引入了 `UIViewPropertyAnimator`,它可以用来控制交互式的 `UIView` 属性动画。这个项目通过 `UIViewPropertyAnimator` 实现了一个通过 UIView 动画构成的小游戏。
- Potatso-iOS :通过 iOS 9 Network Extension 构建的网络代理应用,可以监视和调试通过设备的网络请求。作为一个完整的 app,项目里对于各类第三方框架的使用,Model 的组织方式,以及网络部分的处理都十分值得学习。
- Cartography :一个 Swift 的使用代码书写 AutoLayout 的框架。因为需要考虑到满足所有可能的需求,所以 Apple 自己的 AutoLayout 相关 API 相对起来使用比较麻烦,于是出现了不少对于原来 AutoLayout API 的封装,Cartography 就是其中之一。
- Preheat :iOS 10 中 Apple 为 `UITableView` 和 `UICollectionView` 添加了预先获取 cell 的特性,这样在展示 cell 时我们可以在实际展示之前就提前对 cell 进行加载和布局。Preheat 和这个作用类似,它将在合适的时候询问 delegate 并让你提供机会进行提前处理。你可以将这个框架和一些图片加载的框架一起使用,在实际展示前就完成图片下载。
感谢徐川对本文的审校。
给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论