Servindo imagens desde 2015
Carregue imagens de diferentes fontes e exiba-as em seu aplicativo usando APIs simples e flexíveis. Aproveite os poderosos recursos de processamento de imagens e um sistema de cache robusto.
A estrutura é enxuta e compila em menos de 2 segundos¹. Possui um conjunto de testes automatizados com o dobro do tamanho da base de código, garantindo excelente confiabilidade. O Nuke é otimizado para desempenho e sua arquitetura avançada permite possibilidades virtualmente ilimitadas de personalização.
Memória e cache de disco · Processamento e descompactação de imagens · Coalescência e prioridade de solicitação · Pré-busca · Downloads recuperáveis · JPEG progressivo · HEIF, WebP, SVG, GIF · SwiftUI · Async/Await
Lapso : amigos, não seguidores .
Nuke também é suportado por:
Procurador | Viagem no retrocesso |
Nuke oferece suporte ao Swift Package Manager, que é a opção recomendada. Se isso não funcionar para você, você pode usar estruturas binárias anexadas às versões.
O pacote vem com quatro módulos que você pode instalar dependendo de suas necessidades:
Módulo | Descrição |
---|---|
Arma nuclear | A estrutura central enxuta com ImagePipeline , ImageRequest e muito mais |
NukeUI | Os componentes da IU: LazyImage (SwiftUI) e ImageView (UIKit, AppKit) |
NukeExtensões | As extensões para UIImageView (UIKit, AppKit) |
NukeVídeo | Os componentes para decodificar e reproduzir vídeos curtos |
Nuke é fácil de aprender e usar, graças à sua extensa documentação e a uma API moderna.
Você pode carregar imagens usando ImagePipeline
do módulo Lean Core Nuke :
func loadImage() async throws { let imageTask = ImagePipeline.shared.imageTask (com: url) para aguardar o progresso em imageTask.progress { //Atualizar o progresso} imageView.image = tente aguardar imageTask.image}
Ou você pode usar os componentes de UI integrados do módulo NukeUI :
struct ContentView: View { var body: some View { LazyImage(url: URL(string: "https://example.com/image.jpeg")) }}
O guia de primeiros passos é o melhor lugar para começar a aprender sobre essas e muitas outras APIs fornecidas pela estrutura. Confira Nuke Demo para mais exemplos de uso.
O pipeline de imagens é fácil de personalizar e estender. Confira as seguintes extensões e pacotes de primeira classe criados pela comunidade.
Nome | Descrição |
---|---|
Plug-in Alamofire | Substitua a camada de rede pelo Alamofire |
NukeWebP | Comunidade . Suporte WebP, desenvolvido por Maxim Kolesnik |
Plug-in WebP | Comunidade . Suporte WebP, desenvolvido por Ryo Kosuge |
Plug-in AVIF | Comunidade . Suporte AVIF, desenvolvido por Denis |
RxNuke | Extensões RxSwift para Nuke com exemplos |
Procurando uma maneira de registrar suas solicitações de rede, incluindo solicitações de imagens? Confira Pulso .
Atualizando da versão anterior? Use um guia de migração .
Arma nuclear | Data | Rápido | Código X | Plataformas |
---|---|---|---|---|
Arma nuclear 12.0 | 4 de março de 2023 | Rápido 5.7 | Xcode 15.0 | iOS 13.0, watchOS 6.0, macOS 10.15, tvOS 13.0 |
Arma nuclear 11.0 | 20 de julho de 2022 | Rápido 5.6 | Xcode 13.3 | iOS 13.0, watchOS 6.0, macOS 10.15, tvOS 13.0 |
Arma nuclear 10.0 | 1º de junho de 2021 | Rápido 5.3 | Xcode 12.0 | iOS 11.0, watchOS 4.0, macOS 10.13, tvOS 11.0 |
A partir da versão 12.3, o Nuke também vem com suporte para visionOS (em beta)
Nuke está disponível sob a licença do MIT. Consulte o arquivo LICENSE para obter mais informações.
¹ Medido no MacBook Pro 14" 2021 (M1 Pro de 10 núcleos)