Kingfisher pour Swift : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction à Kingfisher : qu'est-ce que c'est et pourquoi l'utiliser

\n\n

Kingfisher est une bibliothèque puissante et populaire pour Swift, conçue pour le chargement et la mise en cache d'images depuis le réseau. Elle offre aux développeurs une API simple mais flexible pour travailler avec des images dans les applications iOS, macOS, tvOS et watchOS. La bibliothèque est écrite en Swift pur et est activement maintenue par la communauté.

\n\n

Pourquoi utiliser Kingfisher ? Dans les applications mobiles modernes, le travail avec les images est l'une des tâches clés. Les utilisateurs s'attendent à un chargement rapide du contenu, un défilement fluide et une consommation minimale de données. Kingfisher résout ces problèmes en gérant automatiquement le chargement, la mise en cache (en mémoire et sur disque) et l'affichage des images. Au lieu d'écrire un code complexe pour gérer les requêtes réseau, la gestion des erreurs et la mise en cache, vous pouvez simplement appeler une seule méthode setImage(with:).

\n\n

Fonctionnalités clés :

\n
    \n
  • Chargement asynchrone : les images sont chargées en arrière-plan, sans bloquer l'interface utilisateur.
  • \n
  • Mise en cache multi-niveaux : le cache mémoire est vérifié en premier (accès rapide), puis le cache disque (stockage persistant).
  • \n
  • Gestion des erreurs : mécanismes intégrés pour gérer les erreurs réseau, les URL invalides et les données corrompues.
  • \n
  • Prise en charge des GIF et SVG : possibilité d'afficher des images animées et des graphiques vectoriels.
  • \n
  • Transformations d'images : méthodes intégrées pour redimensionner, recadrer, appliquer des filtres et arrondir les coins.
  • \n
  • Intégration avec UIKit et AppKit : extensions pour UIImageView, NSImageView, UIButton et d'autres éléments.
  • \n
  • Annulation du chargement : annulation automatique des requêtes lors de la réutilisation des cellules dans UITableView/UICollectionView.
  • \n
\n\n

Kingfisher n'est pas seulement un chargeur d'images, c'est un framework complet pour la gestion du contenu multimédia qui fait gagner des heures de développement et améliore les performances de l'application.

\n\n

Installation de Kingfisher

\n\n

Kingfisher peut être installé de plusieurs manières. La méthode recommandée est via Swift Package Manager (SPM), car c'est un outil natif pour la gestion des dépendances en Swift.

\n\n

1. Swift Package Manager (SPM) — Méthode recommandée

\n

Ouvrez votre projet dans Xcode, allez dans File → Add Packages... et collez l'URL du dépôt :

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

Choisissez la version (recommandé "Up to Next Major Version" avec la dernière version stable) et ajoutez le paquet à votre cible.

\n\n

2. CocoaPods

\n

Ajoutez à votre Podfile :

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

Exécutez ensuite dans le terminal :

\n
pod install
\n\n

3. Carthage

\n

Ajoutez à votre Cartfile :

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

Exécutez ensuite :

\n
carthage update
\n\n

4. Installation manuelle

\n

Téléchargez la dernière version depuis GitHub et ajoutez les fichiers du dossier Sources/Kingfisher à votre projet.

\n\n

Après l'installation, n'oubliez pas d'importer la bibliothèque dans les fichiers où vous prévoyez de l'utiliser :

\n
import Kingfisher
\n\n

Démarrage rapide : premier exemple

\n\n

Commençons par l'exemple le plus simple — charger une image depuis une URL et l'afficher dans un UIImageView. C'est l'opération de base avec laquelle on commence à travailler avec 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

Dans cet exemple, nous appelons la méthode setIm

Recommendations