Tasuke HubLearn · Solve · Grow
#Tauri

Tauri v2でスマホアプリ開発!React + RustでiOS/Androidアプリを作る【2025年入門】

デスクトップアプリ開発で人気のTauriが、ついにモバイルに完全対応。Tauri v2を使って、ReactとRustでクロスプラットフォームなモバイルアプリを開発する方法を解説します。

時計のアイコン26 November, 2025
TH

Tasuke Hub管理人

東証プライム市場上場企業エンジニア

情報系修士卒業後、大手IT企業にてフルスタックエンジニアとして活躍。 Webアプリケーション開発からクラウドインフラ構築まで幅広い技術に精通し、 複数のプロジェクトでリードエンジニアを担当。 技術ブログやオープンソースへの貢献を通じて、日本のIT技術コミュニティに積極的に関わっている。

🎓情報系修士🏢東証プライム上場企業💻フルスタックエンジニア📝技術ブログ執筆者

Tauri v2でモバイル開発の常識が変わる

「React NativeやFlutterもいいけど、もっと軽量で、Rustのパワーを使いたい...」 そんな願いを叶えるのが、Tauri v2 です。

2024年にリリースされたTauri v2は、デスクトップ(Windows/Mac/Linux)だけでなく、iOSとAndroidへのビルドを正式にサポートしました。 これにより、**「フロントエンドはReact、バックエンドはRust」**という構成で、全プラットフォーム対応のアプリが作れるようになりました。

Tauri v2のモバイル開発のメリット

  1. 超軽量: OSネイティブのWebViewを使用するため、アプリサイズが非常に小さい(数MB〜)。
  2. Rustの安全性と速度: ビジネスロジックをRustで書けるため、高速かつ安全。
  3. 既存のWeb資産の活用: React, Vue, Svelteなど、好きなWebフレームワークがそのまま使える。
ベストマッチ

最短で課題解決する一冊

この記事の内容と高い親和性が確認できたベストマッチです。早めにチェックしておきましょう。

実践:Tauri v2でモバイルアプリを作ろう

今回は、React + Vite + Tauri v2で、シンプルな「システム情報表示アプリ」を作ってみます。

1. 環境構築

RustとNode.jsはインストール済みとします。 モバイル開発には、各プラットフォームのSDKが必要です。

  • iOS: Xcode (macOSのみ)
  • Android: Android Studio (SDK, NDK)

2. プロジェクト作成

npm create tauri-app@latest

ウィザードに従って選択します:

  • Project name: tauri-mobile-demo
  • Frontend language: TypeScript / JavaScript
  • Package manager: npm
  • UI template: React

3. モバイル設定の初期化

プロジェクトディレクトリに移動し、モバイル向けの設定を行います。

cd tauri-mobile-demo
npm install
npx tauri init
npx tauri android init  # Android用
npx tauri ios init      # iOS用 (macOSのみ)

4. Rustバックエンドの実装 (src-tauri/src/lib.rs)

スマホのバッテリー残量を取得するコマンドをRustで実装してみましょう。 (※実際にはプラグインを使いますが、ここではRust関数の呼び出しデモとして)

// src-tauri/src/lib.rs
use tauri::command;

#[command]
fn get_device_info() -> String {
    // 実際には `sysinfo` クレートなどで取得する
    // ここではデモ用に固定値を返す
    format!("Device: Tauri Mobile v2\nOS: Rust Powered")
}

#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
    tauri::Builder::default()
        .invoke_handler(tauri::generate_handler![get_device_info])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

5. Reactフロントエンドの実装 (src/App.jsx)

Rustのコマンドを呼び出すUIを作ります。

import { useState } from 'react';
import { invoke } from '@tauri-apps/api/core';
import './App.css';

function App() {
  const [info, setInfo] = useState('');

  async function fetchInfo() {
    // Rustのコマンド 'get_device_info' を呼び出す
    const result = await invoke('get_device_info');
    setInfo(result);
  }

  return (
    <div className="container">
      <h1>Tauri v2 Mobile</h1>
      
      <div className="card">
        <button onClick={fetchInfo}>
          デバイス情報を取得
        </button>
      </div>

      {info && (
        <pre className="info-box">
          {info}
        </pre>
      )}
    </div>
  );
}

export default App;

6. ビルドと実行

シミュレーターまたは実機で実行します。

# iOSシミュレーターで実行
npx tauri ios dev

# Androidエミュレーターで実行
npx tauri android dev

初回ビルドは少し時間がかかりますが、立ち上がるとホットリロードが効く開発環境が整います。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

モバイル特有の機能を使うには?

カメラや位置情報など、スマホネイティブの機能を使いたい場合は、Tauri Plugins を使用します。

# カメラプラグインの追加
npx tauri add camera

Rust側とJS側の両方でセットアップするだけで、簡単にネイティブ機能にアクセスできます。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

まとめ

Tauri v2は、WebエンジニアとRustエンジニアの架け橋となる画期的なフレームワークです。 特に、「Webの柔軟性」と「ネイティブのパフォーマンス」を両立したいモバイルアプリ開発において、FlutterやReact Nativeに次ぐ第3の選択肢として有力です。

2025年は、Rustでモバイルアプリ開発に挑戦してみませんか?

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

この記事をシェア

続けて読みたい記事

編集部がピックアップした関連記事で学びを広げましょう。

#Kotlin Multiplatform

Kotlin Multiplatform(KMP)実践ガイド:iOS/Androidアプリのコードを共通化する【2025年版】

2025/9/19
#SolidJS

SolidStart 1.0 入門!Reactより高速な「Fine-Grained Reactivity」を体感せよ【2025年版】

2025/11/26
#React

React Hooks超入門【2025年版】:useState/useEffectから始める実践ガイド

2025/9/13
#Android

モダンAndroid開発入門:KotlinとJetpack Composeで作るシンプルなToDoアプリ

2025/9/18
#Next.js

Next.js 15 × React 19 実践ガイド - 新機能を活用したEコマースアプリ開発の全て【2025年決定版】

2025/8/11
#React

React 19の新機能 `use` フック実践ガイド【2025年版】

2025/9/19