Middle
Hoe kan de laadtijd van afbeeldingen in de app worden verbeterd?
sobes.tech AI
Antwoord van AI
Om de laadtijden van afbeeldingen in de app te verbeteren, kunnen verschillende benaderingen worden gebruikt:
- Optimalisatie van afbeeldingen: compressie zonder kwaliteitsverlies, gebruik van moderne formaten (WebP, HEIF).
- Lazy loading: laad afbeeldingen alleen wanneer ze in het zicht van de gebruiker verschijnen.
- Caching: gebruik lokale cache en HTTP-cache voor hergebruik van geladen afbeeldingen.
- CDN: sla afbeeldingen op en lever ze via een Content Delivery Network om vertragingen te verminderen.
- Asynchroon laden: laad afbeeldingen op de achtergrond, zonder de hoofd-UI-thread te blokkeren.
- Afbeeldingsformaten: pas de grootte van de afbeelding aan de weergavegrootte aan om onnodige bytes te voorkomen.
Voorbeeld in Swift met lazy loading en caching:
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)
}
}
}
}