Какой самый быстрый способ конвертировать imageURL из Firebase в UIImage? - PullRequest
0 голосов
/ 01 июня 2019

В моем приложении для iOS мне нужно взять строку imageURL и преобразовать ее в UIImage.

Я написал следующую функцию, чтобы справиться с этим:

 func getImage(urlString: String) -> UIImage {
    let url = URL(string: urlString)!
    do {
        let data = try Data(contentsOf: url)
        let image = UIImage(data: data)!
        return image
    } catch {
        print(error, " This was the error in p2")
    }
    return UIImage(named: "media")!
}

Проблема в том, что это занимает слишком много времени. Я полагаю, что это полная секунда или дольше, чтобы это закончилось.

Мне нужно, чтобы это время было значительно короче.

Вопрос : Есть ли более быстрый способ получить UIImage на основе imageURL из Firebase? (может быть, какао-стручок? или лучший способ написать код?)

Дополнительные вопросы:

  • Это было бы быстрее, если бы изображение в Firebase было более низкого качества?
  • Будет ли приемлемым решением снизить качество изображения непосредственно перед передачей в эту функцию?

1 Ответ

0 голосов
/ 01 июня 2019

Многие известные iOS-приложения (и веб-и мобильные, и общие), которые загружают много изображений, используют преимущества прогрессивного jpeg.Таким образом, ваш пользователь увидит хотя бы что-то, пока изображение загружается, и со временем оно будет постепенно улучшаться.Как отмечали многие комментаторы, вы не управляете Firebase так, как если бы у вас был собственный сервер, предоставляющий изображения для оптимизации производительности.Поэтому одна из лучших вещей, которую вы можете сделать, это внедрить в своем приложении прогрессивный jpeg.

Первая ссылка - это библиотека, которая позволит вам использовать прогрессивный jpeg в вашем приложении iOS.Вторая ссылка - это подробный подход, используемый в FaceBook для более быстрой загрузки изображений.

https://www.airpair.com/ios/posts/loading-images-ios-faster-with-progressive-jpegs

https://code.fb.com/ios/faster-photos-in-facebook-for-ios/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...