Какова наилучшая (или наиболее оптимальная) практика загрузки изображений в онлайн-хранилище с помощью iOS? - PullRequest
0 голосов
/ 03 июля 2018

В настоящее время я делаю приложение для iOS, которое требует функции загрузки изображений. Я использую Firebase для хранения изображений, и я использую API ruby ​​on rails, который я создал для всего остального (например, аутентификация, учетные записи пользователей и т. Д.). Загрузка изображений работает в данный момент в приложении, однако, это немного медленно. (это вызывает тревогу, потому что я единственный, кто его использует. Не то, чтобы в API или Firebase одновременно отправлялась куча HTTP-запросов, это просто я проверял). Вот как я сейчас обрабатываю закачки:

  1. Пользователь выбирает фотографию для загрузки.
  2. Фотография преобразуется в строковое представление в формате png и отправляется в базу данных Firebase
  3. Возвращается URL загрузки фотографии с firebase
  4. Этот URL затем отправляется в API и присваивается атрибуту profile_image этого конкретного пользователя.

И это сделано. Итак, когда пользователь хочет увидеть это фото:

  1. к API поступил запрос на получение, который отвечает всеми разделяемыми атрибутами пользователя, такими как имена пользователей и т. Д., А также URL-адресом этого изображения.
  2. затем приложение «загружает» это изображение и помещает его в UIImageView.

Некоторые стручки какао, которые я использую для достижения этой цели:

  1. Alamofire
  2. SwiftyJSON
  3. FirebaseStorage
  4. SDWebImage

Мой вопрос заключается в том, является ли это хорошим способом приблизиться к загрузке изображений в моих обстоятельствах. Это немного медленно, но я не знаю, связано ли это с тем, что я использую бесплатный веб-хостинг Heroku для своего API или потому, что способ загрузки изображений и их извлечения слишком сложен и может быть упрощено.

1 Ответ

0 голосов
/ 04 июля 2018

Если вы берете изображения с камеры высокого разрешения (11 мегапикселей), и вы используете только их отображение на телефоне / iPad (т.е. не распечатываете их на рекламном щите), измените размер изображения прежде чем отправлять его в Firebase и использовать изображение намного меньшего размера, это значительно повысит производительность.

Вероятно, вы задерживаетесь из-за размера файла.

Если вам нужны файлы большого размера, используйте кеширование!

...