可能性のある重複:
MonoTouch対Objective-C for iPhone/iPod/iPad開発
C#開発者として、Java Androidのために開発するか、代わりにMonoDroidを使用しますか?
MonoTouchとMonoDroidという名前のツールを使って、c#コードを使用してAndroid、iPhone、iPod用のアプリケーションを作成することに非常に興味があります。
質問:
これらのツールは、さまざまな環境で使用されるアプリケーションを作成するのに十分ですか?
異なる環境ではありません。 Monodroidは、Androidアプリの場合のみ400米ドルです。Monotouch400米ドルは、iOSアプリの場合のみです(iOSの場合は、iOS開発者ライセンスも購入する必要があります(年間100米ドル))。したがって、どちらも非常に環境固有です。
これらのツールは、アプリケーションを作成する元の方法を置き換えることができますか? MonoでAndroid= for Windows Mobile Phoneのアプリケーションを作成する場合と比較して、アプリケーションを作成する場合の違いは何ですか?
いいえ。これらは主にバインディングです。したがって、たとえば、モノタッチの場合は、たとえばコアAPIのiOSバインディングを取得します。 NSStringを使用する代わりに、「c#」文字列を使用します。等々。
したがって、それらは、Windows Phoneアプリ(異なるプラットフォームと異なるAPI)を直接作成することと同じではありません。miguelとそのチームが行うことは、それらすべての間に共有可能な.NETベースを作成することです。これにより、既存のコードを再利用できます。
信頼できる?
まあ、そうだと思います。 Monoは最近のものではなく、mono touchやdroidでもありません。さらに、現在はNovell部門ではなく、会社全体(Xamarin)になっています。だからなぜ信頼できないのかわかりません。私たちは数年前からそのツールを使用しており、すばらしいです。
[〜#〜]しかし[〜#〜]
プラットフォームから始めたい場合は、そのAPIを直接使用することをお勧めします。 Android開発を行っている場合は、JavaとAndroidのSDKの両方をiOSに使用します。なぜですか?ええと、同じことではありません。バインディングが再実装されるまで、それらのバインディングが完全に実装されるまで委任されます。たとえば、新しいiOS 5 SDKが4000の新しいAPIを公開する場合(頻繁に発生します)、それぞれのバインディングが実装されるまで(Xamarinチームによって)待機する必要があります。発明と再発明として。
thisなぜこのツールが存在するのですか?
基本的にはレガシーサポートのためだと思います。少なくともそれが私たち(会社として)がそれらを使用する理由です。再実装できない大規模なコードベース(.NETコードベース)のクライアントがあるため、monotouchを使用すると、その大部分を移植できます。
確かに、それらは他のものに最適ですが、それは私の意見です。
ユーザー(開発者)がかなり悪い立場になる前に、XamarinがすべてのMonoおよびMonoTouchの権利を取得したことは信頼できることですが、今ではすべてが明確です
これらのツールは、ネイティブの代替手段(Objective-CおよびJava)よりもはるかに優れています。そうです。アプリケーションを作成する元の方法を完全に置き換えることができます。それだけでなく、元の言語よりもはるかに優れた機能を果たすだけでなく、単一の言語を使用してすべてのプラットフォーム用のアプリを作成する
Android対WP7またはiPhone向けのアプリを作成することは非常に異なります。これらは非常に異なるプラットフォームです。共有できるコードはロジックのみです。そのため、プレゼンテーション層。サポートしたいプラットフォームごとに作成する必要があります。
これらは信頼できますが、相互コンパイル可能ではないことを覚えておく必要があります。 monoTouchアプリを作成してAndroid用にコンパイルすることはできません。 (疎結合の方法で書かれている場合は)コードを再利用できますが、それは少し異なります。