17
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rust によるデスクトップアプリケーション開発環境構築 with Tauri 1.2

Last updated at Posted at 2022-06-19

更新履歴

この記事について

2022年06月16日、クロスプラットフォーム対応のアプリケーションフレームワーク「Tauri」から、初の安定版となる v1.0 がリリースされました。以前から注目していたフレームワークだったので、この機会に開発環境の構築手順を整理しておこう!ということで記事にしました。

Tauri とは?

Electron の代替を目指して開発が進められている、クロスプラットフォームの GUI フレームワークです。Electron と比べて「バイナリサイズが小さい」「処理が速い」といった特徴があります。
現時点ではデスクトップアプリのみがサポートされていますが、今後はモバイルアプリへの対応も予定されているそうです。

公式サイト より抜粋
Tauri is a toolkit that helps developers make applications for the major desktop platforms - using virtually any frontend framework in existence. The core is built with Rust, and the CLI leverages Node.js making Tauri a genuinely polyglot approach to creating and maintaining great apps.

日本語訳 by @slangsoft
Tauri は、現存するほぼ全てのフロントエンドフレームワークを使用し、主要なデスクトッププラットフォーム用のアプリケーション開発を支援する、開発者向けツールキットです。コアは Rust で構築され、CLI は Node.js を活用することで、優れたアプリケーションを作成・維持するための純粋なポリグロットアプローチとなっています。

パッケージマネージャーについて

この記事では Chocolatey というパッケージマネージャーを使って必要なソフトウェアのインストールを行っていきます。
PowerShell を管理者として起動し、以下のコマンドを実行するだけで導入できます。是非この機会に導入してみてください。

Windows PowerShell
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

事前準備

VSCode の拡張機能インストール

下記の拡張機能をインストールしておきましょう。

  • rust-analyzer
    VSCode に Rust のサポートを提供します。rust-lang.rust を置き換えるものとして推奨されています。
  • CodeLLDB
    次世代の高機能デバッガーです。Linux / MacOS / Windows をサポートしており、リモートデバッグにも対応しています。

Information
Ubuntu への LLDB 導入でお困りですか?
詳細な手順を以下の記事で解説していますので、ぜひ参考にしてください。

必要なソフトウェアのインストール

ここでは以下のソフトウェアを一気にインストールします。

  • Git
    Rust プロジェクトでは既定で Git が使用されるため必要。
    敢えて Git を使用しない構成にもできますが、この記事では触れません。
  • Node.js
    Tauri & yarn の導入に使用します。
  • Visual C++ build tools
    Rust のコンパイラが含まれています。
  • .NET SDK
    VSCode でデバッグ実行する際に必要。

PowerShell を管理者として起動し、以下のコマンドを実行します。ビルドツールのインストールに少し時間がかかるので、完了までコーヒー ( または紅茶 ) でも飲みながらノンビリと待ちましょう。
インストール中に「~には含まれていません」といったメッセージが出ますが、スルーで大丈夫みたいです。

Windows PowerShell
choco install git nodejs visualstudio2022-workload-vctools dotnet-sdk -y

Rust のインストール

PowerShell を管理者として起動し、以下のコマンドを実行します。

Windows PowerShell
choco install rustup.install -y

rustup のインストール時に設定された環境変数を PowerShell に読み込ませます。

Windows PowerShell
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")

Rust が正常にインストールされていることを確認します。
バージョンナンバー、コミットハッシュ、最新の安定版がリリースされた日時が表示されれば OK です。

Power Shell
rustc --version
# rustc 1.61.0 (fe5b13d68 2022-05-18)

念のために Rust toolchains と rustup のアップデートを実行しておきましょう。

Windows PowerShell
rustup update
# info: syncing channel updates for 'stable-x86_64-pc-windows-msvc'
# info: checking for self-updates
# stable-x86_64-pc-windows-msvc unchanged - rustc 1.61.0 (fe5b13d68 2022-05-18)
# info: cleaning up downloads & tmp directories

Hello World!

カレントディレクトリをホームディレクトリに変更し、cargo コマンドで新規プロジェクトを作成。VSCode で開きます。

Windows PowerShell
cd ~/
cargo new rust_hello_world
# Created binary (application) `rust_hello_world` package
cd rust_hello_world
code .

VSCode が起動したら main.rs を開きます。
ここで自動的に rust-analyzer によるプロジェクトの解析が始まります。rust-analyzerready ( 解析完了 ) になったら Run をクリックしてプログラムを実行します。
tempsnip.png

VSCode Terminal
# > Executing task: C:\Users\slangsoft\.cargo\bin\cargo.exe run --package rust_hello_world --bin rust_hello_world <
# 
#     Finished dev [unoptimized + debuginfo] target(s) in 0.02s
#      Running `target\debug\rust_hello_world.exe`
# Hello, world!
# 
# Terminal will be reused by tasks, press any key to close it.

Rust プログラムのデバッグ方法

今のままでも rust-analyzerDebug ボタンからデバッグ実行できますが、以下の設定を行っておくことで F5 で実行できるようになります。

launch.json ファイルの作成

Ctrl+Shift+D でデバッグウィンドウを開き、続けて Run and Debug ボタンをクリックします。
tempsnip2.png
Cannot start debugging because no launch configuration has been provided.
ここは OK をクリック。
tempsnip_03.png
Cargo.toml has been detected in this workspace.
Would you like to generate launch configurations for its targets?
ここは Yes をクリック。
tempsnip_04.png
これで launch.json が自動生成されます。修正は必要ありませんので、そのまま閉じておきましょう。

デバッグ実行のテスト

main.rsprintln マクロの行にブレークポイントを設定して F5 を押してみます。
どうでしょうか。画像の様にブレークすれば成功です。
tempsnip_05.png

Tauri プロジェクト生成

PowerShell の実行ポリシー変更

※この手順は初回のみ必要
PowerShell を管理者として起動し、以下のコマンドを順に実行します。

Windows PowerShell
# 実行ポリシーの確認
Get-ExecutionPolicy
# 実行ポリシーの変更
Set-ExecutionPolicy RemoteSigned
# 実行ポリシーが変更されたことを確認
Get-ExecutionPolicy

PowerShell の実行ポリシー
PowerShell が構成ファイルを読み込み、スクリプトを実行する条件を制御する安全機能です。
Windows10 の規定値は Restricted に設定されているため、そのままでは yarn の実行がブロックされます。
実行ポリシーの詳細は Microsoft 公式サイト を参照してください。

yarn のインストール

※この手順は初回のみ必要
PowerShell を管理者として起動し、以下のコマンドを順に実行します。

Windows PowerShell
# npm を最新版にアップデート
npm install -g npm
# changed 1 package, and audited 201 packages in 3s
# 11 packages are looking for funding
#   run `npm fund` for details
# found 0 vulnerabilities
npm --version
# 8.12.2
npm install -g yarn
# changed 1 package, and audited 2 packages in 649ms
# found 0 vulnerabilities
yarn --version
# 1.22.19

Tauri プロジェクト生成

カレントディレクトリをホームディレクトリに変更し、yarn create tauri-app コマンドでプロジェクトを新規作成します。
途中で 3 つの質問がありますので、以下を参考に回答して進めてください。

  • Project name
    作成するプロジェクトの名前を入力します。ここではデフォルトの tauri-app としています。
  • Choose your package manager
    パッケージマネージャーを選択します。ここでは yarn を選択して進めます。
    cargo を選択すると、フロントエンドの選択肢が Vanillayew に限定されてしまいますので注意してください。
  • Choose your UI template
    フロントエンドのテンプレートを選択します。ここでは react-ts ( React + TypeScript ) を選択して進めます。
Windows PowerShell
cd ~/
yarn create tauri-app
# yarn create v1.22.19
# [1/4] Resolving packages...
#   :
#  中略
#   :
# ✔ Project name · tauri-app
# ✔ Choose your package manager · yarn
# ✔ Choose your UI template · react-ts
#   :
#  中略
#   :
# Done in 7.81s.

雛型アプリの起動

カレントディレクトリを tauri-app に変更し、yarn > yarn tauri dev で雛形アプリを起動します。

Windows PowerShell
cd tauri-app
yarn
# yarn install v1.22.19
# info No lockfile found.
#   :
#  中略
#   :
# Done in 24.24s.
yarn tauri dev
# yarn run v1.22.19
# $ tauri dev
#   :
#  中略
#   :
#    Compiling webview2-com v0.19.1
#     Finished dev [unoptimized + debuginfo] target(s) in 2m 54s

この様なアプリが立ち上がれば成功です!
2022-12-17_233443.png

雛型アプリが正常に起動できない場合の対処法

yarn tauri dev はエラーも無く実行できているのに、雛形アプリが正常に起動しない場合があるようです。
特に多いのが「ウィンドウは立ち上がるけど真っ白なブランク画面になっている」という状態。この状態ではウィンドウ右上の × ボタンも機能せず、PowerShell 上で Ctrl+C を入力することでしかウィンドウを閉じることもできません。

この様な状況になった場合は、最新の WebView2 ランタイムをインストールすることで改善する場合があります。

WebView2
Microsoft Edge をレンダリングエンジンとして使用し、ネイティブアプリに Web コンテンツを表示するためのランタイム。Windows 11 ならびに Windows 10 April 2018 以降の Home または Pro エディションには標準で搭載されている。

WebView2 のインストール方法

WebView2 ランタイムは Chocolatey で簡単にインストールすることができます。PowerShell を管理者として起動し、以下のコマンドを実行するだけです。

Windows PowerShell
choco install -y webview2-runtime

Chocolatey を使用しない場合は、公式サイトからインストーラーをダウンロードできます。

上記の公式サイトを開き、少しだけ下方にスクロールするとダウンロードボタンがあります。
2022-12-18_181100.png

参考サイト様

17
21
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
17
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?