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:
- Your Vue 3 components are compiled to an IIFE JavaScript bundle
- JavaScriptCore (built into macOS) runs your Vue app
- The Vue custom renderer translates virtual DOM operations into native AppKit view operations
- A flexbox layout engine positions your views
Quick Start
vue-native create my-mac-app --platforms macos
cd my-mac-app
vue-native dev
vue-native run macos
Key Differences from iOS
| Aspect | iOS | macOS |
|---|---|---|
| Framework | UIKit | AppKit |
| Entry Point | VueNativeViewController | VueNativeWindowController |
| Layout Engine | FlexLayout (Yoga) | LayoutNode (custom flexbox) |
| Coordinate System | Top-left origin | Top-left via FlippedView |
| Controls | Touch-based | Mouse/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 barVKeyboardAvoiding— Desktop keyboards don't cover contentVRefreshControl— No pull-to-refresh on desktop