iPhoneの高速アプリケーション開発のためのモノトゥッチまたはチタン?



xamarin.ios titanium (5)

C#プログラマーなら、なぜObjective Cを学ぶのに何度か投資してはいけないのですか。正直言って、あなたからは時間がかかりません。 しかし、新しい言語で新しいプラットフォームで作業することは良い気分です。 いつでも新しいことを学ぶことは私を魅了します。

.Net開発者として、私はいつもiPhone用の既存のスキル(C#)アプリケーションを使って開発する可能性を夢見ていました。

どちらのプログラムもMacとIphone SDKがインストールされている必要があります。

Appcelerator Titaniumは私が試した最初のアプリであり、iPhoneのネイティブAPIをjavascriptに公開して、その言語を使って呼び出すことができるようにしています。

Monotouchは、Titaniumが無料の間にIphoneシミュレータではなく、Iphone上に展開できるbeeingのために$ 399から始まります。

Monotouch(Monodevelop)には、現在TitaniumにないIdeがあります(ただし、Textmate、Aptanaなどの任意のエディタを使用できます)

私は、両方のプログラムは、最終的にネイティブプリコンパイルされたアプリケーションを生成すると思う(私は、.NET Frameworkの呼び出しは、モノトゥッチのコンパイル時にprelilnkedと思うので、私はiPhoneの最終的なアプリケーションのサイズについてわからない場合)。

私はすべてのiPhoneのAPIと機能の完全な範囲についてもわからない。

TitaniumはAndroidアプリの開発を可能にする利点も持っていますが、私はまだVisual StudioのようなMonotouchの経験があります。

あなたはどれを選んで、モノトゥッチとチタンについてのあなたの経験は何ですか?


これは古い話ですが、現在の状況を維持するために、MonoTouchやその他のクロスプラットフォームのフレームワークはSDK 4.0で禁止されるようです。 iPhoneアプリを書くための唯一の「安全な」賭けは、少なくとも当面はXCodeとObjective-Cを使うことです。


ツールやプラットフォームや言語やフレームワークなどの質問と同様に、それは本当に必要なものになるはずです。

このプラットフォームのために開発したいと思っているすべてのあなたが欲しいと思っているすべてのあなたの会費のアドバイスを忘れてしまいます。 Objective-C、Xcode、関連するAppleビットを学ぶことに興味があるなら、goferit。 やった。 面白かったですが、私の関心はiPhoneアプリの開発でした。 新しい言語、フレームワーク、およびIDEを学ぶことは単なるボーナスでした(私はこのようなものが好きです)。 私が始めたときにも必要でした。

MonoTouchがリリースされて以来、私はMonoTouchで作業していました。 私は Objective-CにC# 好んでおり、MonoTouchが提供する.Net(Mono)フレームワークのサブセットにアクセスするのが好きです。 .Cocoa(文字列操作、日付操作、XMLなど)よりも単純に.Netで行うのが簡単なことがいくつかあります。

私はもはや参照カウントに対処する必要はありません。 私は、何年もの間、そのレベルの資源を追跡する必要がなくなってしまった。 私は自分自身の後をきれいにする必要はありませんが、手動で私が使ってきた他のすべての最新の開発プラットフォームが私のために自動的に行う必要はありません。 加えて、熟練したObjective-C開発者であっても、参照カウントはあまり単純ではありません。 OS Xのコンソール出力をスクロールして、メモリ管理の問題でクラッシュするアプリの数を確認することができます(これは基本的にどのアプリでも起こりますが、その注意のスパンは、もしこれと他の場合はこれと他のもの、そして、そればかげて、12時間で破壊された)。

私はまだObjective-C / Xcodeを使用しています - 私は本当にAppleのツールが好きであることを学んできました。 私は正直なところ、彼らは気まぐれで少し秘密だと感じますが、それでも楽しいです。

しかし、...私はまたこれが好きです:

public string SomeString { get; set; }

Objective-C(iPhoneの場合は、とにかく)で同じことをするには、プロパティを返すローカル変数を宣言し、プロパティ宣言を書いてから、 "synthesize"ディレクティブを使ってプロパティを生成する必要がありますあなたが指定したプロパティの属性については、リファレンスカウントを処理するgetterとsetterをラップするプロパティがあるかもしれません - これ時間を節約しますが、C#Wayはここではっきりと勝者です)。

これはMonoTouchがあなたの人生をより楽にする方法のひとつの例です。特に、.NET / Java / Python /他の言語に慣れている人は、 。

.Netの部分をiPhoneの世界にまで染めることを除いて、MonoTouchの名前空間はCocoaTouchにマッピングされているので、MonoTouchのUIViewControllerについて混乱させるなら、AppleのドキュメントUIViewControllerで。 MonoTouch .CocoaTouchをネット化しますが、Xcode / Objective-Cを使用していた場合でもヒットしないほど壁に近づきにくいほど近いです。 それは滑らかです。

チタンは違います。 彼らは、複数のプラットフォームで同じアプリケーションを書くことができる抽象レイヤーを作成しようとしているので、通常の欠点に対処します。完全に異なるAPI、柔軟性の欠如(MonoTouch Xcode / Objective-C / CocoaTouchを使いこなすことで回避しようとしているものです)。

JavaScriptも嫌なので、チタニウムに偏っていくつもりです。 しかし、そうでない場合でも、私が好きな言葉を使うことができたとしても、APIは私の気持ちをくすぐることはありません。 または私の何でも。

あなたが選んだ開発ツールにかかわらず、あなた CocoaTouchについて何かを学ばなくてはなりません。 それがXcode / Objective-C、MonoTouch、Titaniumのいずれであっも、 何かが壊れてしまったり、あなたに迷惑をかけてしまったりすることがあります.CocoaTouchのドキュメントを参照する必要があります。

私がiPhoneの開発について話をしていたら(これは私がやっていることですが、私はもう一度やります)、もし私がAppleの開発ツールの選択肢について話していたら、私はまだ開発者に少なくともネイティブツールを使用していくつかの基本的なiPhoneアプリを通して。 それは、プラットフォーム期間のより良い開発者になるでしょう。 また、この初期段階を使用して、Appleが提供する無料のビット以外のものを使用したいかどうかを判断することもできます。 そうではないかもしれない。 私はMonoTouchを使用してきました。なぜなら、それは必要ではないからです。

だから、いくつかの基本的な基準を要約すると:

  • 嗜好(言語/フレームワーク)

  • デバイス(あなたはiPhone以外のプラットフォームを気にかけたり、いつかあなたが思うだろうか?)

  • 快適性(C#よりもObjective-Cよりも好きであれば、MonoTouchを使用しない理由はありません)

そして彼らが話している技術を実際に使っていない限り、彼らに耳を傾けないでください。 たとえば、私はチタニウムについて読んだことがありますが、私はそれに慣れていません - 自分の好みのために何もしたくないことを知っています。 それはそれを "悪い"ものにしません。私の人生では望んでいないものです。

Objective-Cの群衆は印象的に熱心になることができます。 オープンな開発者がたくさんいる一方で、Objective-CとCocoa、そしてblah blah blahはdevkindが必要とする最後の開発ツールだと思う人が非常に多い。

それらを無視してください。

サポートが不安な場合は、次の点を考慮する必要があります。

  • アップルは、この迷惑メールを作っている人たちだから、現在も変わらないだろう。

  • MonoTouchは現在も存続する可能性が高い - Monoの覗いている人は、Microsoftとの驚異的な仕事を続けている.Appleと同じことをしない理由はない。 私は彼らが何をするかによって吹き飛ばされる。 そしてMonoTouchがリリースされたにもかかわらず、5分前のように、彼らはすでにiPhone 3.1用のアップデートを持っています。 彼らはこれについて真剣だし、彼らは魔法だと思う。 彼らは開発者の世界のKeeblerエルフです。 彼らは彼らの秘密の層に座って、みんな(OKじゃ誰もいない)好きなものを作り出しますが、誰もそれをしようとはしないでしょう。

  • チタンは、独自のものである複数のプラットフォーム用のアプリケーションを作成するための厄介な統一APIになるか、または異なるプラットフォームの機能が分岐するにつれてますます分割されるようになります。 うん、それは典型的な肘掛けっぽい将来の見物人の束です...私はこの箇条書きの項目の前に「私の意見です...」と言わなければなりません。戻ってそれを変更する方法があれば。

私は今黙れます。

あなたが好きなものに行ってください。 MonoTouchは、Appleのものに代わる「安全な」代替品です。 私は恐れているチタンは、これほど多くの他の技術が持っている同じ古い古いもの(これは超高レベルのプラットフォームの抽象化レイヤーではありません)を下るつもりです。 しかし、何かシンプルなことをしているならば、特にベータ期間中は無料であることを考慮すると、ショットを与えることに害はありません。

現実。

本当に今シャットダウン...これが助けてくれることを願っています。


デバイスを使用するにはさまざまな方法があります。 AppleはSDKライセンスで、C、C ++、ObjectiveC、Javascript経由でデバイスを入手するための承認された方法しかないと述べています。

この時点で、MonoTouchとAppcelerator Titaniumで構築されたアプリケーションはApp Storeに受け入れられているようです。 ライセンスの変更のおかげで、この主題には多くの恐れ、不確実性および疑いがあります。 AppleはObjectiveCをやっていない人を恐れている。

私はあなたが開発者としてあなたに最も合っていることを何でもすることをお勧めします。 C#と.NETを知っているなら、MonoTouchを使うべきです。 ObjectiveCまたはMacプラットフォームを知っているなら、ObjectiveCはおそらく行く方法です。 あなたがXを知っていてそれがiPhone上にあるならば、Xは私が最初に探している場所です。


私は開発者がSencha、Titanium、Xamarinなどで実装されているのと同じアプリケーションを表示することでクロスプラットフォームのモバイルフレームワークを選択するオープンソースプロジェクトhttp://propertycross.comを作成しました。 このプロジェクトでは、エンドユーザーエクスペリエンス、コード、IDE、開発者エクスペリエンスなどの面で、幅広いフレームワークを簡単に比較できます。





appcelerator