Tauriを使って私のローカルサーバにあるあんまり需要ないアプリをデスクトップに移植しました。
正直Rustに全くと言っていいほど手慣れてないのでElectronより大変だと思いますが、開発環境やコマンド自体はElectronよりかなり楽であり、そのあたりの体験は良いかと思います。 しかしながら、単純なところではありますが、注意点はいくつか出てきたのでメモしておこうと思います。
ちなみにこのアプリは、オレオレしょぼツールなのですが、要するにはNext.js製のピュアなSPAなのでフロントエンド技術しか使ってません。ので、IPC使ってないのでRust使いません(やりかたとしてはElectronと大体同じで、Command
ってのを使う構成らしい)。それでもなんかそれっぽいの作れるのはやりやすい。
そして起動がどのOSでも結構軽快です。ベンチを測ってないですが、Electronより体感は全然良いです。正直WindowsのWinFormsよりもたつきなくないか感が。ネイティブしてないのに早くて良いんですかァ。
Linuxでの開発環境構築
公式の推奨パッケージにlibwebkit2gtk-4.1-devがあるのですが、これには注意しましょう。
私はUbuntu 24.04なので手に入るのですが、特に古いリポジトリを参照しているOSの場合そもそもこの共有ライブラリがまともに手に入りません。そういうところがちょっと不便だと思います。
また、ちょっと公式のわかりにくいところがv2とv1で地味に必要な共有ライブラリのバージョンを変えています。検索でv1のドキュメントが引っかかりやすいので、URLに気付かず正直一回私も引っかかりました。
とても単純な話なのですが、うっかりしないように気をつけましょう。
WebView vs WebKit
次に面倒なのはWeb APIの実装ランタイムの差異です。これは比較検討としてはElectoronとの想定です。 あるライブラリを使ってたのんですが、わかりやすくLinuxビルドで動かないってなりました。 これはTauriがフレームワークそのもののコンセプトとしてWebView(Windows)とWebKit(Linux/MacOS)で使い分けて、小さく軽くしようぜ、って形だからです。
一例としてはReadableStreamBYOBReaderが私の場合問題となっていました。Tauriでの開発の場合、見るべきはWindowsがChromeでLinux/MacOSの場合がSafariです。osプラグインを突っ込んで、上手く動かない場合は処理を判別するようにしましょう。とりあえず代替のロジックを作成する修正を入れましたが、なんか出来なさそうな場合は諦めましょう。
しかしSafariって結構メンドイんだな、、意外と標準頑張ってない
AppImageのバイナリサイズ
Tauriはブラウザ部分を削ってファイルサイズの削減が出来ることが魅力です。具体的にはWindowsだとフロント技術だけ使った私のアプリで10MBくらい。すごい。このサイズ感は、基本的にWPFやAvaloniaなどで、とりあえず.NET系のフレームワーク使って各種セルフホストバイナリを吐かせるよりは、かなり少ないサイズ感です(セルフホストしなければ別ですが、環境差異はあまり出したくないので)。
なぜこれが出来るかと言えば、Windowsには都合よくWebView2ランタイムがあるからです。最近はマイクロソフトのOfficeアプリも結構これないと許さないマンの攻勢ですから、Windows 11使っててオフィス入れてますよ、Edgeは絶対ゆるさないマンじゃないみたいなPC環境なら動く環境は多いでしょう。
しかしながら、Linuxではその限りではないことが分かりました。恐らくはランタイムもAppImageで吐いた場合パッキングするので動きはするのですが、なんと190MBもあります。差がでかすぎる。
正直これは最適化の度合いにもよりますが、デフォのサイズ感はElectronよりも上になりえます。おそらく最適化はどんどん進んでいくと思いますが、なにせ差がぶっ飛んでた感想がありましたので、その点は注意しましょう。
AppImageにはGear Leverが良いのかも
これはTauriとは関係ないのですが、Gear Leverと言うアプリを(Flathubストア)で見つけまして、AppImage管理はAppImage Launcherより断然オススメです。
Tauriで発行したAppImageはAppImage Launcherが一々登録する?って聞いてくるんですが(設定で切れますが)、どうもデータのエクストラクトで失敗するようです。原因はよくワカラン。AppImage Launcherは非常にメジャーなツールだと思われるのですが、まともに更新すらされておらず渋々使ってました。 デスクトップじゃないイメージですら聞いてきてはのポンコツっぷりだったので、正直使うのやめたいなとはずっと思っていました。
しかし、このツールは非常によく動作し、管理も結構楽ちんです。作者はTENSAI。
と言うことで、Linuxのアプリツール管理はこのソフトもご検討してみてはいかがでしょうか。他の良いアプリもあるかもしれないけど、とりあえず気に入った!
そんなこんなで、皆様よいお年を。