9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

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

评论

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

Serverless基础知识

阿泽🧸

Serverless 8月月更

开源一夏|要有遥不可及的梦想,也要有脚踏实地的本事

坚果

开源 HarmonyOS OpenHarmony 8月月更

Gitee图床被屏蔽后,我搭建了一个文件系统并封装成轮子开源!

IT学习日记

Java springboot 签约计划第三季 seaweedfs文件系统 Gitee图床崩了

Linux性能调优之内存负载调优的一些笔记

山河已无恙

签约计划第三季

基于微前端qiankun的多页签缓存方案实践

vivo互联网技术

Vue 前端 微前端 qiankun

SRv6 L3VPN的工作原理

穿过生命散发芬芳

8月月更 SRv6

Nacos配置中心之加载配置

急需上岸的小谢

8月月更

LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之一:解题思路

程序员欣宸

LeetCode 8月月更

【SeaTunnel】从一个数据集成组件演化成企业级的服务

Apache SeaTunnel

大数据 微服务 数据处理 数据集成 大数据 开源

SAP 云平台上一种 Low Code Development(低代码开发)解决方案

汪子熙

低代码 云平台 lowcode SAP 8月月更

Android编译系统初探

桑榆

8月月更

一、《图解HTTP》- WEB和网络基础

懒时小窝

图解https

你认同这个观点吗?大多数企业的数字化都只是为了缓解焦虑

雨果

数字化转型 数字化

如何优雅的消除系统重复代码

慕枫技术笔记

设计模式 代码 签约计划第三季 8月月更

STM32+MPU6050设计便携式Mini桌面时钟(自动调整时间显示方向)

DS小龙哥

8月月更

你认同这个观点吗?大多数企业的数字化都只是为了缓解焦虑

雨果

数字化转型 数字化

物无定味适口者珍,Python3并发场景(CPU密集/IO密集)任务的并发方式的场景抉择(多线程threading/多进程multiprocessing/协程asyncio)

刘悦的技术博客

多线程 协程 多进程 Python3 Python.

PDF转Word有那么难吗?做一个文件转换器,都解决了

IC00

C# 签约计划第三季

前端食堂技术周刊第 46 期:Chrome 三方 cookie 计划、npm 引入更多安全增强功能、Awesome Bun

童欧巴

Linux npm Cookie

1对1视频源码——快速实现短视频功能提升竞争力

开源直播系统源码

软件开发 直播系统源码 一对一视频聊天系统

kafka_2.13-3.2.0.tgz配置安装

Cjpler

签约计划第三季

系统可用性:SRE口中的3个9,4个9...到底是个什么东西?

董哥的黑板报

运维 后端 可用性 SRE

毕业作业-设计电商秒杀系统

Fan

#架构实战营

鲲鹏编译调试插件实战

乌龟哥哥

8月月更

学习英语的网站与资料

玄兴梦影

学习 英语

GRPC MacOS M1 处理器的问题

HoneyMoose

mysql进阶(二十一)删除表数据与数据库四大特性

No Silver Bullet

MySQL 8月月更 四大特性 表删除

【Go实现】实践GoF的23种设计模式:迭代器模式

元闰子

Go 设计模式 迭代器模式

Python 教程之输入输出(1)—— 在 Python 中接受输入

海拥(haiyong.site)

Python 8月月更

好好活就是做有意义的事,有意义的事就是好好活

宇宙之一粟

8月月更

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