Как сделать iOS-приложение тяжелым в сетевых запросах

Я работаю над приложением, которое основано на социальных принципах. В основном это связано с созданием расписаний для определенной деятельности и приглашением других пользователей присоединиться к определенной дате и времени. Тем не менее, приложение использует Parse в качестве бэкэнда. Почти каждое предпринимаемое действие требует некоторой работы в сети, и оно может ощущаться медленно при низком качестве соединения.

Как сделать приложение более отзывчивым?

  1. Когда данные извлекаются, скажем, список текущих друзей, могу ли я сохранить этих друзей в Базовых данных, а затем обновить мою модель Базовых данных, добавив или удалив друзей во время обновления?
  2. Должен ли я использовать какой-то инструмент кэширования, такой как NSCache?
  3. Должен ли я просто отображать загрузчик на экране во время выполнения сетевых запросов, а затем обновлять пользовательский интерфейс после завершения?

Я вижу, что такие приложения, как Facebook и Instagram, представляют несколько сообщений, когда приложения запускаются, когда они отправляют последние данные, но я не уверен, как они этого добиваются.

Можете ли вы дать мне правильное направление?

1 ответ

Решение

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

Приложения, которым требуются частые обновления сети (например, Facebook), обычно используют систему фоновой выборки iOS. Если вы согласитесь на это, iOS будет время от времени запускать ваше приложение в фоновом режиме, чтобы оно могло получать новые данные. Если ваше приложение сохраняет эти данные где-то на устройстве, оно уже присутствует, когда пользователь нажимает значок вашего приложения.

Использовать фоновую выборку довольно просто - вы добавляете соответствующий ключ в Info.plist, а затем реализуете application(application:, performFetchWithCompletionHandler:) в вашем приложении делегат.

Другие вопросы по тегам