「MonoMac」の版間の差分
編集の要約なし |
|||
| (2人の利用者による、間の6版が非表示) | |||
| 1行目: | 1行目: | ||
'''MonoMac'''(読み:ものまっく)とは、[[Mono]]および[[MonoDevelop]] | '''MonoMac'''(読み:ものまっく)とは、[[Xamarin Studio]]([[Mono]]および[[MonoDevelop]])を用いて[[C Sharp|C#]]で[[Mac OS X]]用の「ネイティブアプリケーション」の開発を可能にする[[統合プログラミング環境]]のことである。 | ||
== 概要 == | == 概要 == | ||
MonoMacは[[iOS]]向けの[[MonoTouch]]の技術をそのまま[[Mac OS X]]に持ってきたものであるといえる。 | |||
2011年3月17日、MonoMac 1.0が公開された。今後、[[F Sharp|F#]]、[[IronRuby]]、[[IronPython]]、[[UnityScript]]といった[[プログラミング言語]]のサポートを進めていくと説明されている。 | 2011年3月17日、MonoMac 1.0が公開された。今後、[[F Sharp|F#]]、[[IronRuby]]、[[IronPython]]、[[UnityScript]]といった[[プログラミング言語]]のサポートを進めていくと説明されている。 | ||
| 10行目: | 10行目: | ||
ただしMonoMacは[[ライセンス]]に[[GPL]]および[[LGPL]]が用いられており、開発した[[プログラム]]を配布する場合は必ず[[オープンソース]]にしなければならないという条件がついている。 | ただしMonoMacは[[ライセンス]]に[[GPL]]および[[LGPL]]が用いられており、開発した[[プログラム]]を配布する場合は必ず[[オープンソース]]にしなければならないという条件がついている。 | ||
そのままでは商用利用できない、[[ソースコード]] | そのままでは商用利用できない、[[ソースコード]]は公開したくない、という人のために[[オープンソース]]化しなくてもよいという[[Xamarin.Mac]]という有償版も提供されている。 | ||
いわゆる資金源である。 | いわゆる資金源である。 | ||
=== Xcode連携 === | === Xcode連携 === | ||
[[UI]]部分の[[デザイン]]には[[Interface Builder]]との連携に対応しているため従来の[[Xcode]]を用いた[[Mac OS X]]アプリケーション開発と基本的に同様である。 | [[UI]]部分の[[デザイン]]には[[Interface Builder]]との連携に対応しているため従来の[[Xcode]]を用いた[[Mac OS X]]アプリケーション開発と基本的に同様である。 | ||
ただし[[MonoDevelop]]経由で[[xibファイル]]を開き[[Interface Builder]]を起動すると、xibファイルが監視された状態となり、[[UI]]を編集し保存した瞬間にまるで[[Visual Studio]]で[[Windows Forms]]をデザイン編集したときのように全自動で[[部分クラス]]が生成されるなど、その連携具合は手動で[[アウトレット]]を書かなければならない[[Xcode]] | ただし[[MonoDevelop]]経由で[[xibファイル]]を開き[[Interface Builder]]を起動すると、xibファイルが監視された状態となり、[[UI]]を編集し保存した瞬間にまるで[[Visual Studio]]で[[Windows Forms]]をデザイン編集したときのように全自動で[[部分クラス]]が生成されるなど、その連携具合は手動で[[アウトレット]]を書かなければならない[[Xcode]]より遙かに優れている。 | ||
=== 日本語周り === | === 日本語周り === | ||
| 29行目: | 29行目: | ||
[[C Sharp|C#]]の[[ソースコード]]から[[Objective-C]]の[[ソースコード]]に変換するという荒技は、かつて[[アドビ]]と[[アップル]]による[[Flash]]によるiPhoneアプリ開発をめぐる紛争の末に制定された[[App Store]]の[[サードパーティ]]締め出し利用規約を強引に回避するために編み出した必殺技である。 | [[C Sharp|C#]]の[[ソースコード]]から[[Objective-C]]の[[ソースコード]]に変換するという荒技は、かつて[[アドビ]]と[[アップル]]による[[Flash]]によるiPhoneアプリ開発をめぐる紛争の末に制定された[[App Store]]の[[サードパーティ]]締め出し利用規約を強引に回避するために編み出した必殺技である。 | ||
<ref>[http://www.atmarkit.co.jp/news/200901/29/mono.html iPhoneでC#アプリが審査に通るワケ - @IT]</ref> | <ref>[http://www.atmarkit.co.jp/news/200901/29/mono.html iPhoneでC#アプリが審査に通るワケ - @IT]</ref> | ||
==利点== | |||
===ガベージコレクションが強い=== | |||
[[Objective-C]]も[[Swift]]も[[ガベージコレクション]]が腐っており実質的には存在しないと思った方がいいレベルの中で唯一まともそうなのが[[MonoMac]]であった。ほとんどのアプリは[[Objective-C]]の[[ガベージコレクション]]でも問題ないが、[[ウェブカメラ]]の[[動画]]を表示や録画、編集などを行うような高負荷かつ[[メモリ]]を喰いまくる[[アプリ]]では特に顕著であった。[[アップル]]のサイトで配布している[[QTKit]]による[[ウェブカメラ]]を制御するサンプルも、実は動きの速い[[動画]]を撮影し続けると[[メモリリーク]]して最終的に[[クラッシュ]]するという<ref>https://developer.apple.com/library/mac/samplecode/QTRecorder/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004043</ref>。 | |||
==欠点== | |||
===APIが欠落している=== | |||
[[Xamarin.Mac]]が登場して以来、[[API]]の更新が止まっており、[[日曜プログラマー]]には世知辛い雰囲気が漂っている。たとえば[[OS X Mavericks]]で[[QTKit]]が廃止され[[AV Foundation]]に移行したがMonoMacでは残念なことになっている。せめて2つ3つくらい前の古いバージョンはMonoMacとして公開してくれたりしないかな。 | |||
== 使い方 == | == 使い方 == | ||
| 39行目: | 47行目: | ||
*[[MonoMac/Resource Bundleを利用する]] | *[[MonoMac/Resource Bundleを利用する]] | ||
*[[MonoMac/ウインドウが閉じる際に処理をする]] | *[[MonoMac/ウインドウが閉じる際に処理をする]] | ||
*[[MonoMac/モーダルウインドウを作成する]] | |||
*[[MonoMac/AppleScriptを実行する]] | |||
*[[MonoMac/リムーバブルメディアの着脱を検知する]] | |||
*[[MonoMac/外部コマンドを実行する]] | |||
この他にも「[[:Category:MonoMac]]」に色々あるかもしれない。 | |||
== 関連項目 == | == 関連項目 == | ||
| 52行目: | 66行目: | ||
{{stub}} | {{stub}} | ||
[[category:MonoMac]] | |||