新闻
- Apple 发布 iOS 8.4.1 :本周 Apple 发布了新的系统补丁,主要修正了一些 Apple Music 的问题,以及修复了一些安全隐患。如果不出意外的话,这将是 iOS 8 时代的最后一个补丁。在这一年内,Apple 在 iPhone 上的销售取得了巨大的成功,大屏幕的 iPhone 再一次激活了市场,也成功地将一些原来的大屏安卓用户转化为了 iOS 用户。在系统方面,现在已经有 85% 的设备在运行 iOS 8,可以说 iOS 8 取得了巨大的成功。作为继任者的 iOS 9 即将在秋天和新一代 iPhone 一起发布,让我们开始期待新系统的特性给我们的开发和生活带来的改变吧。
- 自动驾驶汽车?Apple Car?:有资料显示,Apple 正在湾区和硅谷测试一款无人驾驶的汽车,这让人不禁浮想联翩,莫非这会是 Apple Car 或者 iCar 的原型?早有传言说 Apple 有意进军汽车行业,但是到现在为止,我们只看到了 Apple 和汽车厂商合作推出的 CarPlay - 一个能让你配合你的汽车使用 iPhone 的桥接方案。在 Google,特斯拉,以及一些其他科技厂商都在不断尝试在汽车这一传统领域做些什么的时候,我们也有理由相信 Apple 可能也会有所动作。如果这属实的话,我们至少接下来应该还能听到不少关于 Apple Car 的消息,让我们拭目以待吧。
教程
- CloudKit :NSHipster 的一篇文章的中文译文。如果想自己独立制作应用,有时可能需要写一些后端代码。即使对于能够胜任这项工作的移动开发者而言,这不仅意味着要写代码,更多的是长期维护。相比于直接自己书写后端代码,我们可能更倾向于选择一些现有的服务, Parse 和 LeanCloud 就是不错的选择。而从 iOS 8 开始我们现在可以使用 Cloud Kit 框架来作为 app 的后台支持。这篇文章讲述了一些 CloudKit 的基础知识和使用,可以带领你入门这个框架。
- Don’t let your UIViewController think for itself :为 ViewController 瘦身一直是 iOS 开发中的一个热门话题,可以毫不夸张地说,看一个项目水平如何,是否具有优良的可维护性,一个重要的指标就是看项目中 View Controller 的复杂程度和代码行数。如果我们能有效地减少 View Controller 的复杂度,就意味着 app 的实现逻辑会更加清晰,项目可维护性也会更好。作者通过一系列文章介绍了良好的 View Controller 的设计方法,这是其中的一篇,主要基于 MVVM 的模式对 View Controller 的实现和新功能的追加进行了一些讨论。
- Rich Text, Core Text :在 iOS 上,我们可以使用 Core Text 来处理富文本和排版的需求,但是这个框架并不是非常直观,而且有不少小技巧和需要注意的地方。这篇文章介绍了一些 Core Data 的最佳实践和注意事项,如果你在和 Core Text 打交道的话,推荐阅读。
开源项目
- SIFloatingCollection :一个很有意思的项目,它尝试仿照实现了 Apple Music 里风格选择的界面。相比于使用
UIKit
,这个项目可以说是另辟蹊径,使用了SpriteKit
来进行制作和模拟,因此我们也可以很轻易地使用我们自己的形状来重用这个库,以满足设计要求。虽然不能说这个实现十全十美,但是这确实给我们在实现一些动画效果时提供了新的思路,除了UIKit
和UIDynamic
以外,我们还可以直接用像是SpriteKit
和box2d
这样的东西来进行创作。 - Parse-SDK-iOS-OSX :著名的 BaaS 公司 Parse 最近开源了它们的 iOS/OSX SDK。Parse 的服务虽然在国内可能访问速度不是很理想,但是它们在服务的稳定性和 SDK 质量上一直有非常优异的表现。此次开源的 SDK 对于日常工作是 SDK 开发的开发者来说,是一个难得的学习机会。Parse 的存取操作涉及到很多多线程的问题,从 Parse SDK 的源代码中可以看出,这个 SDK 的开发者对 iOS 开发多线程有着非常深厚的理解和功底,让人叹服。我个人推荐对此感兴趣的朋友可以尝试从阅读
internal
文件夹下的两个EventuallyQueue
文件开始着手,研究下 Parse 的底层多线程处理思路。 - Loggerithm :一个在 Swift 中更好地输出 log 的工具。可能并不是所有人都知道,我们在 Swift 中最常用的
println
只会在 Debug 下进行输出,如果我们希望在 Release 版本中留下些什么有用的信息 (比如之后进行调试或确定 bug 时可能会需要) 的话,我们还是只能使用NSLog
才能在系统 log 文件中进行写入。使用这个项目提供的 API 进行输出的话,可以让我们能无缝地在 Debug 和 Release 时使用合适的输出方式;另外,这个框架提供分级输出,配合XcodeColors
的话还可以直接在控制台将不同级别的输出用不同的颜色标记出来,看起来十分方便直观。 - Koloda :Swift 实现的很漂亮的卡片界面和动画效果,对于一些基于卡片的 app 来说,可能是非常好的界面参考。框架的开发者选择了和
UITableView
以及UICollectionView
类似的 API,因此使用起来也非常方便。
感谢徐川对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。
评论