iPhone、BlackBerry、および Android で動作するアプリを作成するための戦略または少なくともベスト プラクティスはありますか?
BB と Android の開発環境については詳しくありませんが、どちらも Java アプリをサポートしていると思います。
iPhone には ObjectiveC の部分 (およびまったく新しい UI) が必要になることはわかっています。
誰かがこれをしましたか?
iPhone、BlackBerry、および Android で動作するアプリを作成するための戦略または少なくともベスト プラクティスはありますか?
BB と Android の開発環境については詳しくありませんが、どちらも Java アプリをサポートしていると思います。
iPhone には ObjectiveC の部分 (およびまったく新しい UI) が必要になることはわかっています。
誰かがこれをしましたか?
http://phonegap.com/をチェックしてみてください。
リファレンス アプリケーションなどの特定の種類のアプリに適した手法の 1 つ: HTML/CSS/JavaScriptを使用し、プラットフォームの HTML ビューアー オブジェクトを使用してローカルに埋め込まれた Web コンテンツを読み取るコンパクトなクライアントを記述します。
BlackBerry と Windows Mobile の両方で動作するクロスプラットフォーム アプリケーションを作成する 1 つの手法は、すべてを HTML で作成することでした。BlackBerry Browser と Pocket Internet Explorer の両方で機能する HTML と CSS のサブセットを使用する必要がありました。少量の JavaScript も使用しました。
jar:// (BlackBerry) と res:// (Windows Mobile) の URL を使用して、内部に保存された HTML と画像を実行する非常に小さなビューアを作成しました。カスタム バージョンのブラウザ フィールドと . Windows Mobile の場合も同様で、Pocket Internet Explorer を Windows Mobile アプリケーションに埋め込まれた ActiveX として使用できました。
注 -- BlackBerry の場合、OS 4.2 を実行するレガシー デバイスをサポートする必要がありました。そのために、SecondaryResourceFetchThread.java などの多くの RIM コード サンプルを再利用して、アプリケーションに埋め込まれた画像をプルし、内部で jar:// URL を処理するように設計した HttpConnection を実装したカスタム接続オブジェクトを介して配信しました。 BlackBerry アプリケーションに埋め込まれた HTML/画像。ちょっとわかりにくかったです。Windows Mobile の場合は、より直感的でした。
必要なことを行う方法は他にもありますが、医療リファレンス アプリケーションでは完璧に機能し、BlackBerry 用と Windows Mobile 用に別々の CSS ファイルを設計して、2 つのモバイル デバイス用にコンテンツをわずかに異なる形式に再フォーマットすることができました。(これは、昔の Netscape と Internet Explorer の互換性をテストするようなものでした。)
これはあなたの状況ではうまくいかないかもしれませんが、あなたのアプリケーションが Web スタイルの「参照」アプリケーションであり、HTML をうまく扱う方法を知っているなら、このアプローチはうまくいくかもしれません。
注目すべきもう1つのオプションは、RubyフレームワークであるRhodesです。
さらに別のフレームワークはhttp://www.mosync.com/です。
すべての主要なプラットフォームをサポートしているようです。
クロスプラットフォームのWebアプリを作成する場合は、SenchaTouchまたはPhonegapが適しています。
ネイティブアプリを好む場合、最適なクロスプラットフォームソリューションはTitaniumです。Titaniumを使用すると、Javascriptでアプリを記述でき、JSをネイティブコード(Objective-C、Java ...)にコンパイルします。
また、ゲームを作成している場合は、http://www.cuttlefishengine.com で、Cuttlefish Engine と呼ばれる私のクロスプラットフォーム (iPhone、Android など) ソリューションをチェックしてください。
マルチプラットフォーム アプリを作成する場合、共有するコードの量を決定する必要があります。2つのオプションは
2 番目のアプローチは、より優れたアプリを提供する傾向がありますが、より多くの作業が必要になります (クロスプラットフォーム ライブラリを作成する必要がない場合)。
モバイルの世界で難しいのは、言語の選択です。今あなたが持っている
Java を JavaScript に、またはその逆にクロスコンパイルできます。また、Java を C にコンパイルしたり、C から呼び出すことができる JavaScript エンジンを使用したりすることもできます。Java/JavaScript 電話で C を実行できるとは思いません。そのため、Java/Javascript でコードを記述することをお勧めします。クロス コンパイル (および一般的な言語の混合) には、デバッグが少し難しくなるという欠点があります。
また、Mobile Community Framework (MCF) を試すこともできます。これは、iPhone、Android、WinMobile、Symbian、および BlackBerry でネイティブに実行されるクロスプラットフォーム フレームワークです。MCF は、Wi-Fi アドホック ネットワークで、または直接接続が不可能な場合は専用のプロキシ サーバーを介して、ネットワーク、位置情報、近接操作を処理します。シンプルな API で、無料で使用できます。このようにして、アプリのインターフェイスとロジックをプラットフォームごとに個別に開発し、MCF を使用してアプリケーションのインスタンスを好きな方法で接続できます。
詳細については、 http: //uvamobiltec.comをご覧ください。
Adobe Flex と Flash Builder も有望に見えます。それでも、独自のものと考えるべきですが、開発者センターの Web サイトにあるビデオを見ると、それだけの価値があるように思えます。ちなみに、最新リリースは現在Androidに対応しています。iOS のサポートは、アップデートを通じて 2011 年 6 月にリリースされる予定です。
Web 上でいつでも JavaScript アプリを作成でき、3 つすべてで動作するはずです。もちろん、それは電話にインストールされません。
Android には、Javascript を実行する WebView があります。他のプラットフォームもそうだと思います。ほとんどのロジックを JavaScript で記述した場合、その JavaScript をプラットフォーム間で再利用できる可能性があります。
http://j2mepolish.orgは良い選択かもしれませんが、iphone はロードマップにあるだけです。ただし、android と BB は、他のすべての j2me 電話と同様に既にサポートされています。