SwiftUI
Certain historical revisions of this page may meet criterion RD1 for revision deletion, as they contain significant copyright violations of https://developer.apple.com/documentation/swiftui (Copyvios report) that have been removed in the meantime.
Note to admins: In case of doubt, remove this template and post a message asking for review at WT:CP. With this script, go to the history with auto-selected revisions. Note to the requestor: Make sure the page has already been reverted to a non-infringing revision or that infringing text has been removed or replaced before submitting this request. This template is reserved for obvious cases only, for other cases refer to Wikipedia:Copyright problems. Note to others: Please do not remove this template until an administrator has reviewed it. |
This article relies largely or entirely on a single source. (January 2024) |
![]() | |
Developer(s) | Apple Inc. |
---|---|
Initial release | June 3, 2019 |
Operating system | iOS, iPadOS, macOS, tvOS, watchOS, visionOS |
Type | Software framework |
License | Proprietary |
Website | https://developer.apple.com/xcode/swiftui/ |
SwiftUI is a declarative framework[1] for building user interfaces for iOS, iPadOS, watchOS, tvOS, visionOS and macOS, developed by Apple Inc. for the Swift programming language.
Overview
SwiftUI is declarative, contrasting with the imperative syntax used in other Apple development frameworks such as UIKit and AppKit. SwiftUI allows for 2D drawing, animations, event handling, widgets, and data binding. SwiftUI automatically synchronizes between UI views and data.[2]
SwiftUI integrates with other Apple technologies, such as Xcode and Swift Playgrounds to provide for real-time previews during editing,[3][4] alongside support for debugging and other development features.
SwiftUI allows for interoperability with UIKit views via the UIViewRepresentable
struct.[5]
History
SwiftUI was announced at the company's Worldwide Developers Conference (WWDC) on June 3, 2019, and was added in iOS 13 and macOS Catalina.[1]
During WWDC 2020 and the iOS 14 release cycle, Apple natively added support for maps with the Map
view, with an interface based on Apple Maps via MapKit.[6] MapKit allows for map annotation and satellite imagery.
During WWDC 2021 and the iOS 15 release cycle, Apple added the Canvas
element, adding support for Immediate mode drawing and performant 2D drawing.[7]
During WWDC 2022 and the iOS 16 release cycle, Apple released Swift Charts, a framework for making customizable and accessible charts.[8]
During WWDC 2023, Apple announced the Apple Vision Pro, and support for the device was added to SwiftUI, alongside new views for AR content such as RealityView
and ImmersiveSpace
.[9]
Examples
The following is an example of a simple Hello World program. It is standard practice in SwiftUI to separate the application struct and views into different structs, according to the Model–View–ViewModel (MVVM) architectural pattern.[10][self-published source?]
import SwiftUI
@main
struct AnApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
struct ContentView: View {
var body: some View {
Text("Hello, World!")
}
}
References
- ^ a b Mayo, Benjamin (June 3, 2019). "Apple announces SwiftUI, a modern declarative user interface framework for Apple platforms". 9to5mac.com. Retrieved January 22, 2024.
- ^ "SwiftUI". Apple Developer Documentation. Retrieved 2024-01-10.
- ^ "Previews in Xcode". Previews in Xcode – Apple Developer Documentation. Archived from the original on 2023-11-07. Retrieved 2023-11-07.
- ^ "Swift Playgrounds". Apple Developer. Retrieved 2024-01-31.
- ^ "Interfacing with UIKit". Apple Developer Documentation. Retrieved 2024-01-31.
- ^ "MapKit for SwiftUI". Apple Developer Documentation. Retrieved 2024-01-10.
- ^ "Canvas". Apple Developer Documentation. Retrieved 2024-01-31.
- ^ "Swift Charts". Apple Developer Documentation. Retrieved 2024-01-31.
- ^ "Meet SwiftUI for spatial computing - WWDC23 - Videos". Apple Developer. Retrieved 2024-01-31.
- ^ Hudson, Paul (2018). Swift Design Patterns. Paul Hudson.
External links
Further reading
- Lee, Wei-Meng (2020). SwiftUI for dummies. Hoboken: Wiley. ISBN 978-1-119-65270-0.
- Cahill, Bear (2021). UI Design for iOS App Development. doi:10.1007/978-1-4842-6449-2. ISBN 978-1-4842-6448-5. S2CID 229306131.
- Barker, Chris (2020-04-03). Learn SwiftUI: An introductory guide to creating intuitive cross-platform user interfaces using Swift 5. Packt Publishing Ltd. ISBN 978-1-83921-087-7.