zudo-tauri-wisdom

Type to search...

to open search from anywhere

Tauri Mobile (iOS)

作成2026年4月16日更新2026年4月20日Takeshi Takatsudo

Tauri v2 を使って Web フロントエンドをネイティブ iOS アプリとしてラップする

Tauri Mobile とは

Tauri v2(2024 年 10 月 2 日に安定版リリース)では、既存のデスクトップターゲットに加えて iOS と Android のファーストクラスなターゲットが追加された。iOS における Tauri アプリは、システムの WKWebView を埋め込み、フロントエンドアセットを読み込む薄い Swift シェルである。Rust バックエンドは静的ライブラリとしてコンパイルされ、FFI 経由で Swift から呼び出される。フロントエンドから見ると、@tauri-apps/api 経由で Rust へ IPC できる点を除けばブラウザのように感じられる。

実際のところ、すでにデスクトップで動作している Vite + React の Web アプリをモバイル化するときのストーリーは「既存の frontendDist をそのまま Tauri に指さして、iOS アプリとして出荷する」というものになる。

安定性の現状

  • デスクトップ(macOS/Windows/Linux) — 安定、プロダクション品質
  • iOS と Android — v2.0.0 で API は安定したが、すべてのデスクトッププラグインがモバイルで使えるわけではない。Tauri チームは「2.0 は『モバイルがファーストクラスシチズンになるリリース』ではない」と明言している。あくまで堅実な土台であり、完成形ではない
  • iOS エコシステム — dialog、fs、notification、geolocation、haptics などのプラグインは存在する。macOS API に深く食い込むプラグイン(windowing、menubar、dock 系)は当然使えない

ℹ️ Info

動作している Vite + React Web アプリがあり、それを iOS に載せたいだけであれば、Tauri Mobile は有力な選択肢である。ただしネイティブ iOS との深い統合(ウィジェット、App Intents、アプリ内 SwiftUI ビューなど)が必要なら、別のスタックを検討したほうが良い。

なぜ Capacitor や React Native ではなく Tauri なのか

観点Tauri MobileCapacitorReact Native
UI レイヤーシステム WebView(iOS では WKWebView)システム WebView(iOS では WKWebView)JS から橋渡しされるネイティブビュー
バックエンド言語Rust(デスクトップと共通)TypeScript + Swift プラグインJavaScript + Objective-C/Swift ブリッジ
バンドルサイズ(iOS)小(Rust は小さくコンパイルされる、システム WebView 利用)小(システム WebView)中(JS ランタイムとブリッジを同梱)
メモリフットプリント中から高
フロントエンドフレームワーク制約なし(好きな Vite/webpack セットアップ)なしReact のみ
デスクトップとの親和性高い(Rust バックエンドを共用)弱い(Electron 系は別口)弱い(React Native for Windows/macOS の状況は様々)
ネイティブ API の到達度成長中、Rust プラグインのみ広大なプラグインエコシステム、追加も容易三者で最大のネイティブエコシステム
iOS 上での成熟度安定版から 1 年超長期間長期間

率直にまとめるとこうなる。

  • Tauri を選ぶ — すでに Tauri デスクトップアプリがあり、デスクトップとモバイルで一貫したコードベースを維持したい場合
  • Capacitor を選ぶ — Web ファースト・モバイルファーストのアプリで、多くのネイティブプラグインが必要、デスクトップは「あれば良い」程度の場合
  • React Native を選ぶ — モバイルでリッチなネイティブ UI パフォーマンスが必要で、Web 版を書き直す覚悟がある場合

このカテゴリでカバーする内容

これらのノートは、既存の Vite + React Web アプリをラップする視点から iOS にフォーカスしている。

公式ドキュメント