27

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

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

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

モノタッチは、チタンが無料である間、iPhoneシミュレーターではなく、iPhoneに展開できるビーイングの399ドルから始まります。

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

どちらのプログラムも、最後にネイティブのプリコンパイル済みアプリを生成すると思います(.Net Frameworkの呼び出しは、Monotouchのコンパイル時にプリリンクされていると思うので、iPhoneの最終的なアプリのサイズがわからない場合も同様です)。

また、すべてのIphoneAPIと機能の完全なカバレッジについてもわかりません。

Titaniumには、Androidアプリの開発を可能にするという利点もありますが、ac#開発者として、MonotouchのエクスペリエンスはVisualStudioのエクスペリエンスに似ています。

どちらを選びますか?MonotouchとTitaniumでの経験は何ですか?

4

7 に答える 7

96

どのツール、プラットフォーム、言語、フレームワーク、またはその他の質問と同様に、それは本当にあなたが望むものに帰着するはずです。

このプラットフォームのために開発したい場合は、すべての支払いが必要な場合のアドバイスを忘れてください。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を使用しています。

したがって、いくつかの基本的な基準を要約すると、次のようになります。

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

  • デバイス(iPhone以外のプラットフォームを気にしますか、それともいつかはそうなると思いますか?)

  • 快適さ(Objective-CよりもC#の方がはるかに優れている場合は、MonoTouchを使用しない理由はありません)

そして、彼らが話している技術を実際に使用したことがない限り、否定論者の言うことを聞かないでください。たとえば、私はチタンについて読んだことがありますが、経験はありません。自分の好みのために、チタンとは何の関係も望んでいないことを知っています。それはそれを「悪い」ものにするわけではありません-私が人生で望んでいないことだけです。

Objective-Cの群衆は印象的に熱心である可能性があります。オープンマインドな開発者はたくさんいますが、そういうわけで、Objective -CとCocoaと何とか何とか何とか何とか何とか何とかと考える多くの人が開発者が必要とする最後の開発ツールです。

それらを無視します。

サポートについて心配している場合は、次の点を考慮してください。

  • Appleはこのジャンクを作っているので、最新の状態を維持する可能性があります。

  • MonoTouchは最新の状態を維持する可能性が高い-MonopeepsはMicrosoftに追いつく素晴らしい仕事をしており、Appleで同じことをしない理由は見当たらない。私は彼らがしていることに驚いています。そして、MonoTouchがリリースされたにもかかわらず、たとえば5分前に、iPhone3.1用のアップデートがすでにリリースされています。彼らはこれに真剣に取り組んでおり、私は彼らが魔法だと思います。彼らは開発者の世界のキーブラーエルフです。彼らは秘密の層に座り、誰もが好きなものをクランクアウトしますが、他の誰もやろうとはしません。

  • Titaniumは、完全に独自のものである複数のプラットフォーム用のアプリを作成するための厄介な統合APIになるか、さまざまなプラットフォームの機能が異なるにつれてますます分裂するようになるでしょう。ええ、それは典型的なアームチェアの束であり、将来を見据えています...私はこの弾丸アイテムの前に「それは私の意見です...」と前に付けるべきでした。

今から黙ります。

あなたが好きなもので行きなさい。MonoTouchは、Appleのものの「安全な」代替品です。Titaniumは、他の多くのテクノロジーと同じ古いおっと、これは超高レベルのプラットフォーム、抽象化レイヤー、実際には機能しないという道をたどるのではないかと心配しています。ただし、簡単なことをしている場合は、特にベータ期間中は無料であることを考えると、それを試してみても害はありません。

そうです。

本当に今は黙っています...これがお役に立てば幸いです。

于 2009-10-04T03:02:15.570 に答える
4

これらは、iPhoneアプリを作成するための楽しくて興味深い方法です。しかし、真に迅速なネイティブiPhone開発の場合、最善の策は無料のiPhoneSDKとXcodeです。

正直なところ、学ぶのが最も難しいのは、言語構文ではなく、フレームワーク自体の機能です。しかし、これらのIDE /言語では、Cocoa(およびCocoa Touch)の規則のいくつかを理解する必要があるため、どちらの方法でも取り組む必要がある問題です。

私はこれをCocoa/Objective-Cのスノッブとは言いませんが、C(C#開発者として知っている)を知っていれば、参入障壁は実際にはありません。

さらに、これらの駆け出しの翻訳者/IDE/言語では利用できない大量のチュートリアルとサンプルコードにアクセスできます。

別のプログラミング言語を学ぶことはめったに悪いことではありません、そして経験豊富なプログラマーとして、あなたの時間投資はあなたが思うほど大きくはありません。

于 2009-09-28T18:02:13.677 に答える
3

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

于 2012-12-28T15:15:28.180 に答える
2

テクノの人がすでに知っているiPhone開発者をすばやく把握する手段を提供するというアイデアが好きです。私は個人的に、Java開発者として、iSPectrum(http://www.flexycore.com)を使用しています。また、IDE、デバッガーなどが付属しており、Eclipse Javaプラグインのすべての機能を利用できるため、開発に非常に便利です。Javaに基づいているため、他のJavaアプリの既存のコードを簡単に再利用することもできます。これは、JavaがiPhoneを除くほぼすべてのプラットフォーム(デスクトップとモバイル)に存在する場合に非常に便利です。さらに、オープンソースプロジェクトは無料です。

emacsでの開発に戻るという考えは好きではないので、私はむしろこれらの種類のソリューションを検討したいと思います:)。

于 2010-03-24T08:28:37.083 に答える
2

これは古いトピックですが、最新の状態を維持するために、MonoTouchやその他のクロスプラットフォームフレームワークはSDK4.0で禁止されるようです。iPhoneアプリを作成するための唯一の「安全な」賭けは、少なくとも当面はXCodeとObjective-Cを使用することです。

于 2010-04-13T04:42:01.790 に答える
1

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

于 2010-07-20T15:43:13.723 に答える
0

デバイスに乗る方法はたくさんあります。Appleは、SDKライセンスで、デバイスにアクセスするための唯一の承認された方法は、C、C ++、ObjectiveC、およびJavascriptを使用することであると述べています。

この時点で、MonoTouchとAppceleratorTitaniumで構築されたアプリがAppStoreに受け入れられているようです。ライセンスの変更のおかげで、この問題には多くの恐れ、不確実性、疑問があります。Appleは、ObjectiveCを実行していないすべての人を怖がらせています。

開発者として最も理にかなっていることは何でもすることをお勧めします。C#と.NETを知っている場合は、MonoTouchを使用する必要があります。ObjectiveCまたはMacプラットフォームをご存知の場合は、ObjectiveCが最適です。Xを知っていて、それがiPhoneにある場合は、Xが最初に探すことをお勧めします。

于 2010-07-01T12:30:55.030 に答える