Objective Sharpie はAaron Bockover氏が開発した,Mono for Objective C SDK用のC#バインディングを生成するツールである。
Objective Sharpieでは,Objective Cのヘッダファイル解析にClangを使用している。自動化された処理プロセスですべてのヘッダをアクセスするため,ほとんどのライブラリに対してバインディングエラーは発生しないはずだ。
氏がObjective Sharpieを開発したのは,OS X LionとMountain Lion用のバインディング作成という面倒な作業を処理するためだ。氏によれば,OS X Lionには "数千もの新APIがある" という。曰く,
この単調な作業への恐怖が,私にツールの開発を決意させたのです。ソースツリーを解析してその細部のひとつひとつにアクセスするために,Clangをライブラリとして使用しました。この情報を使用することで,正当性の検証が可能なバインディングを表すC#コードが生成できるようになったのです。
ここで強調しておきたいのは,私たちがXamarin.MacとXamarin.iOSの開発で使ったものとまったく同じバインディングツールが,Xamarin Studioではサードパーティライブラリ用のバインディングツールとして提供されていることです。今回のObjective Sharpieもこれと何ら変わりありません。新しいAPIの提供の迅速化を支援して,正しいバインディング定義を予め生成することで,エラーフリーを保証してくれます。
注意しなければならないのは,このツールがまだ開発中であることだ。一般的なObjective C言語機能の大部分はサポート済だが,コードジェネレータにはまだ未サポートの部分が残っている。命名規則の修正も行わないので,その部分は手作業で直したいと思うかも知れない。