"Mobile init generates a real Xcode and Gradle project. You're not escaping the native toolchains — Tauri is driving them for you."
The Prerequisites Are Heavier
Desktop Tauri needs modest tooling; mobile needs the full native stacks. For iOS: a Mac, the full Xcode app (not just Command Line Tools), CocoaPods, and the iOS Rust targets. For Android: Android Studio with the SDK and NDK, the right environment variables (ANDROID_HOME, NDK_HOME), and the Android Rust targets. Add the targets with rustup target add. Skipping any of these is the usual reason init or dev fails on the first try.
init Generates the Platform Projects
tauri ios init and tauri android init generate native projects (under src-tauri/gen/apple and gen/android) using cargo-mobile2 under the hood. These are real Xcode/Gradle projects that wrap your Tauri app — you usually don't hand-edit them, but they're where platform-specific signing and config live. Decide deliberately whether to commit gen/ (regenerable, but holds some config you may customize) or gitignore it and regenerate in CI.
dev Runs on Simulator or Device
tauri ios dev and tauri android dev build and launch your app on a simulator/emulator or a connected device, with the same frontend hot-reload you know from desktop. This is your mobile inner loop. The first run is slow (compiling for a new target), and you may need to select a device/simulator and handle signing prompts — but once running, editing the frontend updates live on the phone just like on desktop.