Skip to content

Releases: OpenSwiftUIProject/OpenSwiftUI

0.18.1

24 May 17:37
20e7dc3

Choose a tag to compare

Highlights

  • Add OSUI renderer support for Image
  • Fix privacy redaction screen capture handling

What's Changed

  • Add OSUI renderer support for Image by @Kyle-Ye in #873
  • Fix privacy redaction screen capture handling by @Kyle-Ye in #874

Full Changelog: 0.18.0...0.18.1

Binary Integration

.package(url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI-spm.git", from: "0.18.1")

See INTEGRATION.md for more details.

0.18.0

24 May 04:41
899460f

Choose a tag to compare

Highlights

  • Add initial OpenSwiftUI render support
  • Add DisplayList async platform updates and missing DisplayList API
  • Add safe NSValue geometry wrappers
  • Add configurable LookInside server support
  • Fix incorrect static count being returned

What's Changed

Full Changelog: 0.17.3...0.18.0

Binary Integration

.package(url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI-spm.git", from: "0.18.0")

See INTEGRATION.md for more details.

0.17.3

09 May 10:50
09a7f40

Choose a tag to compare

What's Changed

  • Replace setup-xcode with DEVELOPER_DIR-based fork by @Kyle-Ye in #847
  • Add ViewRenderer and ViewCache API support by @Kyle-Ye in #848
  • Add animation codable support and display list effects by @Kyle-Ye in #849
  • Limit CI workflows to self-hosted runners by @Kyle-Ye in #851
  • Remove repo-local dual test skill by @Kyle-Ye in #853
  • Fix update scheduling seed checks by @Kyle-Ye in #852
  • Use dedicated logging for interpose and development warnings by @Kyle-Ye in #855
  • Add Tuist-based single XCFramework build by @Kyle-Ye in #856

Full Changelog: 0.17.2...0.17.3

Binary Integration

.package(url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI-spm.git", from: "0.17.3")

See INTEGRATION.md for more details.

0.17.2

25 Mar 17:17
89f034e

Choose a tag to compare

Highlights

  • Add automated release notes generation for releases
  • Add auto-sync workflow for binary repo

What's Changed

  • Add auto-sync for binary repo and update integration docs by @Kyle-Ye in #845
  • Add automated release notes generation by @Kyle-Ye in #846

Full Changelog: 0.17.1...0.17.2

Binary Integration

.package(url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI-spm.git", from: "0.17.2")

See INTEGRATION.md for more details.

0.17.1

25 Mar 10:33
6e47bd6

Choose a tag to compare

Highlights

  • Add code signing support for XCFrameworks

What's Changed

  • Add code signing support for XCFrameworks by @Kyle-Ye in #844

Full Changelog: 0.17.0...0.17.1

Binary Integration

.package(url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI-spm.git", from: "0.17.1")

See INTEGRATION.md for more details.

0.17.0

22 Mar 19:22
cd9a5fc

Choose a tag to compare

Highlights

  • Add Xcode Preview support1
  • Add initial Text support2
  • Add OpenSwiftUI xcframework release support3
  • Add OpenSwiftUI framework logo
image

What's Changed

  • Add NamedColor support for macOS by @Kyle-Ye in #819
  • Update to use ORB instead of RB by @Kyle-Ye in #820
  • [NFC] Use RB for properties and function and ORB for type by @Kyle-Ye in #821
  • Add UIImage/NSImage ImageProvider implementation by @Kyle-Ye in #822
  • [Bug Fix] Fix UIImage to Image environment override issue by @Kyle-Ye in #823
  • Add AccessibilityCore.UserSettings support by @Kyle-Ye in #824
  • Update missing init for VectorImageLayer by @Kyle-Ye in #825
  • [NFC] Optimize source filenames to match the original ID by @Kyle-Ye in #826
  • [Bug Fix] Fix Linux build failure for SystemColorDefinition by @Kyle-Ye in #827
  • Improve snapshot UITest artifact collection by @Kyle-Ye in #828
  • [CI] Preserve xcresult bundle structure in CI artifacts by @Kyle-Ye in #830
  • [Feature] Add Xcode Preview support for OpenSwiftUI by @Kyle-Ye in #829
  • Add CAHostingLayer and CAHostingLayerEvent implementation by @Kyle-Ye in #831
  • Add SwiftUI_SPI module and CAHostingLayerExample and UI tests by @Kyle-Ye in #832
  • Update PlatformDrawable by @Kyle-Ye in #834
  • [Docs] Add Preview support documentation by @Kyle-Ye in #833
  • [Bug Fix] Fix CGDrawingView calling setNeedsDisplay on wrong target by @Kyle-Ye in #837
  • Move interpose hooks to OpenSwiftUI_SPI with improved diagnostics by @Kyle-Ye in #839
  • Add XCFramework build script and publish release workflow by @Kyle-Ye in #838
  • [NFC] Optimize get_revision.sh by @Kyle-Ye in #840
  • Add init Text render support by @Kyle-Ye in #841
  • Add OpenSwiftUI framework logo by @Kyle-Ye in #842
  • Optimize build-xcframework pipeline by @Kyle-Ye in #843

Full Changelog: 0.16.0...0.17.0

Binary Integration

You can try with the following Swift Package config. We'll release a OpenSwiftUI-binary package later for more easier integration.

.binaryTarget(
    name: "OpenSwiftUI",
    url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI/releases/download/0.17.0/OpenSwiftUI.xcframework.zip",
    checksum: "7809b0b3426e081c82b4142cc825a910be2622ebef28019e0840d3b38ee87f56"
),
.binaryTarget(
    name: "OpenSwiftUICore",
    url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI/releases/download/0.17.0/OpenSwiftUICore.xcframework.zip",
    checksum: "03907a9e829f1979bc18f96d2e9296aa8fe6e391d12af21ff88b709756f235c5"
),
.binaryTarget(
    name: "OpenAttributeGraphShims",
    url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI/releases/download/0.17.0/OpenAttributeGraphShims.xcframework.zip",
    checksum: "36b69edfd797ab6529b0accec844f23baeab70c3eb1cd07ca0e1b9dcaed2a837"
),
.binaryTarget(
    name: "OpenCoreGraphicsShims",
    url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI/releases/download/0.17.0/OpenCoreGraphicsShims.xcframework.zip",
    checksum: "0cf8249e5b794ff3976f631c5abe43e9493bf65c0984ca7f1d0b6a636c867e9b"
),
.binaryTarget(
    name: "OpenObservation",
    url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI/releases/download/0.17.0/OpenObservation.xcframework.zip",
    checksum: "52d3bb665e9f78ea541a95f41bd8c09867d48b186fc3d4bf9cca027991258555"
),
.binaryTarget(
    name: "OpenQuartzCoreShims",
    url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI/releases/download/0.17.0/OpenQuartzCoreShims.xcframework.zip",
    checksum: "a3a76c440d47ec1c4db62566e8a44c2c15e0862cdda8f6317187c43d693c5317"
),
.binaryTarget(
    name: "OpenRenderBoxShims",
    url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI/releases/download/0.17.0/OpenRenderBoxShims.xcframework.zip",
    checksum: "bc5bda5c419780a7325b5e92b3fc5937ae6e618547832578d2eae23aec16553d"
),
  1. macOS Preview is not supported yet. ↩

  2. Text layout is still not implemented yet and hardcoded to be (50, 50). ↩

  3. Currently only support iPhone Simulator with iOS [18.5, 26) and macOS [15.5, 26] ↩

0.16.0

08 Mar 19:14
e04fe6b

Choose a tag to compare

Highlights

  • Add NS/UIApplicationDelegateAdapter support
  • Add Compute backend support as an alternative to AttributeGraph
  • Add NamedImage support for bundle image and system image
import AppKit
import OpenSwiftUI

struct ExampleApp: App {
    @NSApplicationDelegateAdaptor(AppDelegate.self)
	private var appDelegate

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

struct ContentView: View {
    var body: some View {
        SunsetSceneExample()
    }
}

private class AppDelegate: NSResponder, NSApplicationDelegate {
    var window: NSWindow?

    func applicationWillFinishLaunching(_ notification: Notification) {
        return
    }
}
ζˆͺ屏2026-03-09 03 14 20

What's Changed

  • Update UIKitDisplayList and AppKitDisplayList by @Kyle-Ye in #787
  • Add CAHostingLayerPlatformDefinition by @Kyle-Ye in #788
  • Add VariableBlurEffect support by @Kyle-Ye in #789
  • Update CoreView and CoreImage API by @Kyle-Ye in #794
  • Fix SafeAreaPaddingModifier by @Dark-Existed in #793
  • Add ApplicationDelegateAdapter support by @Kyle-Ye in #796
  • Fix ForEach crash for nested MultiViewRoot by @Kyle-Ye in #795
  • [Build] Fix AG related build issue by @Kyle-Ye in #798
  • Update OpenAttributeGraph integration and add Compute backend support by @Kyle-Ye in #800
  • Update OpenAttributeGraph dependency by @Kyle-Ye in #801
  • Fix IndirectOptional wrappedValue setter by @Kyle-Ye in #802
  • Fix ObservableExampleApp build issue for SUI by @Kyle-Ye in #803
  • Add Foundation ProtobufMessage conformances (URL, UUID, Data, Locale) by @Kyle-Ye in #804
  • Add NamedImage API support by @Kyle-Ye in #806
  • Update NamedImage and fix Linux build by @Kyle-Ye in #808
  • [NFC] Fix example build and identifier issue by @Kyle-Ye in #809
  • Add SFSymbols direct linking support via DarwinPrivateFrameworks by @Kyle-Ye in #810
  • Fix SFSymbols build and link issue by @Kyle-Ye in #811
  • Optimize OPENSWIFTUI_LINK_COREUI check by @Kyle-Ye in #812
  • Add Shared assets for Example project by @Kyle-Ye in #813
  • Fix NamedImage crash for bundle image by @Kyle-Ye in #814
  • Fix named image mask rendering and load system vector image issue by @Kyle-Ye in #815
  • Fix image rendering and add vector glyph support by @Kyle-Ye in #816
  • Remove release mode test steps from CI by @Kyle-Ye in #818

Full Changelog: 0.15.0...0.16.0

0.15.0

08 Feb 19:38
4190f6c

Choose a tag to compare

Highlights

  • Add OpenSwiftUI App lifecycle support
  • Add builtin shape view support
  • Add ForegroundStyle and BackgroundStyle support
  • Add shadow style support
  • Add more visual effects: ScaleEffect, BlurEffect, ClipEffect, ShadowEffect with corresponding transitions
import OpenSwiftUI

@main
struct ExampleApp: App {
    var body: some Scene {
        WindowGroup {
            FlowerView()
        }
    }
}

struct FlowerView: View {
    var body: some View {
        ZStack {
            ForEach(0..<6) { i in
                Capsule()
                    .fill(i.isMultiple(of: 2) ? .primary : .secondary)
                    .frame(width: 120, height: 40)
                    .rotationEffect(.degrees(Double(i) * 30))
                    .shadow(color: .purple, radius: 8, x: 4, y: 4)
            }
        }
        .foregroundStyle(.cyan, .orange)
    }
}
image

What's Changed

Full Changelog: 0.14.0...0.15.0

0.14.0

18 Jan 20:03
eb66fb3

Choose a tag to compare

Highlights

  • Add Image render support
import Foundation
import OpenSwiftUI

struct ContentView: View {
    var body: some View {
        AsyncImage(url: URL(string: "...")) { image in
            image
                .resizable()
                .aspectRatio(contentMode: .fit)
        } placeholder: {
            Color.gray
        }
    }
}
image image

What's Changed

Full Changelog: 0.13.0...0.14.0

0.13.0

03 Jan 20:17
c6e6fbd

Choose a tag to compare

Highlights

  • Add RenderBox and Path basic ABI support
  • Fix Transition Animation issue
  • Add AsyncRender system support
import OpenSwiftUI

struct ContentView: View {
    @State private var items = [6]

    var body: some View {
        VStack(spacing: 10) {
            ForEach(items, id: \.self) { item in
                Color.blue.opacity(Double(item) / 6.0)
                    .frame(height: 50)
                    .transition(.slide)
            }
        }
        .animation(.easeInOut(duration: 2), value: items)
        .onAppear {
            items.removeAll { $0 == 6 }
        }
    }
}
View 0x0000000103704330 at Time(seconds: 9.999930625781417e-07):
(display-list
  (item #:identity 1 #:version 1
    (frame (0.0 445.3333333333333; 402.0 50.0))
    (content-seed 3)
    (color #007AFFFF)))
Async view at Time(seconds: 0.0540470416599419):
(display-list
  (item #:identity 1 #:version 7
    (frame (0.052906036376953125 445.3333333333333; 402.0 50.0))
    (content-seed 3)
    (color #007AFFFF)))
...
Async view at Time(seconds: 2.0373803749971557):
(display-list
  (item #:identity 1 #:version 364
    (frame (402.0 445.3333333333333; 402.0 50.0))
    (content-seed 3)
    (color #007AFFFF)))
Async view at Time(seconds: 2.054047041659942):
(display-list)
View 0x0000000103704330 at Time(seconds: 2.054047041659942):
(display-list)

What's Changed

Full Changelog: 0.12.0...0.13.0