「MonoTouch」の版間の差分
imported>Administrator (ページの作成:「'''MonoTouch'''(ものたっち)とは、MonoおよびMonoDevelopを用いてC#でiPhoneやiPad、iPod touchといったiOS用の「ネイティ...」) |
|||
4行目: | 4行目: | ||
== ネイティブコード == | == ネイティブコード == | ||
− | [[Mono]]と言えば[[.NET Framework]]互換のオープンソースプロジェクト、その[[.NET Framework]] | + | [[Mono]]と言えば[[.NET Framework]]互換のオープンソースプロジェクト、その[[.NET Framework]]と言えば[[中間コード]]と[[仮想マシン]]をまず思い浮かべるだろうが、MonoTouchが吐き出すのは生粋の[[ネイティブコード]]である。 |
− | MonoTouchでは[[C Sharp|C#]] | + | MonoTouchでは[[C Sharp|C#]]で書いた[[ソースコード]]を、[[Objective-C]]の[[ソースコード]]に変換し、それを[[Xcode]]で[[ビルド]]する。この一連の動作は[[MonoDevelop]]が[[バックグラウンド]]で行うので[[開発者]]は気にする必要がない。 |
− | [[C Sharp|C#]] | + | なお、[[ネイティブコード]]寄りな仕様の関係上、一般的な[[.NET]]とは若干異なり、[[リフレクション]]関連などの一部機能は使えなくなっている。 |
+ | |||
+ | [[C Sharp|C#]]の[[ソースコード]]から[[Objective-C]]の[[ソースコード]]に変換するという荒技は、かつてAppStoreのサードパーティ締め出し利用規約を強引に回避するために編み出したものである。 | ||
== 必要なもの == | == 必要なもの == |
2012年6月5日 (火) 12:26時点における版
MonoTouch(ものたっち)とは、MonoおよびMonoDevelopを用いてC#でiPhoneやiPad、iPod touchといった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";
};