Vue NativeVue Native
Guide
Components
Composables
Navigation
Architecture
  • iOS
  • Android
  • macOS
GitHub
Guide
Components
Composables
Navigation
Architecture
  • iOS
  • Android
  • macOS
GitHub
  • macOS
  • macOS Setup — Build & Run
  • VueNativeWindowController

macOS

Vue Native supports building native macOS desktop applications using AppKit. Your Vue.js components render as real native macOS controls — not web views.

Requirements

  • macOS 15 (Sequoia) or later
  • Xcode 16+
  • Swift 6.0+ toolchain

How It Works

Vue Native on macOS uses the same architecture as iOS:

  1. Your Vue 3 components are compiled to an IIFE JavaScript bundle
  2. JavaScriptCore (built into macOS) runs your Vue app
  3. The Vue custom renderer translates virtual DOM operations into native AppKit view operations
  4. A flexbox layout engine positions your views

Quick Start

vue-native create scaffolds a complete macOS host (macos/project.yml plus macos/Sources/), so the whole flow is three commands:

vue-native create my-mac-app
cd my-mac-app
bun install

# watch mode: rebuilds the bundle and pushes it over WebSocket
vue-native dev --platform macos

# generates macos/*.xcodeproj with XcodeGen, then builds and launches the .app
vue-native run macos

XcodeGen is a hard prerequisite (brew install xcodegen): macos/project.yml is the committed source of truth and the generated .xcodeproj is gitignored.

See macOS Setup for the generated host file by file, hot reload, and debugging.

Key Differences from iOS

AspectiOSmacOS
FrameworkUIKitAppKit
Entry PointVueNativeViewControllerVueNativeWindowController
Layout EngineFlexLayout (Yoga)LayoutNode (custom flexbox)
Coordinate SystemTop-left originTop-left via FlippedView
ControlsTouch-basedMouse/keyboard

macOS-Only Components

  • VToolbar — Native window toolbar
  • VSplitView — Split pane layout
  • VOutlineView — Tree view

macOS-Only Composables

  • useWindow — Window management
  • useMenu — App and context menus
  • useFileDialog — File open/save dialogs
  • useDragDrop — Drag and drop

No-Op Components on macOS

These components exist for cross-platform compatibility but are no-ops on macOS:

  • VStatusBar — macOS has no app status bar
  • VKeyboardAvoiding — Desktop keyboards don't cover content
  • VRefreshControl — No pull-to-refresh on desktop
Edit this page
Last Updated: 9/28/26, 12:24 AM
Contributors: Abdul Hamid
Next
macOS Setup — Build & Run