iPhone / Android アプリケーションを開発するためのマルチプラットフォーム フレームワークはありますか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/30953

質問

iPhone と Android プラットフォーム用のアプリケーションを作成することに興味があります。API の違いの一部を抽象化し、ビルド時にターゲット プラットフォームを指定できるようにするミドルウェア/フレームワークを見つけたいと考えていました。そのような枠組みは存在しますか、それとも計画されていますか?

役に立ちましたか?

解決

フォンギャップ は、iPhone、Android、および Blackberry をターゲットとする javascript/css/html ベースのフレームワークです。(少なくとも iPhone では) ネイティブ アプリとしてバンドルすることもできます。これらのアプリの UI レイヤーは通常、html/javascript で構築されており、真のネイティブ アプリよりも遅くなる可能性があります。

フォンギャップ


リアクトネイティブ JavaScript と React に基づく一貫した開発者エクスペリエンスを使用して、ネイティブ プラットフォーム上で世界クラスのアプリケーション エクスペリエンスを構築できます。React Native は、関心のあるすべてのプラットフォームにわたる開発者の効率に焦点を当てています。一度学習すれば、どこでも書くことができます。Facebook は複数の実稼働アプリで React Native を使用しており、今後も React Native への投資を継続します。React Native アプリケーションの UI はネイティブ コントロールであるため、通常、UI は GUI 管理のための純粋な HTML/JavaScript アプローチよりも高速です。

リアクトネイティブ


団結 Unity Technologies によって開発されたクロスプラットフォーム ゲーム エンジンで、PC、コンソール、モバイル デバイス、Web サイト用のビデオ ゲームの開発に使用されます。Unity は、ゲームを複数のプラットフォームにターゲット設定できる機能で注目に値します。サポートされているプラ​​ットフォームには、Android、Apple TV、BlackBerry 10、iOS、Linux、Nintendo 3DS シリーズ、OS X、PlayStation 4、PlayStation Vita、Unity Web Player (Facebook を含む)、Wii、Wii U、Windows Phone 8、Windows、Xbox 360、そしてXbox One。

団結


オープンフロリダ は、Flash API のオープンソースへの移植版です。 デスクトップ、ブラウザ、iOS、Android、Flash、HTML5などこれは、Flash の世界から来た人にとって考慮すべきオプションです。ネイティブ バイナリにビルドされ、ブラウザ (Flash/HTML5) もターゲットとします。

オープンフロリダ


モノゲーム Microsoft XNA 4.x Frameworkのオープンソース実装です。これにより、XNA 開発者はコードを非常に再利用できるクロスプラットフォーム ゲームを簡単に作成できるようになります。現在、iOS、Android、Windows (OpenGL と DirectX の両方)、Mac OS X、Linux、Windows 8 ストア、Windows Phone 8、PlayStation Mobile、OUYA コンソールをサポートしています。

モノゲーム


アドビフラッシュ 信じられないかもしれませんが、Adobe Flash はネイティブ バイナリを iOS、Android、デスクトップ、そしてもちろん Web に公開できます。パフォーマンスは妥当ですが、信じられないほどではありません。Flash ゲームをお持ちであれば、それをモバイルに簡単に取り込むことができるかもしれません。そして、これにはいかなる種類のプラグインも必要ありません。実際には、各プラットフォームで実行されるネイティブ スタンドアロン バイナリが作成されます。

アドビ

他のヒント

編集:この質問がなされて以来、多くの実行可能な解決策が開発されてきました。この回答の論調は依然として正確である可能性がありますが (HW / OS の恩恵を 100% 活用するにはネイティブ アプリが必要である可能性があります)、この質問の下に考えられる回答が多数見つかります。

Android と iPhone は両方とも、非常に厳密に定義されたユーザー インターフェイスを持っています。たとえ最も低いアスペクト レベル (Android はカスタム VM 上の Java でプログラムされ、iPhone は Objective-C でプログラムされたネイティブ コード) とより高いレベル (iPhone アプリは完全にサンドボックス化され分離されているため、Android オブジェクト モデルは分散され、クラスはアプリとライブラリ間で自由に呼び出されます)、最終的なアプリは、どちらの場合でも異質で場違いに感じられるでしょう。Android にはマルチタッチがないこと、または iPhone には専用のハードウェア ボタンがないことを考えてください。

最善の策は、プラットフォーム固有のユーザー インターフェイスを開発し、アプリケーションのモデルとコア ロジックを何らかのスクリプト言語で作成することです。次に、プレーン C (iPhone の場合) と Java (Android の場合) のインタープリターを見つけます。Scheme、Lisp、および Javascript がこの要件を満たす可能性があります。インタープリターがエンドユーザーに公開されないように注意してください。公開しないと、iPhone の NDA に違反することになります。

アプリがデータ量の多い場合は、多くの iPhone アプリのモデルに従い、iPhone と Android 用のネイティブ ユーザー インターフェイスを開発し、すべてのアプリケーション ロジックをリモート サーバーに置くことができます。UI がアプリケーションの唯一のインストール部分となり、その他はすべてネット上でホストされます。これには、異なるデバイスと Web インターフェイスの間でローミング プロファイルを提供できる可能性があるという追加の利点があります。

ここで別のサービスをパイルに追加します。 ローモービル まさにこれを作成しようとしています。90 年代初頭の Web を思い出してください。しかし、これはお気に入りのアプリをすべての主要なモバイル プラットフォームに移植する最も簡単な方法かもしれません。

詳細: ローモービルは次のことを約束します。一度構築すれば、あらゆるスマートフォンに導入可能

( 注記:私はローモビルで働いているわけではありません。ちょうど今日その話を知りました。)

私は iPhone や Android を直接使った経験はありませんが、「Titanium」に関する記事を読んだばかりで、そのサイトにアクセスしたところ、次のようなものを見つけました。

http://www.appcelerator.com/products/titanium-mobile/

私は「ネイティブ」ソリューションの Obj-C と Java (4 Android) を使用してかなりの作業を行っています。また、iPhone および Android 用の Appcelerator を使用してアプリを構築しましたが、これは問題なく動作します。Appcelerator API は非常に広範です。Appcelerator Kitchen Sink アプリには、アプリにすぐに組み込める多くの要素と機能が表示されます ( https://github.com/appcelerator/KitchenSink )。ただし、私の Appcelerator アプリはそれほど複雑ではないので、一般的に推奨するのは不安です。同僚は、開発チームがそれを試してみたが満足できなかったと言いました。しかし、彼は本当の理由を挙げることができなかった。ただし、どこに限界があるのか​​を確認するためにテストを続けます。大きな制限の 1 つは、プラットフォームのサポートです (現時点では iOS と Android のみ)。

Rhodes に関しては、このソリューションは、特にサポートされているプラ​​ットフォームの点で、机上では非常に優れているように見えます。ただし、それにはいくつかの問題があると思います。まず、デモ アプリとキッチン シンク アプリは多くのディスク容量を必要とし、動作が少し不安定で、見た目が奇妙になることがあります (少なくとも Android では)。第二に、「現実世界」のアプリケーションはほとんど見つかりません。少なくとも 1000 回以上ダウンロードされ、単なるデモ目的ではなく現実世界のニーズに応えているアプリを指します。私にとって、モバイル (コンシューマー) アプリでは使いやすさが最優先です。

私は HTML/CSS/JavaScript/PhoneGap アプリに大きな可能性を感じています。最近、大企業が HTML(5) を使用してアプリを構築していることに関する記事をいくつか読みました (例:Netflix http://mashable.com/2010/12/03/netflix-html5/, 、ジンガ http://www.spiel sucht24.de/2010/12/21/zynga-launches-html5-mafia-wars-atlantic-city-for-mobile-web/) Web テクノロジーを使用してモバイル アプリを構築する場合、使いやすさと軽快さに関して解決する必要がある問題がまだいくつかあります。もう 1 つの問題は、エンタープライズ レベルの HTML アプリのテスト、デバッグ、メンテナンスにある可能性があります。

ローモービルの Rhodes フレームワークはこれを行います。Rhodes アプリはそれぞれのスマートフォンにネイティブです

マイトピア には、RUGS と呼ばれる未リリースのフレームワークがあります。彼らは最近 TechCrunch 50 カンファレンスで発表しましたが、そのテクノロジーは非常に興味深いものでした。彼らは、すべてのスマートフォン プラットフォームで実行できるアプリケーションをコンパイルすることができました (そして、それぞれの機能を活用することができました)。たとえば、iPhone の加速度センサー)。残念ながら彼らの Webサイト さらに詳しい情報が必要な場合は、電子メールを送信する必要があるとのことです。本当にクロスプラットフォームのスマートフォンを対象としたシステムで開発したい場合は、電子メールを送ってみる価値があるかもしれません。

私は TC50 の Web キャストで彼らのプレゼンテーションを見ましたが、残念ながら今はビデオを見つけることができません。

どのフレームワークを使用することにしたのか、そしてそれを選んだ理由の概要を添えて、ここに返信してください。

QuickConnectiPhone を使用すると、JavaScript でアプリを作成できますが、それでもインストール可能です。Android バージョンは現時点では未リリースのアルファ版です。

両方があれば、JavaScript、CSS、HTML でアプリを作成し、iPhone または Android スマートフォンに電話をかけて、振動や GPS 位置情報などのデバイスの動作を確認することができます。

iPhone版は以下からダウンロードできます https://sourceforge.net/projects/quickconnect/ 私にご連絡いただければ、Android バージョンをお送りします。

たとえ本当にそうしたかったとしても、独自のマルチプラットフォーム フレームワークを作成するのは現実的ではありません。iPhone はネイティブ コード、Android は Java です。

もちろん、たとえば、デスクトップ アプリケーションのコア C/C++ ロジックを iPhone アプリケーションと共有することを妨げるものは何もありません。

これをチェックしてください:

http://www.xmlvm.org/overview/

これは、さまざまなソース言語で書かれたプログラムをさまざまなターゲット言語にクロスコンパイルできるようにするプロジェクトです。最初のテスト ケースの 1 つは、Java でプログラムを作成し、iPhone 上で実行することでした。サイト上のビデオを見るのは価値があります。彼らは、Android もターゲットにできる可能性について議論しました。

そうは言っても、私は試していません。このプロジェクトはかなりベータ版のようで、SourceForge サイトにはあまり活動がありません。

iSpectrum を使用して iPhone 用の Java アプリケーションを開発できます。こうすることで、Android と iPhone の間で一貫した量のアプリケーション コードを再利用できるようになります (操作内容によってはデスクトップ アプレットや J2ME MIDlet も再利用できる可能性があります:))

詳細については、 http://www.flexycore.com

最良の選択は AirPlay です。 AirPlay Web サイト

ワンクリックで、Android、Iphone、Samsung Bada、Symbian、Windows Mobile、BREW、WebOS、Maemo に展開できます。

私の著書「HTML5 for iOS and Android」では、HTML、JavaScript、CSS で作成された Web アプリを、アプリ ストアにアップロードできるスタンドアロン アプリに変換できます (無料または販売) – http://html5formobile.com - iOS および Android SDK でこれを行うためのラッパーは、Web サイトから無料で入手できます。本の指示に従えば、どちらのプログラミング言語の知識も必要ありません。

この質問はかなり古いものであることは承知していますが、Google 検索でよく出てくるので、更新しておいたほうが良いと思いました。

両方のプラットフォームをターゲットにして実際にネイティブで動作し、パフォーマンスの良いゲームを作成できる、現時点で優れたフレームワークはコロナだと思います。

リンク: http://www.anscamobile.com/corona/

Ice-Touch ミドルウェアを使用して、iPhone と Android の両方のデバイスが同じサーバーと通信できるようにすることに成功しました。ネットワーク オブジェクトとメソッドの非常に適切なコード生成を使用します。ただし、ローカル ロジックは依然として携帯電話の言語で記述する必要があります。こうすることで、モデルが同じサーバー上に存在し、コントローラーが自動生成されながら、それぞれの UI の利点を活用できます。

リンクテキスト

Gears プラグインを使用する Web アプリケーションでは、 地理位置情報 (もう入手できません)(GPS および Wifi 位置情報サービス)、これは Android で動作します(G1 のブラウザには Gears サポートが組み込まれています)。

iPhone で Gears サポートが得られるかどうかはわかりませんが、これも幅広いデバイスに対応しながら、追加機能を備えた Web アプリを構築するための有用なアプローチです。

このようなフレームワークは本質的に、加速度計やマルチフィンガージェスチャなどの iPhone 固有の機能を利用できません。また、Apple の SDK 規約も無効になる可能性があります。

andyuk が提案したように、Web アプリを作成することを検討してください。電話をかけるなどの基本機能 できる そのようにアクセスされます。

存在するものは何もありません(信頼する価値があるとしても)、公式に何かが計画されることはないと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top