「MonoMac」の版間の差分
imported>Administrator (→必要なもの) |
|||
1行目: | 1行目: | ||
'''MonoMac'''(ものまっく)とは、[[Mono]]および[[MonoDevelop]]を用いて[[C Sharp|C#]]でMac OS X用の「ネイティブアプリケーション」の開発を可能にする統合プログラミング環境のことである。 | '''MonoMac'''(ものまっく)とは、[[Mono]]および[[MonoDevelop]]を用いて[[C Sharp|C#]]でMac OS X用の「ネイティブアプリケーション」の開発を可能にする統合プログラミング環境のことである。 | ||
− | + | == 概要 == | |
− | + | MonoMacは、[[iOS]]向けの[[MonoTouch]]の技術をそのまま[[Mac OS X]]に持ってきたものである。有償版のみの[[MonoTouch]]とは異なり、MonoMacは完全に無償で提供されている。ただしMonoMacはライセンスに[[GPL]]および[[LGPL]]が用いられているため、そのままでは商用利用できないという人のために商用ライセンスの[[Xamarin.Mac]]という有償版も提供されている。 | |
− | 2011年3月17日、MonoMac 1. | + | 2011年3月17日、MonoMac 1.0が公開された。今後、[[F Sharp|F#]]、[[IronRuby]]、[[IronPython]]、[[UnityScript]]といった[[プログラミング言語]]のサポートを進めていくと説明されている。 |
− | |||
− | + | [[UI]]部分の[[デザイン]]には[[Interface Builder]]との連携に対応しているため、従来の[[Xcode]]を用いた[[Mac OS X]]アプリケーション開発と基本的に同様である。ただし[[MonoDevelop]]経由で[[xibファイル]]を開き[[Interface Builder]]を起動すると、xibファイルが監視された状態となり、[[UI]]を編集し保存した瞬間にまるで[[Visual Studio]]で[[Windows Forms]]をデザイン編集したときのように全自動で[[部分クラス]]が生成されるなど、その連携具合は手動で[[アウトレット]]を書かなければならない[[Xcode]]より何故か遙かに優れている。 | |
− | なお、2012年3月19日時点では、[[MonoDevelop]] | + | なお、2012年3月19日時点では、[[MonoDevelop]]での日本語表示に一手間必要であり、また日本語入力は一切できない。アプリ中に出現する文字列は、多言語対応のためにも[[ソースコード]]に直接日本語を埋め込まず、[[リソース]]で管理しましょうという思し召しに違いない。 |
− | |||
== ネイティブコード == | == ネイティブコード == | ||
− | [[Mono]]と言えば[[.NET Framework]] | + | [[Mono]]と言えば[[.NET Framework]]互換の[[オープンソース]]プロジェクト、その[[.NET Framework]]と言えば[[中間コード]]と[[仮想マシン]]をまず思い浮かべるだろうが、MonoMacが吐き出すのは生粋の[[ネイティブコード]]である。 |
− | |||
− | |||
− | |||
− | C# | + | MonoMacでは[[C Sharp|C#]]で書いた[[ソースコード]]を、ほぼ人間の読めない[[Objective-C]]の[[ソースコード]]に変換し(いわゆる[[トランスコード]])、それを[[Xcode]]で[[ビルド]]する。なお、この一連の動作は[[MonoDevelop]]が[[バックグラウンド]]で行うので[[開発者]]は気にする必要がない。また、この[[ネイティブコード]]寄りな仕様の関係上、[[リフレクション]]などの[[.NET Framework]]特有の一部機能は使えなくなっている。 |
+ | |||
+ | [[C Sharp|C#]]の[[ソースコード]]から[[Objective-C]]の[[ソースコード]]に変換するという荒技は、かつて[[アドビ]]と[[アップル]]による[[Flash]]によるiPhoneアプリ開発をめぐる紛争の末に制定された[[App Store]]の[[サードパーティ]]締め出し利用規約を強引に回避するために編み出した必殺技である。 | ||
== 必要なもの == | == 必要なもの == | ||
24行目: | 21行目: | ||
* Mac OS X 10.6以上 | * Mac OS X 10.6以上 | ||
* Xcode 3以上 | * Xcode 3以上 | ||
− | * Mono | + | * [[Mono]] |
− | * MonoDevelop | + | * [[MonoDevelop]] |
− | + | MonoMacは[[Mac]]上で[[MonoDevelop]]を動かした場合のみプロジェクトの新規作成に出現するようになっている。 | |
== インストール == | == インストール == | ||
55行目: | 52行目: | ||
=== [[MonoDevelop]]をインストールする === | === [[MonoDevelop]]をインストールする === | ||
− | + | MonoDevelop公式サイトより最新バージョンを[[ダウンロード]]してください。 | |
インストールはインストーラーの指示に従うだけです。 | インストールはインストーラーの指示に従うだけです。 | ||
70行目: | 67行目: | ||
== 参考文献 == | == 参考文献 == | ||
− | + | {{reflist}} | |
== 外部リンク == | == 外部リンク == | ||
+ | * http://www.mono-project.com/MonoMac | ||
+ | * https://github.com/mono/monomac/ | ||
{{stub}} | {{stub}} |
2012年12月18日 (火) 16:28時点における版
MonoMac(ものまっく)とは、MonoおよびMonoDevelopを用いてC#でMac OS X用の「ネイティブアプリケーション」の開発を可能にする統合プログラミング環境のことである。
目次
概要
MonoMacは、iOS向けのMonoTouchの技術をそのままMac OS Xに持ってきたものである。有償版のみのMonoTouchとは異なり、MonoMacは完全に無償で提供されている。ただしMonoMacはライセンスにGPLおよびLGPLが用いられているため、そのままでは商用利用できないという人のために商用ライセンスのXamarin.Macという有償版も提供されている。
2011年3月17日、MonoMac 1.0が公開された。今後、F#、IronRuby、IronPython、UnityScriptといったプログラミング言語のサポートを進めていくと説明されている。
UI部分のデザインにはInterface Builderとの連携に対応しているため、従来のXcodeを用いたMac OS Xアプリケーション開発と基本的に同様である。ただしMonoDevelop経由でxibファイルを開きInterface Builderを起動すると、xibファイルが監視された状態となり、UIを編集し保存した瞬間にまるでVisual StudioでWindows Formsをデザイン編集したときのように全自動で部分クラスが生成されるなど、その連携具合は手動でアウトレットを書かなければならないXcodeより何故か遙かに優れている。
なお、2012年3月19日時点では、MonoDevelopでの日本語表示に一手間必要であり、また日本語入力は一切できない。アプリ中に出現する文字列は、多言語対応のためにもソースコードに直接日本語を埋め込まず、リソースで管理しましょうという思し召しに違いない。
ネイティブコード
Monoと言えば.NET Framework互換のオープンソースプロジェクト、その.NET Frameworkと言えば中間コードと仮想マシンをまず思い浮かべるだろうが、MonoMacが吐き出すのは生粋のネイティブコードである。
MonoMacではC#で書いたソースコードを、ほぼ人間の読めないObjective-Cのソースコードに変換し(いわゆるトランスコード)、それをXcodeでビルドする。なお、この一連の動作はMonoDevelopがバックグラウンドで行うので開発者は気にする必要がない。また、このネイティブコード寄りな仕様の関係上、リフレクションなどの.NET Framework特有の一部機能は使えなくなっている。
C#のソースコードからObjective-Cのソースコードに変換するという荒技は、かつてアドビとアップルによるFlashによるiPhoneアプリ開発をめぐる紛争の末に制定されたApp Storeのサードパーティ締め出し利用規約を強引に回避するために編み出した必殺技である。
必要なもの
- Mac本体
- Mac OS X 10.6以上
- Xcode 3以上
- Mono
- MonoDevelop
MonoMacはMac上で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」「進む」