ITADN
OpenSwiftUIProject/OpenSwiftUI

版本发布 8

0.18.2
? · 2026-05-28

## Highlights - Add geometry change invalidation support - Add blur filter rendering support - Fix rotate effect merging for OpenSwiftUI renderer - Fix View Renderer requirement implementation ## What's Changed * Fix OpenSwiftUI View Renderer requirement impl by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/875 * Run UI tests with both renderers by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/877 * Fix rotate effect merging for OpenSwiftUI renderer by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/879 * Add geometry change invalidation support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/881 * Add blur filter rendering support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/882 * Fix Example Debug compilation conditions by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/883 **Full Changelog**: https://github.com/OpenSwiftUIProject/OpenSwiftUI/compare/0.18.1...0.18.2 ## Binary Integration ```swift .package(url: "https://github.com/OpenSwiftUIProject/OpenSwiftUI-spm.git", from: "0.18.2") ``` See [INTEGRATION.md](https://github.com/OpenSwiftUIProject/OpenSwiftUI/blob/main/INTEGRATION.md#binary-integration-recommended) for more details.

0.13.0
? · 2026-01-03

## Highlights - Add RenderBox and Path basic ABI support - Fix Transition Animation issue - Add AsyncRender system support ```swift 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 * Update availability macro by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/641 * Add fallbackFont support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/640 * Update Text folder structure by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/642 * Update EnvironmentAdditions by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/644 * Add AppearsActive and WindowEnvironment API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/645 * Add Divider support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/646 * Fix StyleBodyAccessor style issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/647 * Update Environment implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/648 * [NFC] Optimize logging code by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/650 * [Test] Optimize DividerUITests test for colorScheme by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/649 * Add Text+Encapsulation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/651 * Add ConcatenatedTextStorage by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/652 * Add Slide and Move Transition by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/654 * Update Text.Style by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/657 * Update TextLayoutProperties by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/658 * Fix subgraph not being retained by SubgraphElements.retain() by @jcmosc in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/653 * Add Typesetting API for View and Text by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/660 * Add RedactionReasons API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/661 * Add Anchor API implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/662 * Update Text+View by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/663 * Add NSTextLineFragment and Text.Layout.Line.Line API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/667 * [NFC] Update file name and header information by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/666 * Fix DynamicPreferenceCombiner returning early by @jcmosc in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/659 * [Bug Fix] Fix index issue in DynamicContainer by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/670 * Add SensoryFeedback API support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/668 * Fix unbounded intensity cache issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/671 * Update PlatformDrawable API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/673 * Add WatchKit Sensory Feedback Implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/672 * Fix GraphHost.continueTransaction by @Dark-Existed in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/675 * Fix DynamicLayoutMap.remove by @Dark-Existed in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/674 * Implement CGPath related C API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/676 * Add requestsLayoutComputer = true by @pookjw in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/679 * Add ORBPath integration by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/680 * [NFC] Optimize shape related code by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/681 * Update BlendMode by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/682 * [NFC] Optimize overflow for ConditionalTypeDescription.project by @pookjw in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/684 * [NFC] Optimize overflow for RandomAccessCollection.lowerBound by @pookjw in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/683 * [NFC] Optimize _DynamicPropertyBuffer.addFields by @pookjw in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/685 * [Bug Fix] Fix UIHostingViewBase pendingPreferencesUpdate and weak self issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/686 * [Feature] Implement CustomRecursiveStringConvertible by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/687 * [NFC] Optimize overflow for Collection.partitionPoint by @pookjw in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/688 * [Test] Fix color mismatch on UI Compacibility test case by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/689 * Add ViewGraphGeometryObservers API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/695 * Optimize overflow for DynamicContainerInfo.updateValue() by @pookjw in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/692 * Optimize overflow for DynamicContainerInfo.updateValue() by @pookjw in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/696 * Replace abs with max when calculating capacity by @pookjw in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/694 * Update allUnary logic by @pookjw in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/693 * Update ViewGraph.NextUpdate by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/697 * Update syncMain implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/698 * Add notify API and add test case for ViewGraphGeometryObservers by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/699 * Add initial async render support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/700 * Update _UIHostingView API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/702 * Add UIKitUpdateCycle API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/704 * Update UIHostingView by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/703 * Fix DynamicContainer inusedCount issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/705 * [Bug Fix] Fix transition issue in DynamicContainer by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/706 * Fix incorrect index update in updateItems by @pookjw in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/691 * [Bug Fix] Fix async render issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/707 **Full Changelog**: https://github.com/OpenSwiftUIProject/OpenSwiftUI/compare/0.12.0...0.13.0

0.10.0
? · 2025-10-05

## Milestone - Add StateObject/ObservedObject/EnvironmentObject support. - Update DynamicProperty/State/Binding implementation - Migrate [documentation](https://openswiftuiproject.github.io/OpenSwiftUI/documentation/openswiftui/) from SPI to GH pages. ## What's Changed * Add cross-platform debugger detection implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/509 * Add ignoreSafeArea support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/510 * Add AccessibilityEnvironment by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/513 * Add test cases to track safeAreaPadding and GeometryReader safe area issues by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/512 * Add unknown placeholder for CoreSystem by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/514 * Add ViewStyle API support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/515 * [Feature] Add init Toggle support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/516 * Add Entry macro support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/520 * Add ObservedObject implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/521 * Add ObservedObjectCompatibilityTests by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/522 * Update version information by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/523 * Update DynamicProperty implementation to 6.5.4 by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/524 * Add StateObject implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/525 * Fix macOS CI by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/528 * Add EnvironmentObject support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/529 * Add EnvironmentKeyWritingModifier implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/530 * Add Observable Environment API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/531 * Fix example project build issue for linking Testing framework by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/532 * Fix EnvironmentKeyTransformModifier implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/533 * Add Bindable implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/534 * Update DynamicPropertyBuffer implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/535 * Add tracing support for DynamicPropertyBuffer by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/536 * Update State implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/537 * Fix nested State update issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/538 * Migrate to shared workflows from organization repository by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/539 * Add OPENSWIFTUI_ENABLE_PRIVATE_IMPORTS by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/540 * Add Swift-DocC documentation hosting on GitHub Pages by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/541 * Configure self-hosted documentation in SPI manifest by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/542 * Add PR triage workflow by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/543 * Fix PR triage workflow by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/545 * Update Binding and Location implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/544 * Add workflow_dispatch with number support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/546 * Update CodableProxy by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/547 * Optimize Model part documentation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/548 * Fix pr-triage workflow issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/549 * Fix: Add 'package' as valid minimum access level for documentation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/550 **Full Changelog**: https://github.com/OpenSwiftUIProject/OpenSwiftUI/compare/0.9.0...0.10.0

0.9.0预发布
? · 2025-09-14

## Milestone - visionOS build support - Timeline API support https://github.com/user-attachments/assets/7fef4041-a35e-42b1-81cb-c16efcbccbec https://github.com/user-attachments/assets/6018338f-05c4-488a-84d6-f699caecdcd1 ## What's Changed * Add visionOS support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/499 * Add Timeline and Animation functionality by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/500 * Add usage of _ViewInputs.textAlwaysOnProvider by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/501 * [Bug Fix] Fix macOS animation and visionOS build issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/506 **Full Changelog**: https://github.com/OpenSwiftUIProject/OpenSwiftUI/compare/0.8.0...0.9.0

0.7.3预发布
? · 2025-08-24

## Milestone - RotateEffect & Rotate3DEffect - TransactionModifier - GeometryReader ## What's Changed * Update README about environment management by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/465 * Fix ViewRendererHost.updateTransform by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/468 * Add RotationEffect and Rotation3DEffect by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/469 * Add Transaction modifier by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/470 * Add ScrapeableContent API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/471 * Add missing Layout API implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/472 * Add GeometryReader support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/475 **Full Changelog**: https://github.com/OpenSwiftUIProject/OpenSwiftUI/compare/0.7.2...0.7.3

0.7.2预发布
? · 2025-08-17

## Milestone - Add SpringAnimation support - Add basic PlatformViewControllerRepresentable and PlatformViewRepresentable support ## What's Changed * Add SpringAnimation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/441 * Remove self-hosted on matrix by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/444 * Add PlatformViewRepresentable support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/447 * [Optimize] Update OG dependency by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/448 * Update SPI build issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/450 * Add CAFrameRateRangeUtilTests by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/451 * Fix CI test case by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/453 * Fix NSHostingView dealloc issue by @Mx-Iris in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/455 * Add ViewControllerRepresentable support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/452 * Add Font support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/456 * Fix SPI build by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/457 * Add VelocityTrackingAnimation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/458 * Add combineAnimation support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/460 * Fix BezierAnimation fraction issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/463 * Fix Animation issue when rotate screen by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/464 **Full Changelog**: https://github.com/OpenSwiftUIProject/OpenSwiftUI/compare/0.7.1...0.7.2

0.7.1预发布
? · 2025-07-27

## Milestone - Add TaskModifier support - A few bug fixes and stability improvements ## What's Changed * [Bugfix] Fix FrameLayout maxFrame API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/419 * Add automaticPadding API support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/422 * Add InsetViewModifier by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/424 * Fix run all test targets for compatibility tests on iOS by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/426 * Add sizeThatFits for UIHostingView by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/425 * Fix compatibility alignment issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/429 * Update Package.swift by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/430 * Remove workaroundIssue87 by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/431 * Fix ViewGraph.instantiateOutputs issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/432 * [Feature] Add TaskModifier support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/433 * [NFC] Update OpenSwiftUICompatibilityTests by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/434 * [NFC] Bump SymbolLocator version by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/435 * Fix threadTransactionData implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/436 * Add AnimationCompletion API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/437 * [NFC] Optimize OpenSwiftUICompatibilityTests by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/438 * Fix UIWindow dealloc issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/439 * Update PlatformViewRepresentableLayoutOptions by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/440 **Full Changelog**: https://github.com/OpenSwiftUIProject/OpenSwiftUI/compare/0.7.0...0.7.1

0.7.0预发布
? · 2025-07-20

## Milestone: - Add async render support [^1] - Add Animation support iOS platform. - Add onChange modifier API support [^1]: Via SwiftUI's Render. Currently only align with iOS 18.5 and macOS 15.5 Runtime. ```swift import OpenSwiftUI struct ContentView: View { @State private var showRed = false var body: some View { VStack { Color(platformColor: showRed ? .red : .blue) .frame(width: showRed ? 200 : 400, height: showRed ? 200 : 400) } .animation(.easeInOut(duration: 2), value: showRed) .onAppear { DispatchQueue.main.asyncAfter(deadline: .now() + 2) { showRed.toggle() } } } } ``` https://github.com/user-attachments/assets/94b3974a-9461-43d8-9f89-c5375abea1d4 ```swift import OpenSwiftUI import Foundation private struct ElasticEaseInEaseOutAnimation: CustomAnimation { let duration: TimeInterval func animate<V>(value: V, time: TimeInterval, context: inout AnimationContext<V>) -> V? where V: VectorArithmetic { if time > duration { return nil } let p = time / duration let s = sin((20 * p - 11.125) * ((2 * Double.pi) / 4.5)) if p < 0.5 { return value.scaled(by: -(pow(2, 20 * p - 10) * s) / 2) } else { return value.scaled(by: (pow(2, -20 * p + 10) * s) / 2 + 1) } } } extension Animation { static var elasticEaseInEaseOut: Animation { elasticEaseInEaseOut(duration: 0.35) } static func elasticEaseInEaseOut(duration: TimeInterval) -> Animation { Animation(ElasticEaseInEaseOutAnimation(duration: duration)) } } struct ContentView: View { @State private var isActive = false var body: some View { VStack(alignment: isActive ? .trailing : .leading) { Color.red .frame(width: 100.0, height: 100.0) Color.blue .frame(width: 300.0, height: 100.0) } .animation(.elasticEaseInEaseOut(duration: 2.0), value: isActive) .onAppear { DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { isActive.toggle() } } } } ``` https://github.com/user-attachments/assets/5ac337f5-522d-4e2f-8cc2-3d005167dc6a ## What's Changed * Update OpenGraph dependency for comparison API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/383 * Update GraphValue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/384 * Add EquatableView by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/385 * Add equatable macro dependency and demo by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/386 * Update AnimatableAttribute implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/387 * Add Animation support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/388 * Add test case for Animation and UnitCurve by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/389 * Add AnimationModifier by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/391 * Add VariableFrameDuration support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/390 * Update ColorView to use Animatable by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/392 * Optimize UnitCurve inverse implementation by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/393 * Update RootTransform by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/394 * [NFC] Update Event folder structure by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/395 * Add UITraitBridgedEnvironmentKey support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/396 * Fix typo in `needsRender` property by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/398 * Update EnvironmentAdditions by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/397 * Update DisplayLink and UIHostingView by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/399 * Update ViewRendererHost by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/400 * [Bugfix] Fix UIHostingView update issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/402 * [Bugfix] Fix NextUpdate.interval issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/403 * Fix OPENSWIFTUI_SAFE_WRAPPER_IMP for class method by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/404 * [Example] Add ColorAnimationExample by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/405 * Add AsyncRenderer support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/407 * Fix CI iOS 18.0 render crash issue by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/409 * Fix UIWindowScene dealloc issue on async render by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/408 * Add rotate screen support for UIHostingView by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/410 * [Infra] Add Stack3 support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/411 * Add cycle detection for updates and values by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/412 * Update EmptyView by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/414 * Add onChange modifier support by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/413 * [NFC] Remove `OPENSWIFTUI_SUPPRESS_DEPRECATED_WARNINGS` flag by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/415 * Add withAnimation API by @Kyle-Ye in https://github.com/OpenSwiftUIProject/OpenSwiftUI/pull/416 **Full Changelog**: https://github.com/OpenSwiftUIProject/OpenSwiftUI/compare/0.6.0...0.7.0