0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Tauriでエンジンからゲームを作ってみるAdvent Calendar 2024

Day 17

【Day17】便利なプラグインをここらで解説【QAC24】

Last updated at Posted at 2024-12-16

昨日説明したやつの延長線上なんですが

Overview として以下に Tauri v2 の Plugin の情報があります。

が、全てを紹介していくのも当然面倒極まりないので、便利そう...?なものをいくつかピックアップしてみました。

Clipboard

これは名の通り Clipboard を管理するための Plugin です。

writeTextreadTextというメソッドを使うことで、クリップボードの書き込み、読み込みが出来ます。

import { writeText, readText } from "@tauri-apps/plugin-clipboard-manager";

await writeText("Hello, clipboard!");

console.log(await readText());
// おおよそ "Hello, clipboard!" になるだろう。

Dialog

様々なダイアログを表示するための Plugin です。

実演した方がはやいでしょう。

import { confirm } from "@tauri-apps/plugin-dialog";

const result = await confirm("進めちゃうよ!", {
  title: "かくにん!",
  kind: "warning",
});
console.log(result);

スクリーンショット 2024-12-15 233209.png

雑にやっちゃうとこんな感じのコードで、いい感じのダイアログが出てきます。

...あれ? TypeScript デフォのalertとかconfirmとか...?
考えてみればあそこらへんは同期処理なので、もしかしたら正式にはこっちを使う方がいいのかもしれませんね。
なにより、デフォルトのものは WebView のデザインなので少しダサいというかなんというかごにょごにょ...

File System

前述なのでほぼ省略です。

ファイルの作成や削除、読み込み、書き込みが出来ます。
以外にもコピーとかなんかそこらへんも出来ちゃいます。

更にはwatchを使うことで、ファイルの変更がされたかどうかを監視することもできます。
これなんか凄そうですよね。

HTTP Client

記事を書きながら調べているのですが、Dialog同様「ほほ~...」ってなりました。
HTTP リクエストを送るための Plugin です。

TypeScript ではデフォルトでfetchというものがあり、これを使うことで HTTP リクエストを送ることが出来ます。
同様のものとしてこのHTTP Clientがあり、関数の名前も同じくfetchです。

何が違うかというと、権限設定によってリクエストできるページや、出来ないページを設定することが出来るという点です。
それ以外は基本デフォルトfetchと同じなのですが、セキュリティを意識する上ではこちらのHTTP Clientを使う方がいいかもしれませんね。

Single Instance

これは TypeScript 側でどうのこーのみたいなプラグインではありませんが、アプリケーションの起動を制御するための Plugin です。

どういうことかというと、アプリケーションが複数起動されるのを防ぐための Plugin です。
例えば、アプリケーションが複数起動されると、データの競合が起こる可能性があるので、それを防ぐために使います。

Store

かなり便利な Plugin です。

これは、何かしらのデータを保存したいときに使います。

import { load } from "@tauri-apps/plugin-store";

const store = await load("anything-store", { autoSave: false });

await store.set("username", "Harold");

const val = await store.get<string>("username");
console.log(val);
// Harold が出力されるはず

await store.save();

このように、loadでストアを読み込み、setで値を設定、getで値を取得、saveで保存することが出来ます。

このストアに保存したデータは Rust 側でも取得することが出来て、多分セーブデータとかに使えそうですね。
中身は良くも悪くも JSON なので...まぁ、うん。

まとめ

このように、様々なプラグインがデフォルトで用意されています。
これを活用することでより幅広い表現が出来ると思うのですが...アイデアは思いつきましたか?

一番上のリンクのページを見てもらえばわかる通り、まだたくさんあるので気になった方は片っ端から見てみてください。

さーて次回はついに主人公を配置します。
これだけで一気に「おぉ...」ってなるので...(代わりにコードはえぐ汚いが)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?