Middle
Kako poboljšati vreme učitavanja slika u aplikaciji?
sobes.tech АИ
Одговор од АИ
Za poboljšanje vremena učitavanja slika u aplikaciji, mogu se koristiti različiti pristupi:
- Optimizacija slika: kompresija bez gubitka kvaliteta, korišćenje modernih formata (WebP, HEIF).
- Lazy loading: učitavanje slika samo kada se pojave u vidljivom delu korisničkog interfejsa.
- Keširanje: korišćenje lokalnog keša i HTTP keša za ponovnu upotrebu učitanih slika.
- CDN: skladištenje i isporuka slika putem Content Delivery Network-a za smanjenje latencije.
- Asinhrono učitavanje: učitavanje slika u pozadini, bez blokiranja glavne niti UI-ja.
- Veličine slika: prilagođavanje veličine slike veličini prikaza, kako bi se izbeglo učitavanje suvišnih bajtova.
Primer u Swift-u koristeći lazy loading i keširanje:
let imageCache = NSCache<NSString, UIImage>()
func loadImage(from urlString: String, completion: @escaping (UIImage?) -> Void) {
if let cachedImage = imageCache.object(forKey: urlString as NSString) {
completion(cachedImage)
return
}
guard let url = URL(string: urlString) else {
completion(nil)
return
}
DispatchQueue.global().async {
if let data = try? Data(contentsOf: url), let image = UIImage(data: data) {
imageCache.setObject(image, forKey: urlString as NSString)
DispatchQueue.main.async {
completion(image)
}
} else {
DispatchQueue.main.async {
completion(nil)
}
}
}
}