このアプリについて
ターゲットオーディエンスこのアプリは、WebFXプロジェクトに従って開発者向けに公開されており、プロジェクトデモの一部です。
新しい聴衆のために
WebFXは、単一のJavaコードベースから7つのプラットフォーム(Web、Android、iOS、Macos、Linux、Rinax、Raspberry Piなどの埋め込み)をターゲットにできる無料のオープンソースクロスプラットフォームソリューションです。
基礎となるテクノロジー:OpenJFX、Gluon、GWT。
たとえば、https://mandelbrot.webfx.devのこの同じアプリのWebバージョンにアクセスできます
プラットフォームが何であれ、アプリケーションソースコードはまったく同じです(以下のリンクセクションを参照して、このデモのソースコードにアクセスしてください)。
アプリケーションはJavaで記述されており、Javafx APIを使用してユーザーインターフェイスを構築します。
Gluon Toolchain(Graalvmの上に構築された)は、Webを除くすべてのプラットフォームのネイティブアプリにアプリケーションJavaコードをコンパイルするために使用されます(これにはこのAndroidバージョンが含まれます)。
GWTは、Webバージョンのコンパイルに使用されます。 Javaコードを最適化されたJavaScriptコードに送信します。
その結果、すべてのプラットフォームのすべての実行可能ファイルは、最適化されたパフォーマンスを提供します。
この特定のデモについて
このデモはRay Tracerデモに似ていますが、さらにWebプラットフォーム上のWebAssemblyを利用しています。
Ray Tracerのように、Mandelbrot Demoは、CPUの使用量が多いにもかかわらずUIをブロックしないアプリの例を示しています。
アプリケーションが計算を行っている間、UIはまだ反応的ですが、バックグラウンドで計算を継続しながら、これまでに計算されたアニメーションを再生することもできます。
これは、WebFXワーカーAPIおよびWebAssembly APIを使用して達成されます。これは、Webプラットフォーム用の実際のWebワーカー、および他のプラットフォーム用の標準Javaスレッドに翻訳されます。
WebAssemblyがサポートされている場合(Webプラットフォームのみ)、計算はWebAssemblyを使用して行われます。
リンク
デモソースコード:https://github.com/webfx-demos/webfx-demo-mandelbrot
WebFX Webサイト:https://webfx.dev
webfx github:https://github.com/webfx-project/webfx