どのツール、プラットフォーム、言語、フレームワーク、またはその他の質問と同様に、それは本当にあなたが望むものに帰着するはずです。
このプラットフォームのために開発したい場合は、すべての支払いが必要な場合のアドバイスを忘れてください。Objective-C、Xcode、および関連するAppleビットの学習に興味がある場合は、goferitを使用してください。やった。楽しかったですが、私の興味はiPhoneアプリの開発にありました。新しい言語、フレームワーク、およびIDEを学ぶことは、単なるボーナスでした(私はこのようなものが好きです)。私が始めたときも必要でした。
私はMonoTouchがリリースされてから作業を続けており、気に入っています。私はObjective-CよりもC#の方が好きで、MonoTouchが提供する.Net(Mono)フレームワークのサブセットにアクセスできるのが好きです。Cocoaよりも.Netで簡単に実行できる特定の機能があります(文字列操作、日付操作、XMLなど)。
また、参照カウントを処理する必要がなくなったのも気に入っています。私は、そのレベルでリソースを追跡する必要がなかった何年にもわたって甘やかされていました。自分でクリーンアップする必要はありませんが、使用している他のすべての最新の開発プラットフォームが自動的に行うことを手動で行う必要はありません。さらに、経験豊富なObjective-C開発者であっても、参照カウントは簡単ではありません。OS Xのコンソール出力をスクロールして、メモリ管理の問題が原因でクラッシュするアプリの数を確認します(これは基本的にすべてのアプリで発生する可能性がありますが、過労の開発者が関与する場合、この状況につながる間違いを犯すのははるかに簡単ですその注意のスパンは、12時間の場合、これ、それ以外の場合、これ、その他の場合、それと何とか何とか何とか)によって破壊されました。
私はまだObjective-C/Xcodeを使用しています-私は本当にAppleのツールが好きになることを学びました。正直なところ、彼らはぎこちなくて少し難解だと感じていますが、それでも楽しいです。
しかし...それなら私もこれが好きです:
public string SomeString { get; set; }
Objective-Cで同じことを行うには(とにかくiPhoneで)、プロパティをバックアップするローカル変数を宣言し、プロパティ宣言を記述してから、「synthesize」ディレクティブを使用してプロパティを生成する必要があります(指定するプロパティ属性については、参照カウントを処理するゲッターとセッターをラップするプロパティがある場合があります。全体として、これは時間の節約になりますが、ここではC#Wayが明らかに勝者です)。
これは、MonoTouchがあなたの生活を楽にする方法の一例にすぎません。特に、メモリ管理で指を汚す必要のない.Net / Java / Python /その他の言語に慣れている場合(必要な場合を除く) 。
iPhoneらしさに関する限り、.Netの一部をiPhoneの世界に持ち込むことを除けば、MonoTouch名前空間はCocoaTouchにマップされるため、たとえば、MonoTouch UIViewControllerについて混乱している場合は、Appleのドキュメントにアクセスできます。 UIViewControllerで。MonoTouch .Net-CocoaTouchをサイズ化しますが、壁にぶつかる可能性が低いほど十分に近いです(Xcode / Objective-Cを使用している場合もぶつかることはありません)。なめらかです。
チタンは違います。彼らは複数のプラットフォーム用に同じアプリを作成できる抽象化レイヤーを作成しようとしているので、通常の欠点に対処することになります:完全に異なるAPI、柔軟性の喪失(MonoTouchについても同じことが言えます) 、ただし、同じ程度にリモートではありません)、基本的にまったく新しいプラットフォームを学習する必要があります(これは、Xcode / Objective-C / CocoaTouchを回避することで回避しようとしていることですよね?)。
私もJavaScriptが嫌いなので、チタンに対して偏見を持っています。しかし、そうではなかったとしても(私が好きな言語を使用できたとしても)、APIは私の空想をくすぐりません。または私の何でも。
選択した開発ツールに関係なく、CocoaTouchについて何かを学ぶ必要があります。Xcode / Objective-C、MonoTouch、Titaniumのいずれであっても、何かが壊れたり、すべてが不安定になったりするため、最終的にはCocoaTouchのドキュメントを参照する必要があります。
もし私がiPhoneの開発について話をしていたら(私が持っていて、またやります)、そしてもし私がAppleの開発ツールの代替案について話し合うなら(私はそうします)、私はまだ開発者に少なくとも働くことを強く勧めますネイティブツールを使用して、いくつかの基本的なiPhoneアプリを使用します。それはあなたをプラットフォームのためのより良い開発者にするでしょう-期間。そして、この開始フェーズを使用して、Appleが提供する無料のビット以外のものを使用するかどうかを決定できます。あなたはそうではないかもしれません。必要だからではなく、私を喜ばせるためにMonoTouchを使用しています。
したがって、いくつかの基本的な基準を要約すると、次のようになります。
そして、彼らが話している技術を実際に使用したことがない限り、否定論者の言うことを聞かないでください。たとえば、私はチタンについて読んだことがありますが、経験はありません。自分の好みのために、チタンとは何の関係も望んでいないことを知っています。それはそれを「悪い」ものにするわけではありません-私が人生で望んでいないことだけです。
Objective-Cの群衆は印象的に熱心である可能性があります。オープンマインドな開発者はたくさんいますが、そういうわけで、Objective -CとCocoaと何とか何とか何とか何とか何とか何とかと考える多くの人が開発者が必要とする最後の開発ツールです。
それらを無視します。
サポートについて心配している場合は、次の点を考慮してください。
Appleはこのジャンクを作っているので、最新の状態を維持する可能性があります。
MonoTouchは最新の状態を維持する可能性が高い-MonopeepsはMicrosoftに追いつく素晴らしい仕事をしており、Appleで同じことをしない理由は見当たらない。私は彼らがしていることに驚いています。そして、MonoTouchがリリースされたにもかかわらず、たとえば5分前に、iPhone3.1用のアップデートがすでにリリースされています。彼らはこれに真剣に取り組んでおり、私は彼らが魔法だと思います。彼らは開発者の世界のキーブラーエルフです。彼らは秘密の層に座り、誰もが好きなものをクランクアウトしますが、他の誰もやろうとはしません。
Titaniumは、完全に独自のものである複数のプラットフォーム用のアプリを作成するための厄介な統合APIになるか、さまざまなプラットフォームの機能が異なるにつれてますます分裂するようになるでしょう。ええ、それは典型的なアームチェアの束であり、将来を見据えています...私はこの弾丸アイテムの前に「それは私の意見です...」と前に付けるべきでした。
今から黙ります。
あなたが好きなもので行きなさい。MonoTouchは、Appleのものの「安全な」代替品です。Titaniumは、他の多くのテクノロジーと同じ古いおっと、これは超高レベルのプラットフォーム、抽象化レイヤー、実際には機能しないという道をたどるのではないかと心配しています。ただし、簡単なことをしている場合は、特にベータ期間中は無料であることを考えると、それを試してみても害はありません。
そうです。
本当に今は黙っています...これがお役に立てば幸いです。