ドキュメントに戻る
デプロイメント
Tauri v2開発ガイド
Tauri v2のプロジェクトレイアウト、コマンド、機能ベース権限。
•
10分 で読めます
•PlanToCodeはデスクトップアプリケーションにTauri v2を使用しています。このガイドはプロジェクト構造、コマンドシステム、機能ベース権限、開発ワークフローをカバーします。
プロジェクトレイアウト
デスクトップアプリケーションは標準的なTauri v2の慣例に従います:
- desktop/src/:コンポーネント、フック、プロバイダーを含むReactフロントエンド
- desktop/src-tauri/:コマンド、ジョブ、サービスを含むRustバックエンド
- desktop/src-tauri/src/lib.rs:アプリケーションエントリポイント
- desktop/src-tauri/src/commands/:Tauriコマンドハンドラー(約35モジュール)
- desktop/src-tauri/capabilities/:権限定義
- desktop/src-tauri/tauri.conf.json:Tauri設定
Tauri設定
tauri.conf.jsonがアプリケーションを設定します:
- productName、version、identifierでアプリメタデータ
- build.beforeDevCommandとbeforeBuildCommandでフロントエンド
- インストーラー(DMG、NSIS、AppImage)用のbundle設定
- Content Security Policy用のsecurity.csp
- 公式プラグイン用のplugins設定
機能ベース権限
Tauri v2は機能を使用してアプリがアクセスできるものを制御します:
- default.json:すべてのウィンドウの基本権限
- desktop-default.json:デスクトップ固有の権限
- plantocode-api.json:PlanToCodeコマンド用のカスタム権限
- 権限が付与するアクセス:filesystem、shell、http、dialog、notification
Tauriプラグイン
PlanToCodeは複数の公式Tauriプラグインを使用します:
- tauri-plugin-http:APIコール用HTTPクライアント
- tauri-plugin-dialog:ネイティブファイル/フォルダーピッカー
- tauri-plugin-shell:シェルコマンド実行
- tauri-plugin-store:永続的キーバリューストレージ
- tauri-plugin-notification:デスクトップ通知
- tauri-plugin-updater:アプリ内更新
- tauri-plugin-single-instance:シングルインスタンス強制
アプリケーション状態
Tauriの状態システムを通じて管理されるRust状態:
- AppState構造体が共有状態を保持
- サーバーURLとフィーチャーフラグ用のRuntimeConfig
- 安全な認証情報ストレージ用のTokenManager
- AIモデル設定用のConfigCache
コマンドの作成
TauriコマンドがRust関数をフロントエンドに公開します:
- async関数に#[tauri::command]属性を使用
- エラー処理にResult<T, String>を返す
- State<AppState>パラメータ経由で状態にアクセス
- lib.rsのinvoke_handlerに登録
シングルインスタンス
アプリはデータ競合を防ぐためにシングルインスタンスを強制します:
- tauri-plugin-single-instanceが検出を処理
- 2回目の起動で既存ウィンドウにフォーカス
- ディープリンクが実行中インスタンスに転送
開発ワークフロー
開発用の一般的なコマンド:
pnpm tauri dev:ホットリロード付きで開発開始pnpm tauri build:本番リリースをビルドcargo test:Rustテストを実行cargo clippy:Rustコードをリント
モバイルの考慮事項
Tauri v2はモバイルをサポートしますが、PlanToCodeはネイティブSwiftを使用:
- iOSアプリはネイティブエクスペリエンス用にSwiftUIで構築
- デスクトップとモバイル間で共有APIコントラクト
- WebSocketリレー経由のデバイスリンク
配布
各プラットフォーム用のビルドアーティファクト:
- macOS:ユニバーサルバイナリ付き.dmg(Intel + Apple Silicon)
- Windows:NSISインストーラーとMSIXパッケージ
- Linux:広い互換性のためのAppImage