Skip to content

ホットリロードしながらTauri を AngularDart で開発する

はじめに

AngularDart は ngdart という名前に生まれ変わり、運営も変わりました。 ngdart | Dart Package: "https://pub.dev/packages/ngdart"

tauri + ngdart という技術スタックで開発できるなら フロントエンド部分を dart で開発できるということなので試してみました。

概要

JavaScript 系の技術周りを使わずに rust と dart を使ってデスクトップアプリを開発できます。 ほんの少し js を触らないといけないのですが、パッケージマネージャなどのツールも cargo と pub で ok ですし、npm や node.js を使わなくて済みます。 基本的に dart ばっかり触ってるので、rust や js は初心者です。 自分の環境では開発するところまでは上手くいきました。 ビルドまでは試していませんが、ホットリロードしながら開発はできました。

環境構築(windows10)

  1. Microsoft Visual Studio C++ Build Tools
  2. WebView2
  3. Rust
  4. Dart 1 ~ 3 はだいたい公式を参考にしました https://tauri.app/v1/guides/getting-started/prerequisites 4 は省略

成果物

https://gitlab.com/bpriver_sample/tauri_dart

ポイントをいくつか

rustup

rust をインストールする際、rustup というツールを通じてインストールした方がいいです。 chocolaty で一度試したのですが cargo install tauri-cli の時点で詰みました。 rustup を通じてインストールした場合必要なツール群がちゃんとインストールされるようです。

tauri.conf.json

"build" - "beforeDevCommand": "dart run build_runner serve --live-reload" "build" - "devPath": "http://localhost:8080" "build" - "withGlobalTauri": true

ここら辺の設定を上記のように設定するのが重要です。

dart から js を呼び出す

@JS とか external とか使った処理が必要になります。詳細は成果物にて。

ホットリロードがバグったとき

ホットリロードがキャッシュの関係でバグるときがあるのですが、それの対処を README.md に残しておきます。

最後に

成果物を直接参考してください。いろいろ重要なことに関してのコメントを残してます。 なるべく見やすいように最小構成を心掛けてます。 Qiita にもおんなじ記事を投稿しました。

主な参考サイト

"https://zenn.dev/heyhey1028/articles/abd818ca760e33" "https://tauri.app/v1/guides/getting-started/setup/html-css-js#invoke-commands"