Vue NativeVue Native
Guide
Components
Composables
Navigation
  • iOS
  • Android
GitHub
Guide
Components
Composables
Navigation
  • iOS
  • Android
GitHub
  • iOS Guide
  • iOS Setup
  • VueNativeViewController

iOS Guide

Vue Native targets iOS 16+ using UIKit, JavaScriptCore, and Yoga layout.

Requirements

  • iOS 16.0+
  • Xcode 15+
  • Swift 5.9+

Native package

The iOS native code lives in native/ios/VueNativeCore/ — a Swift Package Manager package.

native/ios/VueNativeCore/
├── Package.swift
├── Sources/VueNativeCore/
│   ├── Bridge/
│   │   ├── JSRuntime.swift          # JSContext lifecycle, polyfills
│   │   ├── NativeBridge.swift       # Receives batched JS ops → UIKit
│   │   ├── VueNativeViewController.swift  # Base VC for your app
│   │   └── HotReloadManager.swift   # WebSocket hot reload
│   ├── Components/
│   │   └── Factories/               # One factory per component
│   ├── Modules/                     # Native module implementations
│   └── Styling/
│       └── StyleEngine.swift        # Style prop → UIKit/Yoga mapping
└── Tests/

Integration

Add the package to your Xcode project via project.yml:

packages:
  VueNativeCore:
    path: ../../../native/ios/VueNativeCore

VueNativeViewController

The simplest integration is to subclass VueNativeViewController:

import VueNativeCore

class MyAppViewController: VueNativeViewController {
    override var bundleName: String { "vue-native-bundle" }

    #if DEBUG
    override var devServerURL: URL? {
        URL(string: "ws://localhost:8174")
    }
    #endif
}

See the VueNativeViewController reference for full details.

Edit this page
Last Updated: 2/23/26, 1:50 AM
Contributors: Abdul Hamid, Claude Sonnet 4.6
Next
iOS Setup