Au service des images depuis 2015
Chargez des images provenant de différentes sources et affichez-les dans votre application à l'aide d'API simples et flexibles. Profitez des puissantes capacités de traitement d’image et d’un système de mise en cache robuste.
Le framework est simple et se compile en moins de 2 secondes¹. Il dispose d'une suite de tests automatisés 2 fois la taille de la base de code, garantissant une excellente fiabilité. Nuke est optimisé pour les performances et son architecture avancée permet des possibilités de personnalisation pratiquement illimitées.
Mémoire et cache disque · Traitement et décompression d'images · Fusion et priorité des demandes · Prélecture · Téléchargements pouvant être repris · JPEG progressif · HEIF, WebP, SVG, GIF · SwiftUI · Async/Await
Déchéance : amis, pas abonnés .
Nuke est également soutenu par :
Mandataire | Voyage dans l'espace arrière |
Nuke prend en charge Swift Package Manager, qui est l'option recommandée. Si cela ne fonctionne pas pour vous, vous pouvez utiliser des frameworks binaires joints aux versions.
Le package est livré avec quatre modules que vous pouvez installer en fonction de vos besoins :
Module | Description |
---|---|
Nucléaire | Le framework de base lean avec ImagePipeline , ImageRequest , et plus encore |
NukeUI | Les composants de l'interface utilisateur : LazyImage (SwiftUI) et ImageView (UIKit, AppKit) |
Extensions nucléaires | Les extensions pour UIImageView (UIKit, AppKit) |
NukeVidéo | Les composants pour décoder et lire des vidéos courtes |
Nuke est facile à apprendre et à utiliser, grâce à sa documentation complète et à une API moderne.
Vous pouvez charger des images à l'aide ImagePipeline
à partir du module Nuke Lean Core :
func loadImage() async throws { let imageTask = ImagePipeline.shared.imageTask(with: url) pour attendre la progression dans imageTask.progress { // Progression de la mise à jour } imageView.image = essayez d'attendre imageTask.image}
Ou vous pouvez utiliser les composants d'interface utilisateur intégrés du module NukeUI :
struct ContentView : View { var body : some View { LazyImage(url : URL(string : "https://example.com/image.jpeg")) }}
Le guide de démarrage est le meilleur endroit pour commencer à en apprendre davantage sur ces API et sur de nombreuses autres API fournies par le framework. Consultez Nuke Demo pour plus d’exemples d’utilisation.
Le pipeline d’images est facile à personnaliser et à étendre. Découvrez les extensions et packages de première classe suivants créés par la communauté.
Nom | Description |
---|---|
Plugin Alamofire | Remplacer la couche réseau par Alamofire |
NukeWebP | Communauté . Prise en charge WebP, construite par Maxim Kolesnik |
Plugin WebP | Communauté . Prise en charge WebP, construite par Ryo Kosuge |
Plugin AVIF | Communauté . Support AVIF, construit par Denis |
RxNuke | Extensions RxSwift pour Nuke avec exemples |
Vous cherchez un moyen de consigner vos requêtes réseau, y compris les requêtes d’images ? Découvrez Pulse .
Mettre à jour depuis la version précédente ? Utilisez un guide de migration .
Nucléaire | Date | Rapide | Xcode | Plateformes |
---|---|---|---|---|
Nucléaire 12.0 | 4 mars 2023 | Rapide 5.7 | Xcode15.0 | iOS 13.0, watchOS 6.0, macOS 10.15, tvOS 13.0 |
Nucléaire 11.0 | 20 juillet 2022 | Rapide 5.6 | Xcode 13.3 | iOS 13.0, watchOS 6.0, macOS 10.15, tvOS 13.0 |
Nucléaire 10.0 | 1 juin 2021 | Rapide 5.3 | Xcode12.0 | iOS 11.0, watchOS 4.0, macOS 10.13, tvOS 11.0 |
À partir de la version 12.3, Nuke est également livré avec le support visionOS (en version bêta)
Nuke est disponible sous licence MIT. Voir le fichier LICENSE pour plus d'informations.
¹ Mesuré sur MacBook Pro 14" 2021 (M1 Pro 10 cœurs)