Instapaper Creator предлагает элегантное решение для фонового обновления приложений

Apple проделала ловкую работу по устранению недостатков настоящей многозадачности в iOS 4, предоставив разработчикам доступ к нескольким грамотно подобранным API (например, фоновый звук) и универсальному сохранению состояния.

Этого будет достаточно для большинства людей и большинства приложений, не вызывая огромного расхода заряда батареи или вычислительной мощности, но, к сожалению, новые API iOS 4 не делайте ничего, чтобы использовать одно из самых больших преимуществ многозадачности: фоновые приложения, которые могут обновлять или синхронизировать информацию, когда у них нет фокус. Другими словами, когда появится iOS 4, приложения, такие как программы чтения каналов, клиенты Twitter и программы обмена мгновенными сообщениями, по-прежнему должны будут быть открыты все время, чтобы получать новую информацию из Интернета.

В своем личном блоге Марко Армент, разработчик любимой Instapaper в App Store, написал: отличное предложение в Apple о том, как разрешить приложениям эффективно обновляться в фоновом режиме: дать iOS возможность назначать приоритет периодическим сетевым запросам сторонних приложений.

Добавление еще одной службы многозадачности решило бы эту проблему для многих типов приложений: периодический сетевой запрос. Вот как бы я это сделал:

• Приложение предоставляет системе NSURLRequest и идеальный интервал обновления, например каждые 30 минут, каждые несколько часов или каждый день.

• iOS выполняет этот запрос всякий раз, когда считает нужным, и сохраняет ответ в локальный файл.

• При следующем запуске приложения iOS передает ему NSData самого последнего ответа.

Выполнение запроса «всякий раз, когда он сочтет нужным» имеет важное значение. iOS может решить, например:

• Не обновлять при низком уровне заряда батареи, плохой связи, выполнении других запросов, низком уровне свободной памяти, высокой загрузке ЦП или превышении пользователем месячного лимита данных.

• Не обновлять так часто, как запрашивает приложение, или увеличивать интервал с течением времени, или динамически корректировать интервал в зависимости от того, как часто он получает ответ 304 (Not Modified).

• Не обновлять вообще, если запрашивающее приложение долгое время не запускалось.

Это позволит Instapaper загружать обновления в фоновом режиме, а также принесет большую пользу читателям RSS, клиентам Twitter, чату. программы, виджеты погоды и новостей, а также огромное количество других приложений, которые в настоящее время не могут получить большую пользу от iOS » многозадачность.

Я, конечно, не системный архитектор, но мне кажется, что это эффективное решение. На самом деле, это настолько понятное и очевидное решение, что мысль о том, чтобы дождаться обновления iOS 5 за такую ​​функциональность меня немного трясёт... хотя это мог быть вчерашний Talisker говорить.

Последнее сообщение в блоге

Лучшее из CES для Mac? Больше дисплеев Retina.
May 12, 2023

Mac вряд ли когда-либо будет в центре внимания таких мероприятий, как CES. Но на масштабной технической конференции этого года в Лас-Вегасе Samsung...

Новое видео «Снято на iPhone» рекламирует сверхстабильный режим действия
May 13, 2023

Мы и наши партнеры используем файлы cookie для хранения и/или доступа к информации на устройстве. Мы и наши партнеры используем данные для персонал...

Apple ускоряет планы по переносу сборки iPhone из Китая
May 13, 2023

Мы и наши партнеры используем файлы cookie для хранения и/или доступа к информации на устройстве. Мы и наши партнеры используем данные для персонал...