web-dev-qa-db-ja.com

データ集約型アプリのスマートフォンギャップとモノタッチ

モバイルデバイス向けのデータ集約型アプリケーションの開発を検討しています。私たちの中心的な問題は

  1. クライアントに大量のデータを保存する必要があります
  2. クライアントはアプリをオフラインで動作させたい
  3. 私たちのスキルセットは、非常に多くのWeb開発C#ASP.Netです。絶対に客観的ではないC

私たちは開発の3つの可能性を考えました

  1. オフラインアプリケーションキャッシュを利用するHTML5ローカルストレージを使用するWebアプリケーション。ローカルストレージの上限は5 MBですが、ブラウザによってはこれが2.5 MBに下がる場合があります

  2. PhoneGap を介してWebアプリケーションを作成し、ネイティブアプリを作成します。ここでの大きな利点は、ストレージにファイルシステムを使用できることです。欠点は、App Store(特にiOSの場合)を経由する必要があることです-Appleへのサブスクリプションアプリの30%の収益

  3. 私たちは MonoTouch を使用してアプリを構築しますAndroidおよびiOS。良い-C#および.Netでこれを行うことができます。悪い-ブラックベリーなし

質問

この場合、PhoneGapよりもMonoTouchを使用することの真の利点を見つけるのに苦労しています。彼らは何ですか?それらはありますか?

この例の例として、データをファイルシステムに保存することは非常に便利ですが、電話ギャップが Fileオブジェクト を介してこれを実行できると思います。明らかに、monoTouchはSystem.IOを活用します。

MonoTouchに明確な追加機能が存在するインスタンスはありますか-特にモバイル開発に役立つ機能、例えばジオロケーションまたはカメラタイプ機能?または、電話のギャップはこれらすべてをほぼカバーしていますか?.

生意気な追加の質問

私が見落とした他のオプションや、私が説明した3つのアプローチについて、忘れていた他の主な利点/欠点はありますか?

皆の専門知識をありがとう

45
Crab Bucket

MonoTouchで記述された非常にデータ集約型のアプリが完成しました。アプリは中間層を介してSAPデータにアクセスし、これをアプリで公開します。また、同じ中間層を介して、アプリからSAPに直接更新することもできます。

これをWindows Phoneに移植し、Android MonoDroidを使用しています。

上司にMonoTouchが先を行く道であると納得させるのにしばらく時間がかかり、jQuery mobile、ExtJS、Obj Cなどのいくつかの異なる製品を事前に試しました。

私が彼を説得しようとしたのは、Attachmateを買収したときであり、MonoTouchが破滅したように見えた。幸運なことに、私(私)にとって、Xamarinは炎のことわざのフェニックスのように立ち上がり、Mono *を現在の状態に発展させ続けました。

C#開発者(およびMono愛好家)として、Obj CまたはHTML/JavaScriptのいずれかに対する主な勝利は、C#を使用して仕事を遂行できるという事実でした。ドキュメンテーションはとても良かった、そしてドコがそれを完全にカットしなかったとき(最近更新された)、コミュニティはそれをした。

IRCチャネルは非常にアクティブで、Xamarinの従業員とコミュニティエバンジェリストは常に問題を支援したり洞察を提供したりします。メーリングリストもそうです。

もう1つのプラスは、MTを中心に成長しているエコシステムです。 MT.Dialogは、対応するXCodeと比較して、テーブルベースのUIの開発を非常に簡単にします。これと組み合わせて、確かにSilverlightに基づくサブセットである.Net BCLですが、シリアル化、電子メールから暗号化などすべてを備えています。Netでカバーされていない場合、または特定のMono *プロジェクトがない場合、MTコードでObjCプラグインを使用できます。

MTには証明済みのプラットフォームとして「まだ証明されていない」という意見はありません。私たちはそれを使用しており、比較的小規模な会社ですが、それを使用している大規模な会社もたくさんあります。A Appleで紹介されているアプリのいくつかは、MTで書かれていると伝えられています。

客観的であり続けるために、私にとってMonoTouchの2つの「短所」は、ObjCを読み取ることができる必要があるということです(ただし、tbh、私はこれを短所とは見なしていません...「C#」開発者としてとにかく私はたくさんの言語を読み書きできる必要があります)、そして歴史的に、MonoDevelopは少しバグが多いという事実。主要なバグはつぶされているようで、オープンソースプロジェクトなので、いつでも修正して他の人たちを助けることができます!

あなたの懸念に答えるには:

  1. クライアントに大量のデータを保存する必要があります

C#で.NetのSystem.IOクラスを使用します。これらが不明な場合は、MSDNに多数の例があります(MTはファイルストレージのiOS実装を非表示にします)。

  1. クライアントはアプリをオフラインで動作させたい

彼らはすべてこれを行うことができますが、ネイティブアプリは私の意見では常に気分が良くなるでしょう。

  1. 私たちのスキルセットは、非常に多くのWeb開発C#ASP.Netです。絶対に客観的ではないC

MonoTouchはC#です-あなたの強みを活かして、数か月ではなく数週間でアプリを入手してください!

私の2ペニー!何度も何度も同じルートを選ぶのをためらうことはありません。

40
Darbio

しばらく(WP7で)PhoneGapを使用しましたが、MonoTouchは使用していませんが、C#/ Silverlight開発者としての経験があります。

MonoTouchのいくつかの利点:

  • 結果をネイティブUIでコーディングし、すべてのプラットフォームで最高のエクスペリエンスを提供します
  • C#は「エンタープライズレベル」のプログラミング言語です。データ集約型アプリケーションの開発に最適です
  • あなたの現在のスキルセットはここであなたに役立ちます
  • MonoTouchで記述された多数のアプリケーション がアプリストアから入手できます。

MonoTouchのいくつかの欠点:

  • IPhone APIをC#コードで再度作成するため、Androidに移植するには、MonoDroid用に別のUIレイヤーが必要になります。

PhoneGapの利点:

  • PhoneGapを使用して記述された多数のアプリケーション がサポートされているOSの全範囲にわたって、かなり成熟したフレームワークのように見え始めています。
  • PhoneGapにはコミュニティサポートが充実しています
  • HTML5を使用しており、これは多くの人が未来のテクノロジーと見なしています。これは広義の声明ですが、ほとんどの大手企業(Microsoft、Adobeなど)が支持しています。

PhoneGapの短所:

  • それはおそらくJavaScriptを使用します 広く使用されている中で最も誤解されている言語
  • UIはHTMLで記述されています。 jQuery Mobile のようなフレームワークの最善の努力にもかかわらず、それは決してネイティブに感じることはありません。
  • 一貫したAPIを提供するプラットフォーム固有の「shim」コードがあるため、プラットフォーム固有の問題が見つかります。しかし、私はPhoneGapチームがこれらを非常に迅速に修正することを発見しました。

要約すると、難しい選択です!

個人的にはPhoneGapを使用しますが、ではありません特定のOSのルックアンドフィールをエミュレートしようとするのではなく、アプリケーションにうまく機能する独自のUIを作成しますすべてのプラットフォームで使用します。

14
ColinE

昨日(2012年2月8日)にリリースされたMonoTouchの新しいリリース-5.2。 iOSアプリの開発をより簡単かつ迅速にするためのたくさんの新機能。詳細はこちらからアクセスできます: http://blog.xamarin.com/

MonoTouchを特に興味深いテクノロジーにする1つのことは、インターネット接続を必要とせずに実行できる、かなり洗練された高度なアプリを開発できることです。それは大事なことです。

2
dave