Kingfisher para Swift: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción a Kingfisher: qué es y para qué sirve

\n\n

Kingfisher es una potente y popular biblioteca para Swift, diseñada para la carga y almacenamiento en caché de imágenes desde la red. Proporciona a los desarrolladores una API simple pero flexible para trabajar con imágenes en aplicaciones iOS, macOS, tvOS y watchOS. La biblioteca está escrita en Swift puro y es mantenida activamente por la comunidad.

\n\n

¿Para qué sirve Kingfisher? En las aplicaciones móviles modernas, trabajar con imágenes es una de las tareas clave. Los usuarios esperan una carga rápida de contenido, desplazamiento suave y un consumo mínimo de datos. Kingfisher resuelve estos problemas gestionando automáticamente la carga, el almacenamiento en caché (en memoria y en disco) y la visualización de imágenes. En lugar de escribir código complejo para gestionar solicitudes de red, manejo de errores y almacenamiento en caché, simplemente puede llamar al método setImage(with:).

\n\n

Características clave:

\n
    \n
  • Carga asíncrona: las imágenes se cargan en segundo plano sin bloquear la interfaz de usuario.
  • \n
  • Almacenamiento en caché multinivel: primero se verifica la caché en memoria (acceso rápido), luego la caché en disco (almacenamiento persistente).
  • \n
  • Manejo de errores: mecanismos integrados para manejar errores de red, URL incorrectas y datos corruptos.
  • \n
  • Soporte para GIF y SVG: capacidad de mostrar imágenes animadas y gráficos vectoriales.
  • \n
  • Transformaciones de imágenes: métodos integrados para cambiar tamaño, recortar, aplicar filtros y redondear esquinas.
  • \n
  • Integración con UIKit y AppKit: extensiones para UIImageView, NSImageView, UIButton y otros elementos.
  • \n
  • Cancelación de carga: cancelación automática de solicitudes al reutilizar celdas en UITableView/UICollectionView.
  • \n
\n\n

Kingfisher no es solo un cargador de imágenes, es un framework completo para la gestión de contenido multimedia que ahorra horas de desarrollo y mejora el rendimiento de la aplicación.

\n\n

Instalación de Kingfisher

\n\n

Kingfisher se puede instalar de varias maneras. El método recomendado es a través de Swift Package Manager (SPM), ya que es la herramienta nativa para la gestión de dependencias en Swift.

\n\n

1. Swift Package Manager (SPM) — Método recomendado

\n

Abra su proyecto en Xcode, vaya a File → Add Packages... e inserte la URL del repositorio:

\n
https://github.com/onevcat/Kingfisher.git
\n

Seleccione la versión (se recomienda "Up to Next Major Version" con la última versión estable) y añada el paquete a su target.

\n\n

2. CocoaPods

\n

Añada a su Podfile:

\n
pod 'Kingfisher', '~> 7.0'
\n

Luego ejecute en la terminal:

\n
pod install
\n\n

3. Carthage

\n

Añada a su Cartfile:

\n
github "onevcat/Kingfisher" ~> 7.0
\n

Luego ejecute:

\n
carthage update
\n\n

4. Instalación manual

\n

Descargue la última versión desde GitHub y añada los archivos de la carpeta Sources/Kingfisher a su proyecto.

\n\n

Después de la instalación, no olvide importar la biblioteca en los archivos donde planea usarla:

\n
import Kingfisher
\n\n

Inicio rápido: primer ejemplo

\n\n

Comencemos con el ejemplo más simple: cargar una imagen desde una URL y mostrarla en un UIImageView. Esta es la operación básica con la que se empieza a trabajar con Kingfisher.

\n\n
import UIKit\nimport Kingfisher\n\nclass ViewController: UIViewController {\n    @IBOutlet weak var imageView: UIImageView!\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        \n        let url = URL(string: "https://example.com/image.jpg")!\n        imageView.kf.setImage(with: url)\n    }\n}
\n\n

En este ejemplo, llamamos al método setIm

Recommendations