MonoTouch
MonoTouch(読み:ものたっち)とは、MonoおよびMonoDevelopを用いてC#でiPhoneやiPad、iPod touchといったiOS用の「ネイティブアプリケーション」の開発を可能にする統合開発環境のことである。
現在は「Xamarin.iOS」に改名した。 よって最新の情報は「Xamarin.iOS」の項目を参照せよ。
概要[編集 | ソースを編集]
iPhoneやiPad、iPod touchといったiOS端末実機で動かせる製品版は有償。エミュレーターのみで動かせる体験版は無償。Monoの開発を主導するXamarinの貴重な収入源であり、MonoTouchとMono for Androidのおかげで、他の関連プロジェクトも含め、マニュアルを書く専門の人を雇えるくらい安定して回るようになったという。
ネイティブコード[編集 | ソースを編集]
Monoと言えば.NET Framework互換のオープンソースプロジェクト、その.NET Frameworkと言えば中間コードと仮想マシンをまず思い浮かべるだろうが、MonoTouchが吐き出すのは生粋のネイティブコードである。
MonoTouchではC#で書いたソースコードを、Objective-Cのソースコードに変換し、それをXcodeでビルドする。この一連の動作はMonoDevelopがバックグラウンドで行うので開発者は気にする必要がない。
なお、ネイティブコード寄りな仕様の関係上、一般的な.NETとは若干異なり、リフレクション関連などの一部機能は使えなくなっている。
C#のソースコードからObjective-Cのソースコードに変換するという荒技は、かつてAppStoreのサードパーティ締め出し利用規約を強引に回避するために編み出したものである。
必要なもの[編集 | ソースを編集]
- Mac本体
- Mac OS X 10.6以上
- Xcode 3以上
インストール[編集 | ソースを編集]
インストール方法はMonoMacとほぼ同じである。 MonoMacとの違いはMonoTouch(MonoTouch SDK)のインストールが必要なくらいなので、詳細はMonoMacの項目を参照。
使い方[編集 | ソースを編集]
UIの作成[編集 | ソースを編集]
MonoTouchでは、UIの構築にXcode付属のInterface Builderを用いる。MonoDevelopのプロジェクトの中にあるxibファイルを開くと自動的にInterface Builderが起動するので、Xcodeで開発する場合と同様の手順でUIを作成する。
Interface Builderで配置した各部品にアウトレット(公開名、IBで配置した各部品はprivateなので外部公開用にC#でいうpublicなアクセサを用意するようなもの)を定義し、保存すると、MonoDevelop側がそれを自動認識して.xib.designer.csファイルというクラスが自動生成される。Xcodeの場合は手で書かなければならない面倒な部分を自動でやってくれるという親切設計。
あとはGTK#やWindows Formsで開発する場合と同様に、各部品のイベントにごりごり書いていくだけである。なんとも簡潔。
button.TouchDown += delegate {
label.Text = "Hello World";
};