2011-03-23 7 views
10

クロスプラットフォームモバイルアプリを開発するための純粋な方法はありますか?これらは各プラットフォーム上のネイティブアプリであり、必ずしも何らかのウェブページである必要はありません。 >アプリケーションのためMonoTouchで上に構築 - - WP7 モバイルアプリ - iPhone、WP7、Android、およびブラックベリーをターゲットにする

  • 用>標準のC#アプリ

    • C#のバックエンド(ビジネスロジック)
    • 現在、我々は二つの言語にそれを分割することを考えていますiPhone/iPad/etc。我々はまた、最初に開発することができ>標準のBlackBerry Javaアプリ

    から

  • のJavaバックエンド(ビジネスロジック)
  • から
  • >標準のAndroidのJavaアプリ(まだ C#準備ができていないのMonoDroid版) C#で変換ツールの1つを使用して、C#をJavaに変換して出発点にすることができます。

    別の方法がありますか?私たちのスキルセットには、主に強力なC#.Net背景と軽微なJavaの経験が含まれています。

    私たちは、低レベルに進み、C/C++のようなものを使って仕事を終わらせたくありません。これらは、通常、一部のWebサービスと通信する単純なLOBアプリケーションになります。

    サイド質問:どのようにゲーム開発者は、怒っている鳥のメーカーのように行うのですか?

    UPDATE:

    MonoDroidが正式にリリースされます。だから、あなたはJava用にJavaを使う必要があるようです。他の3つのプラットフォームの開発が単純化されたため、私たちはBlackBerry用の開発を全く検討していません。 MonoTouchとMonoDroidはともに399ドルで、Visual Studioのライセンスが必要です(これにはApp Storeなどの費用は含まれていません)。

  • +0

    http://stackoverflow.com/questions/4221315/what-kind-of-conversion-efforts-are-there-involved-in-porting-a-complete-droid-ap/4221446#4221446その小さいクロスプラットフォームの問題についての私の意見をよく説明しています。 – blindstuff

    +0

    はい、私たちはこれを最初から計画していることをうれしく思います。確かに、UIデバイス固有のコードと再利用可能なコードを分離したいと考えています。 – jonathanpeppers

    答えて

    2

    私はすべてのモバイルプラットフォームで知っている良い簡単な答えです。 Appcelerator Titaniumのような開発環境を使用することができます。これは、さまざまなプラットフォーム上でネイティブコードとクロスコンパイルできます(現在、TitaniumはiOSとAndroidをサポートしており、Blackberryの計画もサポートしています)。しかし、これらのAPIは通常、限られたAPIしか持っていないため、さまざまなプラットフォーム用に異なるUIを設計する必要があります(私の商業では、このようなプラットフォームを使ったことはありません)。

    Webサービスのバックエンドですべてのビジネスロジックを設計し、各プラットフォーム用の「シンクライアント」アプリケーションを作成するだけです。これはうまくいきますが、エンドユーザーがあなたのアプリを使いたいときにネットワークアクセスが必要です。

    最終的には、私は通常、あなたが提案したことをやり遂げます。基本的なビジネスロジックをできるだけ一般的な2言語で書いてから、それをバンドルします各プラットフォームのカスタムUI /デバイスコード

    (私はAngry Birdsのようなゲームは主にOpenGLで書かれていて、各プラットフォームのOpenGLプロセッサにロードされていると信じています。)

    +0

    まあ、私はもっと "聖杯"を望んでいましたが、そんなことがあるようには見えません。他の提案がない場合、私はあなたを回答としてマークすることがあります。 – jonathanpeppers

    +0

    ええ、私は残念なことに、クロスプラットフォームプラットフォーム開発の「聖杯」は神話だと思います。たぶんいつか... –

    +0

    Appceleratorの代わりにPhoneGapがあります。しかし、あなたはこれらのツールを使わないことにかなり似ているようです。私はちょうど誰かが将来このスレッドを検索し、代替案を探している場合に言及されると思った。 – Tony

    0

    自分のアプリのWebViewでHTML5(jquerymobileなど)を使用していない場合(実際のアプリのように見えますが、どういうわけかそれは普通のブラウザではなく)。あなたはまだデバイスからいくつかのネイティブAPI(加速度計、...)を使用することができます。

    クライアントコードの生成に役立つSybase Unwired Platformなどのプラットフォームがあります。 BlackberryとWindows Mobile用のAfaikは、サーバー上のビジネスオブジェクトからUIを生成することさえできます。しかし、私にとっては、これがあなたの場合には重すぎるかもしれないと思われます。

    よろしく、 マーティン

    1

    それらはいくつかの素晴らしい答えです。私は同意する、x - プラットフォームの開発はまだ非常に原始的です。 2点を追加したいと思います:

    1)バックエンドを別の言語で書く必要はありません。 1つの言語を選択し(あなたの快適性レベル、パフォーマンスなどの基準に基づいて)、プラットフォーム固有のアプリケーションから直接バックエンドに接続します。バックエンドがサーバーサイドコードの場合は、XmlHttpClient経由でそれと通信する方法があります。それがさまざまなアプリケーションに共通するネイティブコードで、C++で書かれている場合は、JavaのJNIとC#のラッパーアセンブリを使用できます。

    2)xプラットフォームツールを避けるもう一つの理由は、プラットフォームベンダー(Apple、Google、MSFTなど)がリリースした新しいAPIをサポートするのを常に待つ必要があることです。これらの企業が新しいAPIをリリースすると、ツールを更新して新しいAPIを使用できるようになります。

    +1

    サーバサイドのものはすべてC#(または何でも)です。私はもっ​​とはっきりしていたはずですが、 "バックエンド"とは私たちのサーバーと通信するビジネス層を意味し、サーバーからのデータを表すためのいくつかのクラスを持っています。これは2つの言語で複製される部分です。私は間違いなく、x-プラットフォームのツールは、何らかの形で欠けているので、良い点を避けたいと考えています。 – jonathanpeppers

    +0

    私はまだ重複するレイヤーを避けようとしています(各プラットフォームの重複したUIレイヤーをすでに扱っている場合は、維持管理がずっと簡単です)。私がやることは次のとおりです:UIレイヤー - >ビジネスロジックレイヤー - >データアクセスレイヤー - > DB。そして、異なるUIレイヤーがWebサービスを介して同じビジネスロジックレイヤーに話しかけます。 – Beta

    +0

    Webサービスへの通信を提供するコードは、2つの言語間の唯一の重複したコードになります。私たちが望むようにWebサービスを開発することができるので、Webサービスを画像から引き出すことができます。私は各デバイスで特に動作するコードを指しています。 – jonathanpeppers

    関連する問題