写点什么

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:422697

评论

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

C4D梦幻色彩的3种表现方法

Finovy Cloud

C4D

80、90童年回忆之小霸王游戏机网页版

echeverra

小霸王

IntelliJ IDEA安装教程

小齐写代码

数字时代 低代码赋能新零售系统

力软低代码开发平台

六个为Rust构建的IDE

树上有只程序猿

rust语言

当 FineReport 遇见 CnosDB

CnosDB

开源 时序数据库 CnosDB FineReport

全国5000家金融单位将加入信创建设大军,未来数年发展关键期

没有用户名丶

欢迎体验

开源物联卡管理平台-设备管理

物联网 IoT 国际化 通信系统 通信平台

六个实用的软件开发步骤

高端章鱼哥

敏捷开发 软件开发 瀑布开发

源码, AST, IR, CFG之间的关系梳理

华为云PaaS服务小智

云计算 软件开发 华为云

Python 元组完全指南2

小万哥

Python 程序员 软件 后端 开发

Hugging "Hugging Face"

数由科技

低代码 huggingface 大语言模型 huggingfists 多模态模型

聊聊什么是厂商绑定

冯骐

开源 供应链 战略思考 技术 优化体系 厂商绑定

什么是K-均值算法

小魏写代码

Eclipse、IntelliJ IDEA、PyCharm三种IDE区别

小齐写代码

软件测试/测试开发丨App自动化测试-弹窗异常处理

测试人

Python 软件测试 异常处理 弹窗

精彩议程抢先看 | 第四届 CID 大会线下参会报名启动!

OpenAnolis小助手

云计算 架构 深圳 龙蜥社区 CID

运维 | Nginx Proxy Manager反向代理工具

Appleex

运维 nginx反向代理

如何正确使用多线程和锁机制来构建可靠的程序

华为云开发者联盟

后端 多线程 开发 华为云 华为云开发者联盟

一款Redis可视化工具:ARDM | 京东云技术团队

京东科技开发者

redis 可视化工具 企业号10月PK榜 ARDM

OpenHarmony组件内状态变量使用:@State装饰器

OpenHarmony开发者

OpenHarmony

代码检查过程中为什么需要涉及到编译呢?

华为云PaaS服务小智

云计算 软件开发 华为云 代码检查

TE智库|《刻画未来的道路:中国服务机器人产业研究报告》发布

TE智库

服务机器人

BOE(京东方)“照亮成长路”百所智慧教室落地偏远地区 携手故宫启动百堂公益课

科技热闻

深入浅出MySQL MRR(Multi-Range Read)

Java随想录

Java MySQL

Programming abstractions in C阅读笔记:p166-p175

codists

从问界单日7000台,聊聊智能汽车成熟时

脑极体

问界

Databend 开源周报第 113 期

Databend

用 TDengine 3.0 碰到“内存泄露”?定位问题原因很关键

TDengine

时序数据库 内存泄漏 ​TDengine

线程的五种状态

程序员万金游

Java】 #java #java程序员 #java面试

HarmonyOS应用窗口管理(Stage模型)

HarmonyOS开发者

HarmonyOS

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