近来,作为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的示例应用。
UIKit 和 AppKit 两大框架,虽然分别隶属于iOS和OS X SDK,但针对的是同一通用需求:为开发者提供高层API,从而能够方便其创建高级用户界面。不幸的是,最终发布的API接口在诸如事件处理、视图控制器缺省行为、基于NSCell的控件,和 很多其他 基础领域方面 很是不同 。
Apple宣称,这些不同是“OS X应用和iOS用户界面在应用结构及实现方面差异化”的直接体现。更确切地说,这种差异可以细分为三个因素:
虽说如此,iOS和OS X开发者依然 表现出 需要某种面向双平台的统一API,很多第三方库曾尝试解决或试图缓和这一问题,比如 IconFactory’s Chameleon 、 Twitter 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)关注我们,并与我们的编辑和其他读者朋友交流。