PhotosUI para Swift: Guía completa para seleccionar fotos y videos
1. ¿Qué es PhotosUI y por qué usarlo?
PhotosUI es un framework de Apple que proporciona interfaces de usuario listas para trabajar con la biblioteca multimedia del dispositivo. Forma parte de UIKit y actúa como una capa superior sobre el framework de más bajo nivel Photos. Su objetivo principal es permitir al desarrollador implementar de forma rápida y estandarizada la funcionalidad de selección de fotos y videos, sin tener que profundizar en la compleja lógica de gestión de permisos, navegación por álbumes y visualización de vistas previas.
¿Por qué es necesario? Primero, ahorra tiempo. En lugar de crear tu propio navegador de biblioteca multimedia desde cero, obtienes una interfaz pulida y lista para usar que los usuarios ya conocen. Segundo, garantiza seguridad y cumplimiento con las directrices de Apple. PhotosUI maneja automáticamente las solicitudes de acceso a la biblioteca (a través de PHPhotoLibrary) y funciona correctamente con las nuevas versiones de iOS, incluyendo soporte para privacidad y acceso limitado. Tercero, ofrece flexibilidad: puedes personalizar la apariencia, permitir selección múltiple, filtrar solo fotos o solo videos, e incluso configurar el comportamiento al editar.
Casos de uso principales: fotos de perfil, adjuntar imágenes a mensajes, subir videos a redes sociales, crear collages, integrar con filtros y editores. PhotosUI es ideal para cualquier aplicación que necesite acceso a la biblioteca multimedia del usuario.
2. Instalación
PhotosUI es parte de la biblioteca estándar del SDK de iOS. No requiere instalación a través de CocoaPods, Swift Package Manager ni Carthage. Todo lo que necesitas es importar el framework en tu proyecto.
Importante: PhotosUI está disponible desde iOS 8.0. Sin embargo, para usar todas las funcionalidades modernas (como PHPickerViewController), se recomienda iOS 14+.
// Importar el framework
import PhotosUI
No se necesitan comandos adicionales en la terminal. Simplemente añade import PhotosUI en el archivo donde planeas usar la funcionalidad de selección multimedia.
3. Inicio rápido: ejemplo mínimo funcional
La forma más sencilla de mostrar al usuario la interfaz de selección de fotos es usando PHPickerViewController (iOS 14+). Este controlador se ejecuta en un proceso separado, lo que mejora el rendimiento y la seguridad.
Ejemplo: un botón en pantalla que, al pulsarlo, abre el selector.
import UIKit
import PhotosUI
class ViewController: UIViewController, PHPickerViewControllerDelegate {
@IBAction func selectPhotoTapped(_ sender: UIButton) {
// 1. Crear la configuración del selector
var config = PHPickerConfiguration()
config.selectionLimit = 1 // Una sola foto
config.filter = .images // Solo imágenes
// 2. Crear el controlador
let picker = PHPickerViewController(configuration: config)
picker.delegate = self
// 3. Mostrarlo
present(picker, animated: true)
}
// MARK: - PHPickerViewControllerDelegate
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
dismiss(animated: true)
guard let provider = results.first?.itemProvider else { return }
// 4. Cargar la UIImage
if provider.canLoadObject(ofClass: UIImage.self) {
provider.loadObject(ofClass: UIImage.self) { image, error in
DispatchQueue.main.async {
// Usar la imagen obtenida
print("Imagen cargada: \(String(describing: image))")
}
}
}
}
}
También en la biblioteca
Migraciones de bases de datos en Node.js: Resumen de herramientas y ejemplos
Cheerio para JavaScript (Node.js): guía completa con ejemplos
Trabajo con imágenes en Java: desde la lectura hasta el procesamiento
Apache Commons para Java: guía completa con ejemplos