最近OS X 10.10.3ベータで見つかったUXKitフレームワークが,あちらこちらで話題になっている。興味深いのは,APIがiOS UIKitのものに酷似していることだ。ここから一部の開発者たちは,これら2つのプラットフォームを近付けることができるのではないか,と期待している。
ポーランドの開発者Michał Kałużny氏は,OS X 10.10.3 Photos.appから抜き出したXKit.framework
を少し修正したもの,UIKitと類似性を持ったヘッダファイル,UXTableView
とUXCollectionViewController
を使ったサンプルアプリを,GitHubのリポジトリにホストしている。
UIKitとAppKitは,それぞれiOSとOSXのSDKに含まれる,2つのフレームワークである。どちらも高度なユーザインターフェースを簡単に作成可能な,高レベルのAPIを提供するという,汎用的な要件に対応するものだ。残念ながら公開されているAPI面には,イベントハンドリングやビューコントローラ,デフォルト動作,NSCell
ベースのコントロールなど,多くの部分で根本的な差異がある。
Appleによると,これらの差異は,"OS Xアプリのユーザインターフェースの構造と実装が,iOSアプリのものと大きく異なる"という事実の,直接的な結果だという。具体的には,次のような3つの要素がある。
- モバイルデバイスにはディスプレイのサイズ,単一ウィンドウのUIモデル,CPUパワー,バッテリ考慮といった制限がある。
- タッチジェスチャはiOSの主要な操作手段であり,UIオブジェクトのユーザビリティに影響を与えている。
- iOSでは,ファイルシステムにユーザがアクセスすることはできない。
このような状況にあっても,両プラットフォームに対応可能な何らかの統合APIの必要性は,iOSおよびOS X開発者によってしばしば主張されてきた。その結果,サードパーティによって,問題の解決,あるいは少なくともその緩和が試みられた。conFactoryのChameleonやTwitter TwUI,[3}UMEKitなどはその例だ。しかし残念ながら,いずれのプロジェクトも,積極的な開発は数年前に終了している。
前述のように,UXKitの発見は多くの関心を集めたが,Appleが今後UXKitを公開するかどうか,あるいはAppleがiOSとOS Xの開発を改善する十分なステップになるかどうかでさえ,すべての人々が確信している訳ではない。OmniFocusやVerpserなど,Appleのプラットフォーム用のアプリをいくつも成功させている開発のBrent Simmons氏は,"果たしてこれが,AppleKitを代替することになるフレームワークとして,Apple外部に提供されるかどうかさえ疑問です",と述べている。iOSのフリーランス開発者としてSoundCloudやArtsy iPhoneアプリを開発したRobb Böhnke氏は,さらに一歩踏み込んで,UXKitは"公開フレームワークになるかも知れませんが,もしそうだとしても,それで十分ではありません",と言っている。特に氏は,UIKitの再描画コードがシングルスレッドである点に批判的な発言を向けながら,先日発表されたReact Nativeのような,より新しいアプローチの必要性を指摘している。