Transcript
00:00:00Paikはコマンドラインツールで、Webサイトをコマンド一つでネイティブなデスクトップアプリに変換できます。
00:00:05Rustで構築されているため、生成されるアプリのサイズは約5MBと非常に軽量です。
00:00:10ElectronのようにアプリごとにChromeのコピーを丸ごと含める必要はありません。さらに、
00:00:15Rustのコードを一行も書かずに、カスタムCSSやJavaScriptの挿入、トレイアイコンの設定、
00:00:20タイトルバーのスタイルの変更まで可能です。でも、なぜ他の類似ツールではなくこれを使うのか、
00:00:25Rust製なのにPNPMやNPMが必要なのか。正直あまり知りたくはありませんが、
00:00:31チャンネル登録をして、一緒に見ていきましょう。Paikは2022年に、中国のプロダクトエンジニアであるTW93氏によって作成されました。
00:00:40彼は、私も実際に愛用しているMac最適化ツールの「Mole」の作者でもあります。
00:00:45Paikのコンセプトは非常に理にかなっています。考えてみてください。
00:00:49YouTube Music、Gmail、Instagramなどには公式のネイティブアプリが存在しません。
00:00:55普段はブラウザのタブ内で使いますが、もしブラウザとは別に独自のドックアイコンを持ち、
00:00:59より快適に動作するスタンドアロンアプリとして使いたいなら、これは非常に便利です。
00:01:04そこでPaikの出番です。PaikはElectronよりも優れています。
00:01:09なぜならTauri 2をベースにしており、システムのネイティブなWebViewを利用するため、
00:01:14アプリがより小さく、高速で、メモリ消費も抑えられます。Electro、Bun、VercelのZero Nativeに近い仕組みです。
00:01:19それらについては後ほど詳しく話します。TW93氏がTauri 2の上に書いたカスタムコードは
00:01:24約1800行のRustコードで、ウィンドウ管理やネイティブメニュー、JavaScriptの注入などを
00:01:30処理しています。コマンドを実行するだけでPaikがすべてを処理してくれます。実際に
00:01:35私のフィルムエミュレーションプロジェクトをPaikでスタンドアロンアプリにしてみましょう。Paik CLIをインストールすると、
00:01:40Moleを使ったことがある人には非常に馴染み深く見えるはずです。フラグが少ないのも個人的には良い点だと思います。
00:01:45プロジェクトサーバーを起動した状態で、URLとアプリ名を入力してPaikを実行します。
00:01:50エンターキーを押すとアイコンを取得し、アプリ作成プロセスが始まります。
00:01:55所要時間は5〜10分ほどです。完了すると4.3MBのファイルが作成されます。
00:02:00クリックするとアプリが表示されます。これをアプリケーションフォルダにドラッグしてインストールできます。
00:02:05アイコンはうまく読み込めなかったようですが、問題ありません。
00:02:10アプリを開くとすぐに起動し、ドックにもアイコンが表示されます。ビデオを選択しても問題なく動作します。
00:02:14アクティビティモニタで確認してみましょう。
00:02:19このアプリのメモリ使用量はわずか61MBです。Arcブラウザはもっと大量に消費しています。
00:02:24アプリのサイズは55MBで、SlackのようなElectronアプリが310MBあるのと比べると非常に軽量です。
00:02:30しかし前述の通り、Paikには興味深いオプションもいくつかあります。
00:02:35例えば、debugフラグ付きでビルドすれば開発者ツールにアクセスできます。
00:02:40また、hide title barフラグを使えばフレームレスなタイトルバーになり、よりアプリらしくなります。
00:02:46ただ、このアプリはフレームレス用に設計されていないようです。しかし幸いなことに、
00:02:51Paikにはアプリのソースコードを編集せずに修正するオプションがあります。カスタムCSSを書き、
00:02:56injectフラグを使って挿入しました。上部に余白ができたおかげで解消しましたが、
00:03:01今度は下側にスクロールスペースができてしまいました。show system trayフラグを使えば、
00:03:06システムトレイにアイコンを表示し、アプリの表示・非表示を切り替えられます。CSSだけでなくJavaScriptの挿入も可能です。
00:03:12ただし、現時点ではPaikがデフォルトで提供するメニュー項目を編集することはできないようです。
00:03:17また、Paikは実行中のURLでしか動作しません。サーバーを閉じると、アプリを開いても空白画面が表示されます。
00:03:23ただ公平に言えば、Paikはローカルアプリ用に設計されたわけではありません。試しにYouTube Musicを
00:03:28コマンド一つでアプリ化しましたが、驚くほど快適です。サイトの仕組み上、オフラインでも動作します。
00:03:33今ではこれをメインの音楽プレイヤーとして使っています。
00:03:38ただ、基本的には実行中のURLをラップするツールなので、
00:03:42ローカルファイルを指定するオプションを使わない限り、コードをバンドルするツールではありません(これについては動画作成後に知りました)。
00:03:48また、作りがあまり良くないとも言えます。というのは、
00:03:53私はPNPMやNPMではなくBUNを使ってPaikをインストールしましたが、内部でTauriのビルドにはいずれかが必要でした。
00:04:00私のPNPMのバージョンが要件より新しかったためにビルドが拒否され、
00:04:05動作させるためにClaude Codeを使ってPaikのソースコードを書き換える必要がありました。
00:04:11問題のissueは見つけましたが、コンパイル済みのバイナリで提供されていれば全て解決していたはずです。
00:04:15それがElectroBUNやZeroNativeのようなツールを使う利点です。
00:04:20ElectroBUNはWebViewの裏で真のBunランタイムを提供するため、バックエンドのロジックを実行できます。
00:04:25さらにZeroNativeは、Cライブラリを直接呼び出せる完全なZigシェルを提供します。
00:04:31つまり、ライブWebサイトをラップするだけならPaikが最速ですが、それ以上の機能が必要なら
00:04:36他のツールを選ぶのが賢明です。
Community Posts
No posts yet. Be the first to write about this video!
Write about this video