Skip to content
Switch branches/tags


Failed to load latest commit information.


OpenSwiftUI is an OpenSource implementation of Apple's SwiftUI DSL (Domain-specific language).

The project's goal is to stay close to the original API as possible.

Currently, this project is in early development.


Apple introduced SwiftUI at WWDC 19. Since then, developing applications with graphical user interfaces became more comfortable to read, write, and maintain. Unfortunately, the principle "Learn once, apply anywhere" works on Apple platforms, only.

Swift runs on Apple platforms, the web, Linux, Windows, and even on embedded devices. Wouldn't it be great if you could write GUI based applications with SwiftUI on platforms that run Swift?

SwiftUI on your platform

OpenSwiftUI provides the API — other projects can implement the actual rendering of UI elements for different platforms like Linux, Windows, Embedded, and many more.

SwiftUIEmbedded is one of the first projects that make use of OpenSwiftUI (Demo).



Over time and collective guesswork, it should be possible to re-create the complete SwiftUI API from Apple. Check the Status overview to see what's missing or needs to be completed.

A good starting point is to get familiar with the SwiftUI interface, focus on certain functionality, and try to re-implement it. A helpful tool is to use reflection (Mirror(reflecting: …)) to peek into SwiftUI types and instances. This reveals the internal structure of instances (properties, types, names and inheritance).

Once you implemented a missing piece, please feel free to contribute a pull request.

Please note:

Private methods and properties of SwiftUI should be prefixed by an _ (underscore) and marked as public in OpenSwiftUI. Doing this is necessary because the frontend might need access.

Xcode 11.2 or higher is required.


Views and Controls


Status Name Notes
protocol View


Status Name Notes
struct Text
struct TextField
struct SecureField
struct Font


Status Name Notes
⚠️ struct Image CGImage not supported


Status Name Notes
struct Button
struct NavigationLink
struct MenuButton
struct EditButton
struct PasteButton

Value Selectors

Status Name Notes
struct Toggle
⚠️ struct Picker
struct DatePicker
struct Slider
⚠️ struct Stepper

Supporting Types

Status Name Notes
struct ViewBuilder
protocol ViewModifier

View Layout and Presentation


Status Name Notes
struct HStack
struct VStack
struct ZStack

Lists and Scroll Views

Status Name Notes
struct List
protocol DynamicViewContent
protocol Identifiable Provided by Swift.
struct ForEach
struct ScrollView
⚠️ enum Axis

Container Views

Status Name Notes
struct Form
⚠️ struct Group
struct GroupBox
struct Section

Spacer and Dividers

Status Name Notes
struct Spacer
struct Divider

Architectural Views

Status Name Notes
struct NavigationView
struct TabView
struct HSplitView
struct VSplitView


Status Name Notes
struct Alert
struct ActionSheet

Conditionally Visible Items

Status Name Notes
struct EmptyView
struct EquatableView

Infrequently Used Views

Status Name Notes
⚠️ struct AnyView init?(_fromValue value: Any) missing.
struct TupleView

Drawing and Animation

Status Name Notes
⚠️ protocol Shape


Status Name Notes
struct Animation
protocol Animatable
protocol AnimatableModifier
func withAnimation<Result>(Animation?, () -> Result) -> Result
struct AnimationPair
struct EmptyAnimationData
struct AnyTransition


Status Name Notes
⚠️ struct Rectangle
enum Edge
struct RoundedRectangle
⚠️ struct Circle
struct Ellipse
struct Capsule
struct Path

Transformed Shapes

Status Name Notes
protocol InsettableShape
struct ScaledShape
struct RotatedShape
struct OffsetShape
struct TransformedShape

Paints, Styles, and Gradients

Status Name Notes
struct Color
struct ImagePaint
struct Gradient
struct LinearGradient
struct AngularGradient
struct RadialGradient
struct ForegroundStyle
struct FillStyle
protocol ShapeStyle
enum RoundedCornerStyle
struct SelectionShapeStyle
struct SeparatorShapeStyle
struct StrokeStyle


Status Name Notes
struct GeometryProxy
struct GeometryReader
protocol GeometryEffect
struct Angle
struct Anchor
struct UnitPoint
enum CoordinateSpace
struct ProjectionTransform
protocol VectorArithmetic

State and Data Flow


Status Name Notes
⚠️ struct Binding

Data-Dependent Views

Status Name Notes
struct State
struct ObservedObject
struct EnvironmentObject
struct FetchRequest
struct FetchedResults
⚠️ protocol DynamicProperty func update() missing.

Environment Values

Status Name Notes
struct Environment
struct EnvironmentValues


Status Name Notes
protocol PreferenceKey
struct LocalizedStringKey


Status Name Notes
struct Transaction


Basic Gestures

Status Name Notes
struct TapGesture
struct LongPressGesture
struct DragGesture
struct MagnificationGesture
struct RotationGesture

Combined Gestures

Status Name Notes
struct SequenceGesture
struct SimultaneousGesture
struct ExclusiveGesture

Custom Gesture

Status Name Notes
protocol Gesture
struct AnyGesture

Dynamic View Properties

Status Name Notes
struct GestureState
struct GestureStateGesture

Gesture Support

Status Name Notes
struct GestureMask
struct EventModifiers


Symbol Description
⚠️ Incomplete


SwiftUI Interface

Compared to what you can see in Xcode, this gist shows you more than just the public interfaces. It shows private properties, and the body of @inlinable marked properties, functions, and initializers.



SwiftWebUI is an implementation of SwiftUI for the web by Helge Heß. This project's goal is focused exclusively on the web. It deviates a little bit from SwiftUI by taking some shortcuts here and there -- but looks quite complete in functionality and is great for inspiration.

SwiftUI symbols

This command prints the symbol table of SwiftUI via the llvm-mn utility.

nm -gUj /Applications/ | swift-demangle | sed 's/SwiftUI.//g' | sed 's/Swift.//g'

You can also have a look at this gist instead.


Special thanks

I want to give special thanks to Helge Heß. He created SwiftWebUI, contributed many suggestions to OpenSwiftUI, and helped with insights of his findings.



OpenSwiftUI is released under the MIT License.


WIP — OpenSwiftUI is an OpenSource implementation of Apple's SwiftUI DSL.





No releases published


No packages published