import UIKit extension String { private var isURLString: Bool { return URL(string: self) != nil } private var isAssetURL: Bool { let asset = self.components(separatedBy: ".").last return asset == "png" || asset == "jpg" || asset == "pdf" } var scaledAssetURL: String { let scale = Int(UIScreen.main.scale) guard isURLString, isAssetURL, scale != 1 else { return self } var path = self let components = path.components(separatedBy: ".") let asset = components.last ?? "png" path = components.dropLast().joined(separator: ".") return "\(path)@\(scale)x.\(asset)" } } let path = "https://www.domain.com/app-assets/asset.png" path.scaledAssetURL