JavaFx をフロントエンド言語として、Java をバックエンド言語として使用するデスクトップ アプリケーションが動作しています。これは、同じアプリケーションの特別な機能をモバイル デバイスでも動作させる必要があるまでは問題ありませんでした (2 ~ 3 年前)。そのため、これらの新しい機能を実装するAndroidアプリが作成されました(最初のターゲットOSでした)(重複する機能はほとんど重複していません)。デスクトップ クライアントと Android クライアントは、P2P プロトコルで情報を同期します。
これは今までは問題ありませんでしたが、最終的には、GUI がほとんど同じである別のコードを維持することが非常に困難であることがわかりました。もう 1 つの問題は、JavaFx クライアントと Android でよりリッチな GUI エクスペリエンスを実現することです (ただし、ネイティブな外観になります)。JavaFx を使用して、ツリーやネストされた複雑なテーブルなどの複雑なコンポーネントを作成するのは非常に面倒です。
最近のトレンドを調査した結果、HTML5/CSS3/JavaScript ベースの GUI を使用する必要があると確信しました。これらの GUI は、さまざまなデバイス (デスクトップ用のElectronやモバイル用のCordovaなど) の要件に従ってパッケージ化できます。私の基本的なhtmlコードが変わらないという利点があります。
ここでの問題は、サーバー側で node.js を使用したくないので、Java バックエンドを使い続けたいということです。Web テクノロジで完全な GUI を書き直す場合、Java コードと通信するための最良のオプションは何ですか?
クライアントサーバーモデルが組み込みサーバーのオーバーヘッドを回避したくないことに注意してください(したがって、RESTサービスを使用することは範囲外です)。
プロジェクトに関する詳細
重いグラフィックスが必要で、OpenGL と OpenGL ES を使用する
現在、GUI (JavaFX または Android ) は、Java バックエンド コード (GUI -> バックエンドから) を直接呼び出し、イベント (バックエンド -> GUI) を発生させることによって通信しています。
新しいバイナリを使用して新しいバージョンがユーザーに配信されるため、自動更新は必要ありません。
最初の要件は、WebGL をサポートするフレームワーク/ツールキットで満たされると思います。上から2番目のポイントを実装する方法を探しています。
私は以下のようないくつかの質問をしましたが、それらはすべて、クライアントサーバーベースのアーキテクチャまたは JavaFx (WebView または JxBrowser) へのブラウザーの埋め込み、または JavaFX-Android SDK を使用して Android に JavaFX アプリを直接移植することについて話していますが、私の要件によれば、どちらも望んでいませんclient-server は JavaFx を続行しません。
スクロール可能なペインで使用するための Pure Java HTML ビューアー/レンダラー
HTML と CSS を Java アプリケーションの GUI として使用するには?
Java バックエンドと Web テクノロジ UI を使用してデスクトップ アプリケーションを作成することは可能ですか?
要約 - 私が Web テクノロジを使用している場合、GUI から Java へ、またはサーバー ベース アプリケーションではない場合にその逆に通信する方法は何ですか。私が見つけたのはnode-javaでしたが、それが正しいアプローチであり、将来のJavaバージョンに依存できるかどうかはわかりません(現在Java 1.8を使用しています)