UXKit:提供类 UIKit API 的新框架惊现 OS X 10.10.3

  • Sergio De Simone
  • 刘君

2015 年 3 月 15 日

话题:iOS语言 & 开发架构

近来,作为 OS X 10.10.3 测试版中所发现的新框架,UXKit 引发了热议。有趣之处在于,其 API 与 iOS 中 UIKit 的 API 十分相似,这让很多开发者相信两大平台会因 UXKit 而彼此更加相近。

波兰开发者Michał Kałużny在 GitHub 上托管了一个仓。该仓库中含有一个从 OS X 10.10.3 Photos.app 中所提取的 UXKit.framework 的微小改动版本:该版本中既有展示了与 UIKit 相似度的头文件,又有采用了 UXTableView 和 UXCollectionViewController 的示例应用。

UIKitAppKit两大框架,虽然分别隶属于 iOS 和 OS X SDK,但针对的是同一通用需求:为开发者提供高层 API,从而能够方便其创建高级用户界面。不幸的是,最终发布的 API 接口在诸如事件处理、视图控制器缺省行为、基于 NSCell 的控件,和很多其他基础领域方面很是不同

Apple 宣称,这些不同是“OS X 应用和 iOS 用户界面在应用结构及实现方面差异化”的直接体现。更确切地说,这种差异可以细分为三个因素:

  • 移动设备的局限性,诸如更小的显示屏、单视窗 UI 模型、CPU 性能和电池等方面的考虑。
  • 触屏手势作为 iOS 的主要交互方式,多少会影响到 UI 对象的使用。
  • iOS 中,用户是不能直接访问文件系统的。

虽说如此,iOS 和 OS X 开发者依然表现出需要某种面向双平台的统一 API,很多第三方库曾尝试解决或试图缓和这一问题,比如IconFactory’s ChameleonTwitter TwUI以及UMEKit。不幸的是,三个项目的积极开发已在数年前终止。

综上,对 UXKit 的发现激起了很多人的兴趣,但并非所有人都相信苹果会对外发布 UXKit。即使对外发布,这对改善苹果 iOS 和 OS X 开发来说也是不够的。作为像 OmniFocus 和 Vesper 等很多苹果平台知名应用的开发者 Brent Simmons 对“在苹果公司之外推行该框架,从而将其作为 AppKit 的替代品是否可行”提出了质疑。致力于 SoundCloud 和 Artsy 等 iPhone 应用的 iOS 自由开发者 Robb Böhnke 进一步表示,且不说 UXKit“作为框架会不会公开,即便真的公开,也未必够用。” Böhnke 声明其负面评价主要针对于 UIKit 重绘代码的单线程特性,同时也暗指了新的可选方式,比如近期发布的 React Native

参考英文原文: New UXKit Framework Spotted in OS X 10.10.3 Provides UIKit-like API


感谢赵震一对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

iOS语言 & 开发架构