# NativeScript — Build Truly Native iOS and Android Apps with JavaScript or TypeScript > NativeScript lets you build iOS and Android apps with one JavaScript/TypeScript codebase that renders to native UI widgets (not WebView). Direct access to every iOS and Android API from JS. ## Install Save in your project root: # NativeScript — Native Mobile Apps with JS/TS ## Quick Use ```bash # Install CLI npm install -g @nativescript/cli ns doctor # verify setup (Xcode, Android SDK, Node, etc.) # Create a new app (blank + TypeScript + Angular/Vue/Svelte/React available) ns create hello --template @nativescript/template-blank-ts cd hello ns run ios # iOS simulator ns run android # Android emulator ``` ## Introduction NativeScript takes a different path from React Native: instead of a bridge between JS and native UI thread, it gives JavaScript direct access to every iOS and Android API. UI is declared (XML, or via Angular/Vue/Svelte/React) and maps to real UIView / UIViewController on iOS and real Android View / Activity on Android. With over 25,000 GitHub stars, NativeScript is used by enterprises that need deep native access without writing Swift/Kotlin, as well as JavaScript developers who want to reuse npm packages in mobile apps. It supports ES2023+, TypeScript, and your framework of choice. ## What NativeScript Does NativeScript runs JavaScriptCore (iOS) or V8 (Android) embedded in a native app. Runtime bindings expose ALL platform APIs to JS (UIAlertController, AVAudioPlayer, android.widget.TextView, etc.). UI frameworks (Angular, Vue, Svelte, React) on top of a shared UI abstraction give you declarative templates. Output is a real native binary you ship through the App Store. ## Architecture Overview ``` Your JS/TS code | [Framework layer — optional] Angular / Vue / Svelte / React / vanilla | [NativeScript UI abstraction] declares