《不可变对象的魅力》 :在开发中,我们应当尽可能地减少可变对象和状态的存在,这也是 iOS 开发中更倾向和提倡使用 NSArray
或者 NSDictionary
而不是 NSMutableArray
以及 NSMutableDictionary
的原因。作者通过了一个简单的实例和在 ReactJS+Flux 中的类似案例来为我们说明了使用不可变对象背后的思想。
《iOS 比 Android 还不安全? - 记一次和阿里资深安全工程师蒸米的交流》 :随着 XcodeGhost 和有米 SDK 非法获取用户 Apple ID 等事件后,iOS 系统的安全性和开发者的安全意识受到了高度重视。被我们认为安全的 iOS 系统实际上到底安全性如何?作为开发者我们应该做些什么来提高我们的应用的安全性?这篇文章对此进行了一些探讨。
《Key Pinning in Mobile Applications》 :来自 PayPal 安全团队工程师的一篇关于移动应用 SSL key pinning 的分享。Key Pinning 是一种通过安全上下文和标识设置来对 TLS 连接进行验证的方式,用来保证客户端和服务端的通讯加密。
《Exploring Apple’s 3D Touch》 :3D Touch 是搭载在 iPhone 6s 的屏幕压感技术,通过使用 3D Touch 的简单的 API,我们可以实现像是 Peek and Pop 这样的操作或是从主屏幕上访问快捷菜单。但是 3D Touch 并不止于此,新的 SDK 中还有压感系数,施压角度,高度等等一系列 API。虽然大部分参数都是针对于 Apple Pencil 的,但是这些 API 也侧面反映了 3D Touch 的可能性。这篇文章中作者为我们介绍和分析了 3D Touch 中各 API 的使用方式和注意点。
《iOS JSON 模型转换库评测》 :Objective-C 作为一门动态特性极强和和基于运行时的特性,在 model 转换处理上非常方便,这也使 iOS 开发中出现了不少 model 转换的框架。作者将自己的 YYModel 和其他一些 model 转换框架进行了性能评测和简单分析。YYModel 在实现时所考虑的性能上的注意点不仅在框架开发中适用,其实在我们的 app 开发中也一样值得注意。另外,作者的其他几个 开源框架 质量也很高,非常值得一试。
StarWars Animation :一个炫酷的 Star War 碎屏动画特效,想要实现这个效果本身的话其实并用不了多少代码,但是想要在保证运行效率的基础上做到实际可用,就需要花费大量精力和不断尝试了。这个项目分别用 UIView
动画, UIDynamic
,以及 OpenGL 三种方式来进行了实现,并对它们的运行效率进行对比。结果也在大家预料之中,直接使用 OpenGL 拥有最好的效果,而经过层层封装,带有物理特性,写起来也最简单的 UIDynamic
运行最慢。在 这篇文章 中有对性能的进一步分析。
Instructions :在 app 开发中,一步步的引导教程是很常见的开发任务,但同时也是比较无趣和繁杂的部分,因为引导部分的定稿通常会在项目结束之前,这往往涉及到对现有实现的修改甚至 hack。但是引导教程本身又十分重要,它的好坏在很大程度上决定着用户对 app 的第一感官。Instructions 就是一个专门帮助开发者简化引导教程实现的框架,它以比较灵活的方式用标准的 Cocoa 设计思想来实现了简化引导界面的制作。
BEMCheckBox :一系列优雅简洁的勾选框视图。相比于 iOS 系统的 UISwitch
控件,Checkbox 往往只在编辑列表的时候会被使用,如果你想要单独使用类似的 checkbox,其实并不是很容易。这个框架为我们提供了很漂亮的实现,甚至包括各式样的动画效果,十分漂亮。
感谢徐川对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 )。