SwiftUI es un marco declarativo [1] para crear interfaces de usuario para iOS , iPadOS , watchOS , tvOS , visionOS y macOS , desarrollado por Apple Inc. para el lenguaje de programación Swift .
SwiftUI es declarativo , en contraste con la sintaxis imperativa utilizada en otros marcos de desarrollo de Apple como UIKit y AppKit . SwiftUI permite dibujos 2D, animaciones, manejo de eventos , widgets y vinculación de datos . SwiftUI sincroniza automáticamente entre las vistas de la interfaz de usuario y los datos. [2]
SwiftUI se integra con otras tecnologías de Apple, como Xcode y Swift Playgrounds, para proporcionar vistas previas en tiempo real durante la edición, [3] [4] junto con soporte para depuración y otras funciones de desarrollo.
SwiftUI permite la interoperabilidad con las vistas UIKit y AppKit a través de los protocolos UIViewRepresentable
y NSViewRepresentable
respectivamente. [5] [6]
SwiftUI se anunció en la Conferencia Mundial de Desarrolladores (WWDC) de la compañía el 3 de junio de 2019 y se agregó en iOS 13 y macOS Catalina . [1]
Durante la WWDC 2020 y el ciclo de lanzamiento de iOS 14 , Apple agregó de forma nativa soporte para mapas con la Map
vista, con una interfaz basada en Apple Maps a través de MapKit. [7] MapKit permite la anotación de mapas y las imágenes satelitales.
Durante la WWDC 2021 y el ciclo de lanzamiento de iOS 15 , Apple agregó el Canvas
elemento, agregando soporte para dibujo en modo inmediato y dibujo 2D de alto rendimiento. [8]
Durante la WWDC 2022 y el ciclo de lanzamiento de iOS 16 , Apple lanzó Swift Charts, un marco para crear gráficos personalizables y accesibles. [9]
Durante la WWDC 2023, Apple anunció Apple Vision Pro y se agregó soporte para el dispositivo a SwiftUI, junto con nuevas vistas para contenido de AR como RealityView
y ImmersiveSpace
. [10]
El siguiente es un ejemplo de un programa Hello World@main
simple. El atributo define el punto de entrada a la aplicación. Es una práctica estándar en SwiftUI separar la estructura de la aplicación y las vistas en diferentes estructuras, de acuerdo con el patrón arquitectónico Model–View–ViewModel (MVVM). [11] [ ¿ Fuente autopublicada? ]
importar SwiftUI@ estructura principal AnApp : App { var cuerpo : alguna escena { WindowGroup { ContentView () } } } struct ContentView : View { var body : some View { Text ( "¡Hola, mundo!" ) } }