ShareLink para Swift: guía completa con ejemplos prácticos
ShareLink es una estructura integrada en el framework SwiftUI, diseñada para crear botones «Compartir» en aplicaciones Swift. Proporciona una interfaz simple e intuitiva para integrar la hoja de compartir del sistema (UIActivityViewController) sin necesidad de escribir código UIKit complejo. Esta biblioteca apareció en iOS 16, macOS 13, tvOS 16 y watchOS 9, y desde entonces se ha convertido en la forma estándar de implementar el intercambio de contenido en aplicaciones modernas de SwiftUI.
¿Para qué sirve ShareLink? En el mundo actual, los usuarios comparten contenido constantemente: enlaces, fotos, texto, archivos. Implementar manualmente la función de compartir requiere crear un UIActivityViewController, configurar delegados y manejar diferentes tipos de datos. ShareLink se encarga de todo ese trabajo, proporcionando un componente SwiftUI listo para usar que se adapta automáticamente a la plataforma y la configuración del sistema. Esto no solo acelera el desarrollo, sino que también garantiza una experiencia de usuario uniforme en todos los dispositivos Apple.
La biblioteca es ideal para: aplicaciones sociales (compartir publicaciones), agregadores de noticias (compartir artículos), editores de fotos (exportar imágenes), mensajería (enviar archivos) y cualquier otra aplicación que requiera la función «Compartir». ShareLink admite todos los tipos de datos estándar: cadenas de texto, URL, imágenes, archivos y elementos personalizados que cumplan con el protocolo Transferable.
Instalación
ShareLink forma parte del framework SwiftUI, por lo que no requiere instalación adicional a través de gestores de paquetes. Para usarlo, simplemente importa SwiftUI en tu proyecto:
import SwiftUI
Requisitos mínimos:
- iOS 16.0+ / macOS 13.0+ / tvOS 16.0+ / watchOS 9.0+
- Xcode 14.0+
- Swift 5.7+
Si utilizas versiones anteriores de iOS, deberás usar UIActivityViewController directamente a través de UIViewRepresentable.
Inicio rápido
La forma más sencilla de usar ShareLink es pasarle una cadena de texto o una URL. Aquí tienes un ejemplo mínimo funcional:
import SwiftUI
struct ContentView: View {
var body: some View {
ShareLink(item: URL(string: "https://pythonlib.ru")!) {
Label("Compartir enlace", systemImage: "square.and.arrow.up")
}
.padding()
}
}
Este código crea un botón con el icono «Compartir». Al presionarlo, se abre la hoja de compartir del sistema, donde el usuario puede elegir la aplicación para enviar el enlace.
Métodos y clases principales
ShareLink ofrece varios inicializadores y modificadores para personalización. A continuación, las 8 funcionalidades clave.
1. ShareLink(item:)
Firma: init(item: T, subject: Text? = nil, message: Text? = nil, @ViewBuilder label: () -> Label)
Qué hace: Crea un botón de compartir para un solo elemento. El parámetro item puede ser una cadena, URL, imagen o cualquier tipo que cumpla con el protocolo Transferable.
ShareLink(item: "¡Hola, mundo!") {
Text("Compartir texto")
}
2. ShareLink(items:)
Firma: init(items: [T], subject: Text? = nil, message: Text? = nil, @ViewBuilder label: () -> Label)
Qué hace: Permite compartir varios elementos a la vez (por ejemplo, un array de fotos).
let imagenes = [UIImage(named: "foto1")!, UIImage(named: "foto2")!]
ShareLink(items: imagenes) {
Label("Compartir fotos", systemImage: "photo.on.rectangle")
}
3. ShareLink(item:preview:)
Firma: init(item: T, preview: SharePreview<T>, @ViewBuilder label: () -> Label)
Qué
También en la biblioteca
Generación de Swagger/OpenAPI para Go (Golang): guía completa
Geolocalización y mapas en C++: revisión de bibliotecas y herramientas
Tokens JWT en Kotlin: Guía completa con ejemplos de código
Autorización y autenticación en PHP: guía completa con ejemplos
Geolocalización y mapas en PHP: bibliotecas, API y ejemplos de código