[解決済み】MonoTouchとObjective-Cのどちらを使うか決めるには?[クローズド]
質問
今日、地元の.NetイベントでMonoのセッションを聴いた後、MonoTouchの使用がiPhone開発のための代替手段として「触れ」られました。 C# と .Net に非常に慣れているので、Mono スタックの奇妙さにもかかわらず、魅力的な選択肢のように思われます。 しかし、MonoTouchは400ドルもするので、これがiPhone開発のための方法なのかどうか、少々悩んでいるところです。
MonoTouchとObjective-Cを使った開発の経験がある方、Objective-Cを学ぶよりMonoTouchを使った開発の方が簡単で早く、400ドルの価値があるでしょうか?
どのように解決するのですか?
最近、この質問(とそのバリエーション)をよく見かけるようになりました。私が驚いているのは、人々がどれだけ頻繁に回答しているか、しかし、どれだけ少ないかです。 答える .
私は自分の好みがありますが(両方のスタックを楽しんでいます)、ほとんどの"answer"はここからおかしくなり始めています。私が何を望むか(あるいは他の誰かが何を望むか)であってはならないのです。
モノタッチの価値をどのように判断するかですが、客観的に判断できないのは明らかですが、これは狂信的なものではないと思います。
-
遊びなのか、ビジネスなのか?もし、この分野でコンサルティングをしたいと思ったら、399ドルはすぐに取り戻せるでしょう。
-
プラットフォームを徹底的に学びたいですか、それともただアプリを書きたいですか?
-
別の開発スタックを使うと楽しみがなくなるほど、.Netが好きですか?繰り返しになりますが、私はどちらのスタック(AppleとMono)も好きですが、MonoTouchはその経験をより楽しいものにしてくれます。私はAppleのツールを使うのをやめてはいませんが、それは主に以下の理由からです。 本当に両方のスタックを楽しんでいる . 私はiPhoneが大好きで、.Netが大好きです。そんな私にとって、MonoTouchは迷いのない選択でした。
-
C言語を使って仕事をすることに抵抗はありませんか?Objective-Cという意味ではなく、C言語という意味です。 は C. ポインターが苦手な方には、MonoTouchがお勧めです。そして、以下のようなことが起こった場合、あなたを開発者失格だと考えるような否定的な意見には耳を貸さないでください。 しない ポインター(あるいはC言語など)が好きなんです。私は以前、IBM ROM BIOS ポケットリファレンスのコピーを持って歩いていましたが、アセンブリを書いたり、コンピュータにおかしなビデオモードを強制したり、それらや(確かにくだらない)ウィンドウシステム用の独自のフォントレンダリングビットを書いていたとき、QuickBasic 開発者が弱虫だとは思っていませんでした。I でした QuickBasicの開発者(おまけ)です。オタクのマチズモに屈しないこと。もしあなたがCが嫌いで、ポインタが嫌いで、手動でのメモリ管理からできるだけ離れたいなら(公平に見て、ObjCでは全く悪くない)、...。MonoTouchです。そして、そのためにどんな批判も受けないでください。
-
ユーザーと企業、どちらをターゲットにしたいですか?私にとってはあまり重要ではありませんが、Edgeを使っている人はまだいますし、事実、Appleのスタックを使えば、はるかに小さなダウンロードパッケージを作ることができます。私は MonoTouch で遊んでいて、ちゃんとした小さなアプリを作ったのですが、圧縮すると約 2.7 MB になります(アプリを配布用に提出するときは zip にします - アプリがストアからダウンロードされるときは zip にします - あなたのアプリが 10MB OTA 制限に入るかどうかを判断するときは、まずこのアプリケーションを zip にしてください - MonoTouch を使えば、きっと驚くことになりますよ)。しかし、MTの幸せはさておき、ハーフメガと3メガ近く(例えば)は、エンドユーザーをターゲットにしている場合、重要なポイントになる可能性があります。企業向けを考えているならば、数MBはまったく問題にならないでしょう。また、はっきりさせておきたいのですが、私はMTベースのアプリを近々ストアに提出する予定ですが、サイズにはまったく問題がありません。全く気になりません。しかし、もしそれが気になるのであれば あなた であれば、Appleのスタックが勝ります。
-
XMLのお仕事をされていますか?MonoTouchです。期間限定です。
-
文字列操作?日付操作?.Netのなんでも屋さん的なフレームワークで慣れてしまった、その他たくさんの小さなこと?MonoTouchです。
-
Webサービス?モノタッチです。
-
構文的には、どちらにも利点があります。Objective-Cはより冗長になる傾向があります。 書かなければならないところ . C#では書かなくてもいいコードをObjCで書くことになるでしょうが、それはどっちも同じです。この特別なトピックは、1冊の本が書けるほどです。私はC#の構文が好きですが、Objective-Cに対する最初のこの世のものとは思えない反応を乗り越えた後は、かなり楽しむことができるようになりました。私は講演で少しばかりObjective-Cをからかいます(それは は C#やJavaなどに慣れている開発者にとっては奇妙なことですが、実は、私の心の中にはObjective-Cの形をした場所があり、それが私を幸せにしてくれるのです。
-
Interface Builderを使う予定はありますか?なぜなら、この初期のバージョンでも、IBでUIを構築して、それをコードで使うという作業が圧倒的に少ないと感じるからです。Objective-C/IBのやり方では、全体のステップが欠落しているように感じるからです。今のところ、十分に検証できていないようですが 今のところ この点ではMonoTouchに軍配が上がります。
-
新しい言語やプラットフォームを学ぶのは楽しいことだと思いませんか?もしそうなら、iPhone にはたくさんの魅力がありますし、Apple のスタックはあなたをコンフォートゾーンから解放してくれるでしょう。 楽しい (こんにちは - 私はそのような開発者の一人です - 私は冗談を言ってAppleに苦言を呈しますが、Appleのツールを使ってiPhone開発を学ぶのはとても楽しいことでした)。
考えるべきことはたくさんあります。価値というのはとても抽象的です。もし、コストやその価値があるかどうかという話であれば、最初の箇条書きにある「ビジネスのためであれば、そして仕事を得ることができれば、お金はすぐに取り戻せる」という答えに行き着くでしょう。
だから...それくらい客観的に見ることができるんです。これは自分自身に問うべきことの短いリストですが、出発点にはなります。
個人的には(客観性は一旦捨てて)、どちらも好きで使っています。そして、最初にAppleのスタックを学んでよかったと思っています。Appleの世界をすでに知っていれば、MonoTouchを使いこなすのはより簡単でした。他の人が言っているように、あなたはまだCocoaTouchで作業するつもりです-それは.Net化された環境で行われるだけです。
でも、それだけじゃないんです。MonoTouchを使ったことのない人たちは、「ラッパーだ、ブラブラだ」といって、そこで止まってしまいがちですが、それはMonoTouchではありません。
MonoTouchは、CocoaTouchが提供するものにアクセスできる一方で、.Netが提供するもの(の一部)、人によってはより快適に感じるIDE(私はその一人)、Interface Builderとのより良い統合、メモリ管理を完全に忘れることはできないが、程よい余裕を得ることができます。
よくわからない場合は、Apple のスタック(無料)、MonoTouch の評価スタック(無料)を入手してください。Apple の開発プログラムに参加するまでは、どちらもシミュレータでしか動作しませんが、どちらを選ぶか、また MonoTouch が $399 を支払う価値があるかどうかを判断するには十分でしょう。
そして、狂信者の言うことに耳を貸してはいけません。彼らは、自分が非難している技術を使ったことがない人になりがちなのです :)
関連
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み] Objective-CでNSStringsを連結するためのショートカット集
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] SelectとSelectManyの違い
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】C#で四捨五入する方法
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?