Tauri v2.0がStable Releaseになったので、雑に公式を読んでみるスレ
Tauri v2.0がStable Releaseになって、iOS/Androidの開発ができるようになりましたので、公式を読んだりします。
てか本当に読むだけで、副音声的に自分のコメントがついてます
雑にやっていくので、ご了承ください
公式のStable Release時のブログを読んでいきます
Tauri is a framework for building tiny and fast binaries for all major desktop (macOS, linux, windows) and mobile (iOS, Android) platforms.
Developers can integrate any frontend framework that compiles to HTML, JavaScript, and CSS for building their user experience while leveraging languages such as Rust, Swift, and Kotlin for backend logic when needed.
主要な全てのデスクトップ(macOS, Linux, Windows)およびモバイル(iOS, Android)向けのバイナリ構築フレームワーク。
HTML, CSS, JavaScriptなどのWebフロントエンドで開発しながら、必要に応じてRust, Swift, Kotlinでバックエンドロジックの開発が可能
You don’t need to write Code in Rust, Swift or Kotlin in most cases. Tauri already offers an extensive JavaScript API.
え!Rustの知識必要ないんだ、Tauri 1.0の時はバックエンドはRust使うしかなかった記憶(間違ってるかも)
じゃあそもそもRustで書くネイティブアプリフレームワークってわけじゃなく、ReactNativeなんかと真っ向から勝負してるんだな
それでありながらRust, Swift, Kotlinも書けると
When Should I Use Tauri?
If you check any of the boxes below, you should use Tauri:
以下の場合、Tauriを使うべき。
Do you want a single UI codebase for all platforms?
全てのプラットフォームおける共有のUIコードベースが欲しい場合。
Do you want to reach as many users as possible on their platform (eg. Windows, MacOS, Linux, Android, iOS)?
Windows, MacOS, Linux, Android, iOSプラットフォームで、多くのシェアを獲得したい場合。
Are you a frontend web developer and want to write native applications?
Webフロントエンド開発者であり、ネイティブアプリの開発がしたい場合。
Are you a Rust developer looking to write applications with a nice looking UI with the option to do it in Rust?
見栄えの良いUIを備えたアプリケーションをRustで書きたい場合。
Do you have an existing team of web developers and want to expand to native application markets with low upfront investment?
既存のWeb開発者チームを持ち、先行投資を抑えてネイティブアプリ市場に進出したい場合。
Do you have an existing team of rustaceans and want everything written in Rust?
既存のRustaceansのチームがあり、すべてをRustで書きたい場合。
いくつか、ただのRust愛好家に刺しに行ってて笑う
どれくらいTauriが使われてるか。
1系でもかなり使われてるんだな
One thing you are always going to go through when starting with a new framework or tool is the initial onboarding or getting started process.
We value developer experience (DX) and try to make this initial process as seamless as building and distributing your final application.
For this we created another project, which is called create-tauri-app or in short CTA. This tool allows developers to start from scratch and get to a running Tauri app in a few minutes instead of hours.
へぇ、環境構築の体験を向上させるためにcreate-tauri-app
の別PJを発足してかなり力を入れたみたい。
あとで環境構築して、実際に体験してみよう
After the initial onboarding you will regularly develop and debug your Tauri application. We considered what would improve your development process already in 1.x of Tauri and extended the Hot-Module Replacement (HMR) to mobile devices and emulators.
This means that all changes to the frontend of your application do not require a rebuild of your whole application and you can live preview how it will look like in the device or operating system your are developing for.
HMRをモバイルエミュレーターに拡張して、リアルタイムに開発の内容を反映、デバッグ効率の改善をしている模様。
これは開発者としては嬉しいですね
With Tauri 2.0 we built a more advanced plugin system. We transferred a lot of our previous functionality into our official plugins (see plugins-workspace), to allow the community an easier entry into contributing to Tauri. We also hope to attract more maintainers for plugins and to speed up the process of implementing new features.
機能の多くをPluginとして分離して、より多くのコントリビューターが参加しやすくなったらしい。
あとでGithubとかも覗いてみるとして、これはありがたいですね。
大きなPJであればあるほど初心者のハードルが高く、メンテナのコストも高くなると思うので
You no longer need to understand all of Tauri to improve or implement specific features. The plugins usually do not depend on other plugins, with some exceptions. This means to implement a new file system access functionality it is only required to contribute to the fs plugin instead of Tauri itself.
これもありがたい、Plugin同士の依存関係はほとんど無く、開発中に不具合が見つかった場合、Tauriの内部実装を知る必要なく、そのPluginにコミットすれば良いので認知負荷が低い
As this release also targets mobile platforms, the plugin system also supports mobile plugins. You can write or re-use native code in Swift on iOS and Kotlin on Android and directly expose functions to the Tauri frontend using Annotations (@Command on Android), implementing a Subclass (YourPluginClass: Plugin) on iOS, or by invoking the Swift or Kotlin code from a Rust based Tauri command. Check out the documentation on how to write your own plugin.
なるほど?
むむ、ちょっとここが嬉しさ分かっていないので、分かったら編集します
As we are releasing Tauri as 2.0, the official plugins will follow the major version of Tauri to make compatibility with Tauri’s major version visible at a glance. Not all plugins are as stable as Tauri itself though.
Plugin周りに関する免責事項
Each plugin’s stableness is defined per plugin and documented (soon) in the plugin documentation. The plugin API can possibly break in minor versions, but we will try to keep these changes to a minimum, especially for plugins considered stable.
Pluginの安定性はそれぞれで定義され、Plugin用のドキュメントに文書化される予定とのこと。
今はちょっと待ってねって。
A very much awaited part of this release is the mobile operating system support. The previous version of Tauri allowed to have a single UI code base for desktop operating systems but now this extends to iOS and Android.
待ってました!Mobile Support
We have investigated and experimented with different solutions to support mobile and decided on using the operating system native language (Swift and Kotlin) to build an interface for the Rust code and to allow developers to write part of their functionality in these languages.
This means you can re-use existing logic of your Swift or Kotlin app that interacts with the system and expose it to Rust or the frontend. Right now this works as mentioned above via the plugin system.
モバイルサポートのために、OSネイティブ言語(Swift, Kotlin)を使用してRustコードのI/Fを用意。
互いに機能にアクセスし合うことが可能になったのか
Things on our radar for the future we feel we should mention at least:
- Providing or Bundling Chromium Embedded Framework (CEF) for Linux as an alternative to WebKit2GTK
- Servo as Tauri WebView (POC in Wry)
Servoなどはまだみたい
これは期待して待てますな
続きまして、公式ドキュメントを雑に読んでいきます
リリースノートと差分がありそうなところだけPick
Tauri also undergoes a security audit for major and minor releases. This not only covers code in the Tauri organization, but also for upstream dependencies that Tauri relies on. Of course this doesn’t mitigate all risks, but it provides a solid foundation for developers to build on top of.
Tauriはメジャー・マイナーリリースのタイミングで監査を受けており、コードのみではなく上流の依存関係も対象である。
こういうのがあると、利用しやすいですね
Tauri apps take advantage of the web view already available on every user’s system. A Tauri app only contains the code and assets specific for that app and doesn’t need to bundle a browser engine with every app. This means that a minimal Tauri app can be less than 600KB in size.
Web Viewを使ってるから、最小限のTauriアプリは600KB未満になるらしい
めっちゃ軽いな
Since Tauri uses web technologies that means that virtually any frontend framework is compatible with Tauri. The Frontend Configuration guide contains common configurations for popular frontend frameworks.
Bindings between JavaScript and Rust are available to developers using the invoke function in JavaScript and Swift and Kotlin bindings are available for Tauri Plugins.
TauriはWeb技術を使用しているため、事実上あらゆるフロントエンドフレームワークがTauriと互換性がある。
これはフレームワークを選択する時のハードルが低くていいな
TAO is responsible for Tauri window creation and WRY is responsible for web view rendering. These are libraries maintained by Tauri and can be consumed directly if deeper system integration is required outside of what Tauri exposes.
TAO: Tauriウィンドウの作成を担当
WRY: Webビューのレンダリングを担当
へぇ、初めて知ったけどそんなライブラリがあるんですね
対応しているFW
推奨されているのはViteで、通常のWebでも推奨されている理由と同じ。
その他のメタフレームワークはSSR用に設計されているために、特別な設定をする必要がある模様。
そらそうや
その他、MIgrateの案内。