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
インストール
Xcodeをインストールする
MonoMacは裏でgccやIBを利用するためXcodeが必須です。 Xcodeは巨大なので気長にダウンロードしてください。
Mac OS X 10.6 (Snow Leopard)ではXcode 3.xまでしか対応していないのでXcode 3.x系の最終バージョンであるXcode 3.2.6をアップルのサイトからダウンロードし、インストールする[1]。旧バージョンの入手にはアップル公式サイト上にて無料のデベロッパー登録が必要です。
Mac OS X 10.7 (Lion) 以降はXcode 4.xをMac App Storeから検索してインストールするのが手っ取り早い[2]。
Monoをインストールする
Mono公式サイトより最新バージョンをダウンロードしてください。 インストールはインストーラーの指示に従うだけです。
日本語表示設定を行う
ターミナル(アプリケーション→ユーティリティー)を起動し以下のファイルを作成する。 これをやらないと日本語が文字化けします。
なお、このファイルはMonoのランタイム(MRE)をバージョンアップするたびに消されやがるので、その都度作成すること。MonoDevelopの起動時に「バージョンアップしますか?」と表示されたら要注意。忘れずに再作成しましょう。
$ sudo su
$ echo '"Lucida Grande" = "Hiragino Kaku Gothic Pro"' > /Library/Frameworks/Mono.framework/Versions/Current/etc/pango/pango.aliases
MonoDevelopをインストールする
MonoDevelop公式サイトより最新バージョンをダウンロードしてください。 インストールはインストーラーの指示に従うだけです。
Xcodeのインストール先が標準以外の場合は、MonoDevelopを起動した後、メニューのPreferencesから設定画面を開き、「その他」にある「SDK Locations」の「Apple SDK」にXcodeのインストール先を設定する。チェックマークが赤バツから緑レ点になればパス指定は正しい。
プロジェクトを作ってみる
「ファイル」「新規作成」「ソリューション」「C#」「MonoMac」「MonoMac Project」「進む」