写点什么

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

  • 2015-03-15
  • 本文字数:1009 字

    阅读完需:约 3 分钟

近来,作为 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 用户界面在应用结构及实现方面差异化”的直接体现。更确切地说,这种差异可以细分为三个因素:

  • 移动设备的局限性,诸如更小的显示屏、单视窗 UI 模型、CPU 性能和电池等方面的考虑。
  • 触屏手势作为 iOS 的主要交互方式,多少会影响到 UI 对象的使用。
  • 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2015-03-15 06:422901

评论

发布
暂无评论
发现更多内容

写代码的思路

king

Flutter在各平台的安装与配置(Windows,macos,linux)【Flutter 专题 0】

坚果

flutter 签约计划第二季

新能源汽车发展的三种路线及差别

石云升

学习笔记 新能源汽车 11月日更

分布式系统的全局快照

ElvinYang

分布式系统 一致性 全局快照 Chandy-Lamport Flink ABS

掌握这些核心算法,拿不到10个offer你来找我,我锤你个不争气的

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

比较 Flutter 日期选择器库【Flutter专题6】

坚果

flutter 签约计划第二季

Redis分布式锁就应该这样学,精细胞与卵细胞的故事告诉你真实原理!

李子捌

redis 分布式锁 签约计划第二季

Redis集群模式,你若还是一知半解,试试仔细阅读一遍这篇文章

李子捌

redis redis cluster 签约计划第二季

Go语言学习查缺补漏ing Day9

Regan Yue

Go 语言 11月日更

模块六作业

bob

「架构实战营」

面试官:GET能上传图片吗?

喵叔

11月日更

Redis值Sentinel(哨兵)详述,图文并茂才能浅显易懂

李子捌

redis redis sentinel 签约计划第二季

Flutter 状态管理概述【Flutter 专题 7】

坚果

flutter 签约计划第二季

五面阿里拿下飞猪事业部offer,2021新鲜出炉阿里巴巴面试真题

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

GitHub标星139K的:“嵌入式Linux系统开发教程”

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

Flutter 中的一切都是一个小部件【Flutter专题5】

坚果

flutter 签约计划第二季

27 K8S之服务发现

穿过生命散发芬芳

k8s 11月日更

owasp zap 暴力破解测试

喀拉峻

网络安全 安全 信息安全

金三银四面试必备,“全新”突击真题宝典,阿里腾讯字节都稳了

Geek_1df311

Java 程序员 架构 面试

在Flutter中构建图像选择器【Flutter专题9】

坚果

flutter 签约计划第二季

比特币的账户模型

Rayjun

比特币 区块链

网络安全是一门高级学科,如何入门,看这里!

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

阿里内部“SpringCloudAlibaba学习笔记”强势来袭,开创微服务的新时代

Geek_1df311

Java 编程 架构 微服务

六年Java老鸟,写给1-3年程序员的几点建议,满满硬货指导

热爱java的分享家

Java 架构 面试 程序人生 编程语言

46道史上最全Redis面试题,面试官能问的都被我找到了(含答案)

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

DDD与CQRS的关系

Bruce Talk

领域驱动设计 DDD

大专毕业的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

5年crud经验,三个月啃透888页Java王者级核心宝典,竟翻身阿里p6

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

“退微信群”谣言背后:总有人用阴谋论湮没常识

脑极体

Flutter 状态管理Provider快速指南【Flutter 专题 8】

坚果

flutter 签约计划第二季

Redis之主从复制详述,看完这篇文章不再稀里糊涂

李子捌

redis 主从复制 签约计划第二季

UXKit:提供类UIKit API的新框架惊现OS X 10.10.3_Android/iOS_Sergio De Simone_InfoQ精选文章