web-dev-qa-db-ja.com

ユニバーサルアプリはプラットフォーム固有のアプリよりも効率が悪いのですか?

アプリのユニバーサルダウンロードを見たことがあります。 Windows、MacOS、Linuxで動作すると言われています。まったく同じアプリが、コードを変更せずに3つの異なる上で動作するように設計されている場合。たとえば、Javaはクロスプラットフォームで実行できます。ダウンロードがすべてのプラットフォームで実行されるように設計されているユニバーサルアプリを作成するよりも、プラットフォーム固有のアプリを作成する方がパフォーマンスにメリットがありますか?

1
user12211554

Windows、Linux、MacOSで単一のバイナリとしてネイティブに実行されるアプリはありません。マルチプラットフォームアプリケーションにはいくつかのアプローチがあります。

  • Javaなどの複数のプラットフォームで実行されるランタイムを使用します。オペレーティングシステムではなくJavaをターゲットとする場合、ユーザーがJavaをインストールしている限り実行されます。ただし、何かが実行される前に、JavaをWindowsまたはLinux(およびおそらくMacOS)にインストールする必要があります。
    • コンパイル時にさまざまな環境をターゲットにできるフレームワークまたはライブラリを使用する

主な欠点はパフォーマンスではないと思います。結果のアプリは、ターゲットOSの見た目や、利用できる機能がターゲットOSと一致しないことです。マルチプラットフォームアプリは、ターゲットOSの規則に準拠していないことが多く、ユーザーのエントリーレベルが高くなります。たとえば、Visual Studioのコードは、Windows上のWindowsアプリケーションのようには見えません(ただし、彼らの功績は非常に高くなっています)。何でも印刷して頑張ってください。

ただし、多くのアプリはOSの統合をあまり必要とせず(だれがコードを出力するのですか?)、オペレーティングシステムの管理にリソースを費やさないことの利点は欠点を上回ります

1
Martin K