新闻
- WWDC 16 会议结束,四大平台新系统推出,Apple 生态继续完善:WWDC 16 已经于上周结束,在 Keynote 上,Apple 发布了 iOS,macOS,watchOS 和 tvOS 四个系统的新版本。在新版本的 iOS SDK 中,新加入了 SiriKit 和一系列 extension 相关的 API。另外,开发者工具,现存的 API 的改进和 Swift 语言的新版本的特性也在开发者大会中有所提及。和以往一样,Apple 也在第一时间提供了会议所有 session 的视频,如果您想要了解更多关于 WWDC 16 的内容,可以前往视频页面进行查看。
- Apple 表示暂时没有开发 Android 版 iMessage 应用的计划:在 WWDC 上,新版本 iOS 的一大亮眼功能就是信息应用的全面加强。现在用户可以在信息应用中输入贴纸,使用全屏效特效等,而第三方开发者也能够通过扩展的方式来创建 iMessage app,来强化和提供官方应用所不具备的功能。而对于一款 IM 应用来说,Android 系统的市场份额是不可忽视的。Apple 表示考虑到用户隐私和机器学习等因素,暂时不可能在 Android 平台推出信息应用。也就是说,官方的信息应用可能在今后一段时间内都还是会处于尴尬和边缘的状态。
- ATS 限制将被加强,明年起将不允许未采用 HTTPS 协议的应用随意上架:App Transport Security (ATS) 是 Apple 在 WWDC 15 时提出的网络安全相关的规定,它限定应用只能通过 HTTPS 的方式访问网络资源,提高了安全性。在本周 WWDC 的网络安全相关 session 中,Apple 表示将收紧限制,从明年起,开发者将不能再随意通过设置来绕开 HTTPS 的限制了。如果你的应用需要访问 HTTP 的未加密网络,需要在审核时提出合理的理由。关于这方面的详细内容,可以参看这篇文章中的描述。
教程
- 开发者所需要知道的 iOS 10 SDK 新特性:一篇对于 iOS 10 中开发者所需要知道的新特性的概述类文章,对 iOS 的发展方向进行了简单的展望。对于不同的开发者来说,WWDC 16 中他们所感兴趣的点可能会有所不同,这篇文章中总结了可能是所有 iOS 开发者在新的 SDK 中都普遍感兴趣的一些方面,如果你没有时间完整地研究所有 session,可以参考这个总结来寻找你的兴趣点。
- UITableview Tip :`UITableView` 是每个 iOS 开发者都会用到的,也可能是最常用到的组件之一。这篇文章先探索了 `UITableView` 背后的一些工作方式的细节,并在此基础上展开,为我们介绍了一些优化 `UITableView` 时的技巧。通过合理的配置和巧妙的优化,用户界面可以达到非常高效的状态。另外,今年 WWDC 也专门针对 `UITableView` 和 `UICollection` 的优化问题有个 session ,想继续深入的读者不妨看看视频,一探究竟。
- Call Directory Extension 初探:CallKit 是 iOS 10 引入的新框架,它可以用来实现提供 VoIP 的无缝拨打和现实,以及来电显示和拦截等功能。本文带领读者简单探索了使用 CallKit 来创建来电拦截的部分 API,整个使用相对来说比较简单,所以相关 API 也没有很大难度。
- GUI Architectures :iOS 应用开发中,用户界面的开发以及他它与应用其他部分如何连接和交互一直是最重要的课题之一。这篇文章不仅仅针对 iOS,它针对所有的 GUI 开发,阐述了各种不同架构方法,包括 MVC、MVVM、VIPER 等等,它们背后共通的思想和原理。在了解常见的 GUI 设计模式之后,再阅读本文会有一种醍醐灌顶,拨云见日的感觉,强烈推荐中高级开发者进行阅读。
开源项目
- AssistantKit :有时候我们需要判别用户使用的设备种类、系统版本或者屏幕尺寸等信息。我们可以使用 SDK 中相关的方法来进行获取,但是系统 SDK 提供的方法存在很难使用,而且不太安全等问题。AssistantKit 是一个这方面的一站式解决方案,你可以用更加符合先进开发的方式来获取这些信息。
- AppDevKit :Yahoo 开源了一系列 Objective-C 的辅助工具集合,其中包括了很多常见的 extension,提供了对于 Cache,AutoLayout 以及其他 100 多个方面的简便方法和现有类的加强。
- Cleanse :Square 开源的一个用 Swift 进行依赖注入的框架。如果你熟悉 Android 和 Java 的话,一定不会对 Square 的几个 Java 框架陌生,比如 okhttp,picasso 和 Dagger。而这次 Square 为我们带来的 Cleanse 就是参考了 Dagger 在 Swift 中实现的依赖注入框架。通过依赖注入的手段,我们可以很容易并且安全地改变既存代码的行为。这不仅在大型应用开发中为我们带来更多灵活性,也对为较复杂的代码编写测试提供了便利条件。
感谢徐川对本文的审校。
给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论