NativeScript 9.1 Released → V8 14.9, Vite 8 HMR, built for rapid agentic visual iteration
Dig in

NativeScript has always run your app on a JavaScript runtime with direct access to every platform API. It now offers two pathways that keep that development experience and ship no JavaScript runtime at all:

1. SwiftUI, live2. TypeScript, compiled
You writeSwiftUI, in an Xcode projectTypeScript with @nativescript/core and the framework you like (Angular, Vue, React, Svelte, Solid, plain TypeScript)
While developingNativeScript runs your SwiftUI views live: each save is on screen in about 0.15–0.5 s, state keptns run: the JavaScript runtime with HMR, Chrome DevTools and the whole npm ecosystem, exactly as today
What shipsYour Swift, built by Xcode as usualYour app compiled to Swift (iOS) and Kotlin (Android) by ns build --compiled
PlatformsiOS; Android live development, rendered by Jetpack ComposeiOS and Android
StatusPreviewPreview

Both rest on the same idea: develop live, ship native. The development runtime gives you instant feedback; the release is the native code a platform developer would have shipped.

Which one fits ​

  • You know SwiftUI, or you are starting an iOS-first app in Swift: take SwiftUI, live. You keep Xcode, Swift and your project as they are; NativeScript only shortens the edit-to-screen loop.
  • You know web development, or you already have a NativeScript app: take TypeScript, compiled. Nothing changes while you develop. The release build is compiled instead of bundled.

The two meet at the release: both ship native code with no engine inside, and both are checked the same way, pixel by pixel against the build they replace.

The JavaScript runtime is not going anywhere ​

A release on the JavaScript runtime (ns build --release) remains the default and is fully supported. Compiled releases are opt-in, per build or per platform, and you can switch back with --no-compiled at any time. See Publishing.

Previous
Introduction