Я бы хотел, чтобы мое приложение могло - скажем, каждые 12 часов - даже если оно не запущено в данный момент или находится в фоновом режиме, отправлять HTTP-запрос на сервер, получать небольшой файл с номер версии, и если версия на сервере выше, чем версия на клиенте, загрузите еще несколько файлов на диск, чтобы при следующем запуске приложение обнаружило новый контент на диске.
Какие шаблоны проектирования лучше всего подходят для такой задачи в iOS?
Некоторые приходят мне в голову, но у меня нет такого опыта.
Вариант 1 может быть более тяжелым для сервера и более сложным для реализации (рассмотрим ios newbe), но он может быть единственным вариантом для реального фонового обновления. Но даже так,Я все еще не хочу, чтобы пользователю приходилось реагировать на какое-то обновление данных низкого уровня b / wa клиента и сервера (и это то, что это такое), поэтому, если push-уведомления не могут идти напрямую в приложение и выполнять что-то без пользователя вмешательство, тогда этот вариант не работает.
Все варианты 3-5 возможны и звучат не слишком сложно, но они будут работать, только когда приложение находится на переднем плане.
Насколько я знаю, фоновые приложения могут только воспроизводить музыку, получать обновления местоположения или обновления голосовой почты. Есть даже этот хак с тихим звуком, который пытался обойти это ограничение. (и не был одобрен магазином).
Возможно, существующие ограничения имеют уважительную причину, так как же мне играть по правилам и иметь возможность достичь периодического пинга сервера (или, в более общем плане, решить проблему периодического синхронизировать ч / б клиенты и серверы, даже когда приложения находятся в bg)?
Спасибо