最近、この質問(およびそのバリエーション)をよく見ました。私を驚かせるのは、人々がどれだけの頻度で反応するかということですが、答える人がどれほど少ないかです。
私は自分の好みを持っています(両方のスタックを楽しんでいます)が、これがほとんどの「答え」がうまくいかないところです。それは私が欲しいもの(または他の誰かが欲しいもの)についてではありません。
これが私がMonoTouchの価値を決定する方法です-私は客観的になることはできませんが、これは熱狂的ではないと思います:
これは楽しみですか、それともビジネスですか?この分野でのコンサルティングを希望する場合は、399ドルをすぐに戻すことができます。
プラットフォームを裏返しに学びたいですか、それともそのためのアプリを「ただ」書きたいですか?
.Netは、別の開発スタックを使用することで面白味がなくなるほど好きですか?繰り返しますが、私は両方のスタック(AppleとMono)が好きですが、私にとってはMonoTouchのほうがずっと楽しい体験ができます。私はAppleのツールの使用を止めていませんが、それは主に両方のスタックを本当に楽しんでいるからです。私はiPhoneが大好きで、.Netも大好きです。その場合、私にとって、MonoTouchは非常に簡単でした。
Cでの作業は快適ですか?Objective-CではなくC です。Objective- C が Cであるため、問題になります。これは、素晴らしく、ファンシーでフレンドリーなOOバージョンですが、ポインターが好奇心をそそるなら、MonoTouchはあなたの友達です。また、ポインタ(またはCなど)が気に入らなくても、あなたが開発者だと思っている反対意見に耳を傾けないでください。私はIBM ROM BIOS Pocket Referenceのコピーを持って歩き回っていましたが、アセンブリを作成し、コンピューターを面白いビデオモードに強制し、それらのために独自のフォントレンダリングビットと(確かにゴミの多い)ウィンドウシステムを作成していましたが、 QuickBasicの開発者は大げさだと思います。私はQuickBasic dev(残りに加えて)。オタクmachismoに屈服しないでください。Cが気に入らず、ポインタが気に入らない場合、および手動のメモリ管理からできるだけ遠ざけたい場合(そして、公平を期すために、ObjCではまったく問題はありません)。 .. MonoTouch。そして、それのためにガフを取らないでください。
ユーザーまたはビジネスをターゲットにしますか?それは私にはそれほど重要ではありませんが、エッジにはまだ人がいます、そして実際、Appleのスタックを使用すればはるかに小さなダウンロードパッケージを作成できます。私はMonoTouchをいじってみましたが、圧縮された後、約2.7 MBに下がるまともな小さなアプリがあります(アプリを配布するために送信するときに、zipします-アプリがストアからダウンロードされると、再圧縮-アプリが10MBのOTA制限内に収まるかどうかを判断するときは、最初に吸盤を圧縮してください-MonoTouchにはうれしい驚きがあります)。しかし、MTの幸福はさておき、半分のメグとほぼ3つのメグ(たとえば)は、エンドユーザーをターゲットにしている場合に重要になる可能性があります。企業での作業を考えている場合、数MBはまったく問題になりません。そして、ただ明確にするために-私はすぐにMTベースのアプリをストアに提出するつもりですが、サイズはまったく問題ありません。まったく気になりません。でもそれが気になるならあなた、それからアップルのスタックがこれに勝ちます。
XMLは機能していますか?MonoTouch。限目。
文字列操作?日付操作?.Netのすべて、そしてキッチンシンクのフレームワークで私たちが慣れている他の何百万もの小さなことは?MonoTouch。
ウェブサービス?MonoTouch。
構文的には、どちらにも利点があります。Objective-C は、記述しなければならない場所ではより冗長になる傾向があります。ObjCで記述する必要がないC#でコードを記述していることに気づくでしょうが、どちらの方法でもうまくいきます。この特定のトピックは本をいっぱいにするかもしれません。私はC#構文を好みますが、Objective-Cに対する最初のこれは別世界の反応を乗り越えた後、私はそれをかなり楽しむことを学びました。私はそれを少しおしゃべりで楽しんでいます(C#/ Java /などに慣れている開発者にとっては奇妙です)が、私はObjective-Cの形をしたスポットを心に抱いていて、私を幸せにしています。
Interface Builderを使用する予定はありますか?なぜなら、この初期バージョンでも、IBを使用してUIを構築し、コードで使用するための作業がはるかに少ないからです。Objective-C / IBのやり方からステップ全体が欠落しているように感じますが、Objective-C / IBのやり方からステップ全体が欠落していることが原因だと私は確信しています。これまでのところ、私は十分にテストしたとは思いませんが、これまでのところ、MonoTouchは、必要な作業がはるかに少ないため、ここでの勝者です。
新しい言語やプラットフォームを学ぶのは楽しいと思いますか?もしそうなら、iPhoneには多くの機能があり、Appleのスタックはあなたの快適ゾーンからあなたを連れて行くでしょう-一部の開発者にとっては楽しいです(こんにちは-私はそれらの開発者の一人です-私はそれについて冗談を言ってあげます) Appleは苦労しましたが、Appleのツールを使ってiPhoneの開発を学ぶのはとても楽しかったです。
考慮すべきことはたくさんあります。価値はとても抽象的なものです。私たちがコストとそれが価値があるかどうかについて話している場合、答えは私の最初の箇条書きに帰着します:これがビジネスのためであり、あなたが仕事を得ることができれば、あなたはすぐにお金を稼ぐでしょう。
だから...私ができる限り客観的だ。これはあなたが自問するかもしれないことの短いリストですが、それは出発点です。
個人的に(少し客観性を落としましょう)、私は両方を愛し、使用しています。そして、私は最初にAppleスタックを学んでよかった。私がすでにAppleの世界を巡る道を知っていると、MonoTouchを使い始めるのが簡単になりました。他の人が言ったように、あなたはまだCocoaTouchで作業することになります-それはただ.Net化された環境になるでしょう。
しかし、それだけではありません。MonoTouchを使用したことがない人は、そこで止まる傾向があります-「それはラッパーの何とか何とか何とか」-それはMonoTouchではありません。
MonoTouchは、CocoaTouchが提供するものへのアクセスを提供すると同時に、.Netが提供するもの(のサブセット)、一部の人々がより快適に感じるIDE(私はその1つです)、Interface Builderとのより良い統合へのアクセスを提供します、そしてメモリ管理を完全に忘れることはできませんが、ある程度の余裕があります。
不明な場合は、Appleのスタック(無料)を入手し、MonoTouch evalスタック(無料)を入手してください。Appleの開発プログラムに参加するまでは、どちらもシミュレータに対してのみ実行されますが、どちらか一方が非常に望ましいかどうか、そしてMonoTouchが$ 399の価値があるかどうかを判断するには十分です。
そして、熱狂者に耳を傾けないでください-彼らは彼らが反対しているテクノロジーを使用していない人である傾向があります:)