Tauri 2.0とTypeScript+Reactで作るキーロガー
こんにちは村上と言います。音楽プロデューサーをやっていますが、
また性懲りもなくニッチなデスクトップアプリを作りました。
キーボードのよく使うキーを可視化し、45%/60%/75%などのキーボード選択やカスタマイズをサポートをするキーロガーです。
日付範囲やアプリごとによく使うキーのランキングや分布を分かりやすく表示します。日付は1日単位の記録なのでパスワードの復元などは困難だと思いますが、キーロガーではあるので、取り扱いにはご注意ください。
初挑戦のTauri
常駐型で、少しでも軽くしたいのでElectronは選択肢から外れます。
Wailsも今まで2,3アプリほど作り、好きなフレームワークなんですが意外と細かい落とし穴も多くて、今回はTauriでやってみることに。Rustは正直ミリしらですが、、、AIの力を借りてなんとか形にしました。
公式サイトが割と使いやすく、やりたいことを検索するとサクサク引っかかります。
ドキュメントはWailsよりだいぶ良いです。Electronは実績多数とはいえ、やはり色々無理して発展してきたところがあり、謎の複雑さに向き合わざるを得ません。
Wailsと比べるとTauri2.0はよりバックエンドRustに触らなくてもかなりのことがプラグインの導入だけでJS側で出来るようになっています。ビルドも簡単です。システムトレイがすんなり実装できたのが今回の決め手でした。(Wailsはまだα版のv3からの対応)
ハマりポイント
キーロガーはrdevというクレートを使っていますが、これがMacでキーボードをロギングすると落ちるバグがあり、フォーク版のhttps://github.com/fufesou/rdev というやつを使いました。
詰まったところと言えばそこくらいですね。
フロントエンド
いつものMUIです。チャートもMUI-Xで楽ちんです。
キーボードのマップは手打ちで、レイアウトも手作業です。泣けてくるね。
めちゃくちゃお試しアプリなので、今回はテストもなしです。
フロントエンドはほとんど1コードのシンプルなアプリなので、Tauri気になってる方はソースコード覗いてみてください。
ではでは。
Discussion