前置き
普段仕事ではC#ばかりですが、趣味ではDelphiを美味しく頂いてます。
Delphi 10.2 Tokyo からは Enterprise 以上のエディションに
x64 Linuxコンパイラが追加され、UbuntuおよびRedHat Enterprise Linux向けの
コンソールアプリやサービスなどを開発することが出来るようになりました。
あれ…GUIは?
しかし残念なことにGUIアプリケーション開発には対応していません。
FireMonkeyはOpenGLなどを使って自前でUI描画してるのになんで対応してへんの?とも思いますが、
おそらく「Linuxデスクトップに需要あるのか?」という感じで優先度が下げられているのだと思います。
EmbarcaderoのロードマップにもLinux GUIの記載がありますが
あくまで検討中であり対応するかどうかすら決まってない状態です。
[2019/06/26編集]
Enterpriseエディション以上にバンドルされることになりました。
とはいえ完全な吸収・統合ではなくOEMでダウンロード権が付くイメージなので、
引き続きKSDevが開発していくようです。
元々KSDevから購入してた人への特典等は一切ありませn(ry)
颯爽と登場したFmxLinux
そうは言っても今どきのLinuxデスクトップはリッチなUIを備えているし、
ユーザーフレンドリーなツールが充実すれば自ずと需要も増えるんじゃないの?
個人的にはもう需要とか知らんからとにかくLinux GUIアプリ作ってみたい
ということでCrossVclで有名なKSDevの力作、FmxLinuxの出番です。
こちらは有償製品で、スタイルパックやCrossVclなど
他製品とセットで買うと多少お安く購入できます。
単品でも4万円ほどしますが、更新費用がかからない永久ライセンスとなります。
(KSDevの気が変わらなければ、ですが…)
バンドルなのでEnterpriseエディション以上であれば無料で使えます。
ただ、KSDevから購入すれば優先的なバージョンアップを受けることができ、
今後もしOEM契約解消された場合でも引き続き使用可能となります。
Enterprise以上のユーザは特別価格$99で購入できるようなので、死ぬほど使い倒す方は
今のうちに保険として購入しておくのもありです。
FmxLinuxのざっくり使用方法
インストールに関してはわざわざ書くほどでも
ないくらいシンプルであっさり終わるので省略します。
ここでは実際に開発する方法を軽く説明します。
(FmxLinuxは執筆時の最新版 v1.34 を使用)
まずいつもどおりマルチプラットフォームプロジェクトを
新規作成してフォームデザイン&コーディングします。
LinuxはOSXと同じでTMainMenu
を使用することでメニューも作れます。
※ちなみにこのサンプルは、別件で開発中のPC88風フィルタアプリと同じ処理を
選択した画像に適用するもので、GUIの他にTBitmapなどをがっつり使っています。
プロジェクトマネージャを右クリックすると
Add Linux Platform
メニューが
追加されていますのでクリックします。
はい、これだけです。
あとはEmbarcaderoのドキュメントでも説明されている通りに
Linux環境への接続設定を行い、PAServerを実行してデバッグ開始すれば起動します。
Windows
Ubuntu
RedHat Enterprise Linux
ついでにXubuntu、Ubuntu Budgie、ChaletOS、Voyager Linux
キャプチャにはありませんが、TOpenDialog
によるファイル選択ダイアログもしっかり開きます。
尚、FmxLinuxに搭載されているテーマはUbuntuとRHELのみで、
Ubuntu以外のディストリではすべてRHELテーマで表示されるので見た目が一致しません。
各ディストリビューションの対応状況
FmxLinux公式フォーラムで有志によって報告されているものです。
また問題のあるものでも今後のバージョンアップで解消される可能性があります。
(太字は私が日本語環境で動作確認したものとなります)
動作するディストリ
問題のあるディストリ
まとめ
Delphi Enterprise エディション以上が必要というハードルはありますが、
かなりしっかり動作するのでLinuxデスクトップアプリ開発の選択肢として断然アリです。
すべてのコンポーネントを試したわけではないのでおそらく細かい不具合もありますが、
バージョンアップも頻繁に行われており積極的に報告するとみんなが幸せになれるかもしれません。