プロジェクト

全般

プロフィール

つれづれなるままに、GUI構築技術

高橋 徹 さんが6年以上前に追加

GUI構築、特にスタンドアロンプログラムやデスクトッププログラムを作るためのGUI技術についてつれづれなるままに書き連ねていきます。


返答 (3)

Electron - Web技術で作るスタンドアロン・デスクトッププログラム - 高橋 徹 さんが6年以上前に追加

Electronは、GitHub社が開発したAtomエディタの基盤技術から発展したデスクトッププログラム開発技術です。
2016年にVer.1.0リリース、その中核は、ChromiumとNode.jsです。
Web技術であるHTML5、CSS3、JavaScriptを使ってデスクトッププログラムの開発ができます。
また、クロスプラットフォーム(Windows、Linux、MacOS X)で開発・実行できます。

開発環境は、まずNode.jsをインストールし(WindowsであればMSI形式インストーラーをダウンロードして実行)、続いてNode.jsの付属コマンドのnpmを使ってelectronをインストールします。エントリポイントとなるJavaScriptファイル(例:main.js)を作って実行します。main.jsではChromiumを使ってHTMLファイルを読み込ませ画面を開くコードを記述しておきます。実行すると、プロセスが複数起動します(Chromium用プロセス数個とNode.js用のメインプロセス1個)。

作ったプログラムの配布は、プログラムとElectronと一緒にまとめたパッケージをOS毎に作り、それを授受します。

UIは基本Webとなります。クロスサイトスクリプティング対策といったセキュリティ上の考慮も必要です。Electronではローカルリソースも触れるので、しっかり作る必要があります。
コードは、DOMを操作するのが主体となるようです。

Electronがフィットするのはどういう状況なのだろうか・・・と疑問もありますが、まあ一つの技術ということで。

Closs-Platform Desktop Development (JavaFX vs. Electron) - 高橋 徹 さんが6年以上前に追加

スウェーデンのベクショーにあるLinnaeus大学の学生プロジェクトで、クロスプラットフォームなデスクトップアプリケーションを開発する技術のうち、JavaFXとElectronを比較したものです。

http://lnu.diva-portal.org/smash/get/diva2:1081105/FULLTEXT01.pdf

Xamarin簡単まとめ - 高橋 徹 さんが6年以上前に追加

Xamarinは、Xamarin社が開発しMicrosoftに買収され売り出し中の、主にスマートフォン用アプリケーション開発でクロスプラットフォームを指向した技術です。開発言語はC#ですが、APIは.NET Frameworkとは別物となります。

対象OSは、iOS、Android、およびWindows UWPの3つです。(MacOS Xも入る? ならば4つ)
WindowsデスクトップとLinuxはXamarinでは対象外のようです。

となり、ビルドはそれぞれのOS向けにする必要があります。
つまり、ソースコードレベルのクロスプラットフォーム技術がXamarinということになります。

Xamarinには、2種類のアプリケーション構成方法があります。

  1. Xamarin Native
  2. Xamarin.Forms

1. は、GUI系、OS固有APIを除くロジック部分のソースコードだけがクロスプラットフォームとなります。GUI系、OS固有APIを使うロジックは、OS毎に別々に作り込みます(APIがOS固有なため)。
2. は、GUI系に対象OS共通のサブセット(Xamarin.Forms)を使い、OS固有APIは用いないことで、ソースコードのクロスプラットフォームを確保します。GUIはサブセットなので機能は限定的です。

共通のロジック部分をPCL(Portable Class Libraries)と呼ぶ模様です。
OS固有のGUIとAPIは、Xamarin.iOS、Xamarin.Androidなどと呼ばれているようです。
実行環境(VMと基盤となるクラスライブラリ)は、Monoを使っているようです。
ビルドしたバイナリはもしかするとクロスプラットフォームではない(ソースレベルの共通、#ifdef があるため厄介)かもしれません。

PCL、Shared、.NET Standard、.NET Core と似て非なるものが目下氾濫中で混乱しています。

開発環境について
Visual StudioのProfessional以上が必要です。

Windows UWPをビルドするにはWindows 10が必要
iOS用プログラムをビルドするにはMacOS Xが必要
Android用プログラムのビルドはWindows上で可能だが、実行はAndroid実機かエミュレータが必要

    (1-3/3)