MonoMac
MonoMac(ものまっく)とは、MonoおよびMonoDevelopを用いてC#でMac OS X用の「ネイティブアプリケーション」の開発を可能にする統合プログラミング環境のことである。
iOS向けのMonoTouchの技術をそのままMac OS Xに持ってきたものである。 なおMonoTouchとは違い完全に無償で提供されている。
2011年3月17日、MonoMac 1.0が公開された。 今後、F#、IronRuby、IronPython、UnityScriptといったプログラミング言語のサポートを進めていくと説明されている。
UI部分はInterface Builderとの連携に対応しているため,従来のXcodeを用いたMac OS Xアプリケーション開発と基本的に同様であるが、Interface Builderとの連携具合はなぜかXcodeより遙かに優れている。
なお、2012年3月19日時点では、MonoDevelopでの日本語表示に一手間必要であり、また日本語入力は一切できない。 アプリ中の日本語データは、ソースコードに日本語を埋め込まず、リソースで管理しましょうという思し召しに違いない。
ネイティブコード
Monoと言えば.NET Framework互換のオープンソースプロジェクト、その.NET Frameworkと言えば中間コードと仮想マシンをまず思い浮かべるだろうが、MonoMacが吐き出すのは生粋のネイティブコードである。 MonoMacではC#で書いたソースコードを中間コードにコンパイルした後、さらにほぼ人間の読めないObjective-Cのソースコードに変換、それをXcodeでビルドする。 なお、この一連の動作はMonoDevelopがバックグラウンドで行うので開発者は気にする必要がない。 また、このネイティブコード寄りな仕様の関係上、リフレクションなどは使えなくなっている。
C#のソースコードからObjective-Cのソースコードに変換するという荒技は、かつてMonoTouchがiPhoneアプリ、AppStoreのサードパーティ締め出し利用規約を強引に回避するために編み出した必殺技である。
必要なもの
- Mac本体
- Mac OS X 10.6以上
- Xcode 3以上
- Mono
- MonoDevelop