iOS开发周报:Apple 下周发布 21.5 inch 4K iMac,新款键鼠套装有望配备 Force Touch

jopen 9年前
 

新闻

  1. 21.5 寸 4K iMac 即将发布 :据称 Apple 有可能在 10 月 13 日对 21.5 inch 的 iMac 作出更新,将为其配备分辨率为 4096 x 2304 的 4K 显示屏。另外,在 OSX 10.11 beta 版的代码中有人找到了第二代 Magic Mouse 和 Keyboard 的字样,据称新版本外设将配备蓝牙 4.2 以及可能具有 Force Touch 特性。

  2. 《哈利波特 - 增强版》登陆 iBooks Store :哈利波特迷的果粉有福了。J.K. Rowling 和 Apple 达成了协议,将在 iBooks Store 以独占的方式上架《哈利波特 - 增强版》系列图书。这套电子书使用了 iBooks 的互动特性,不仅有图书原文,还包括了互动动画,原画集等内容。而最近 iBooks Store 才刚在中国开业,这对于整个 iBooks Store 生态是一个非常正面的消息。不过遗憾的是,暂时这套图书只在部分国家的 iBooks Store 发售,而中国并不在内。不过其他语言的版本现在似乎也在制作之中,我们还是有希望看到这套书在中国发售的。

教程

  1. iOS 9 by Tutorials :Raywenderlich 每年都会在新的 iOS SDK 发布后出版一本教程,涵盖绝大部分系统的新特性和开发者所需要和应该掌握的新技能,今年也不例外。今年的教程中包括了 Swift 2.0,Spotlight 搜索,多任务以及 UIStackView 等等多方面的内容。虽然教程的售价对于国内开发者可能略高,但是绝对物有所值。入门和中级开发者如果没有时间通看 WWDC 的话,跟随这本教程来学习 iOS 9 SDK 应该是最快的方式之一。

  2. guard & defer :guard 和 defer 是在 Swift 2 中新加入的流程控制关键字,它们的出现丰富了 Swift 的语法,也彻底解决了使用多个 if let 语句使得缩进过深,难以阅读的问题。这篇文章详细讨论了这两个关键字的使用方法和存在的价值。

  3. 使用Xcode查找项目中的中文字符串 :应用想要打开全球市场的话,本地化是必不可少的。如果我们直接一开始就注意了这一点,使用 NSLocalizedString 的话,从源文件中提取需要本地化的字符串是一件很容易的事,但是如果一开始为了省事我们直接硬编码了中文字符串的话,想要在所有文件中一个不漏地找到这些字符串就不那么简单了。这篇文章介绍了如何准确地查找到所有中文字符串的方法。

开源项目

  1. FDStackViewUIStackView 是 Apple 在 iOS 9 SDK 中新加入的一类 UI 控件,也是 iOS 生态中缺失已久的一种布局方式。对于日常 app 开发,不夸张地说,可能 80% 的 UI 都可以使用 stack 的方式来进行布局。而如果我们不使用 UIStackView 的话,即使是最简单的线性布局,我们也不得不依赖于各种约束。但是现在 UIStackView 唯一的缺点就是只能在 iOS 9 上使用,这个项目通过巧妙的方式用自己的一套实现在非 iOS 9 中替换了 UIStackView 的链接和实现,让我们可以在低至 iOS 6 的系统上使用 UIStackView ,并且保持和最新的 iOS 9 上同样的用法和语法。这在现在的兼容和之后的迁移中都有着巨大的价值。

  2. FlagKit :像是在引导用户填写手机或或者是选择语言的时候,我们经常会需要按照用户需要显示国家或者地区的旗帜。这个库包含了设计漂亮,风格统一的一套旗帜,并且按照国家代码进行了编排,使得我们可以很容易地使用用户设备语言来选择和显示对应的旗帜,十分方便。

  3. JSQMessagesViewController :一个聊天界面可能看起来简单,但是实际上需要关心的事情非常多,特别是在涉及到像是图片、链接等内容时。虽然 TextKit 已经大幅帮助我们简化了相关的工作,但是想要写出一个漂亮的聊天框和消息列表依然是费时费力的事情。JSQMessagesViewController 是一个比较成熟的方案,也可以进行一些自定义。如果你的项目里需要一个类似的比较标准的消息体验的话,这个框架会是很好的选择。

  4. swifter :使用 Swift 写的一个简单的 HTTP 服务器。有时候我们可能需要在我们的 app 中运行一个服务端,这样就可以通过其他设备来访问当前 app 中的内容了。不过因为这个框架使用到了一些 Foundation 的内容,所以即使是之后 Swift 开源也还并不能直接实现跨平台的移植,比较可惜。不过从最近 Swift 社区的倾向和积极程度来看,随着 Swift 开源日期的邻近,大家都在准备有一番作为,我们也希望这门语言能继续健康发展下去。