Instapaper Creator предлага елегантно решение за актуализиране на фоново приложение

Apple свърши умела работа за смекчаване на недостатъците на истинската многозадачност с iOS 4, като даде достъп на разработчиците до няколко интелигентно избрани API (като фоново аудио) и универсално запазване на състоянието.

Това ще бъде достатъчно добро за повечето хора и повечето приложения, без да причинява огромно изтичане на живота на батерията или процесора, но за съжаление новите iOS 4 API не правете нищо, за да адресирате едно от най -големите предимства на многозадачността: фонови приложения, които могат да актуализират или синхронизират информация, когато нямат фокус. С други думи, когато се появи iOS 4, приложения като четци на емисии, клиенти на Twitter и програми за незабавни съобщения ще трябва да бъдат отворени през цялото време, за да всмукват нова информация от Интернет.

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

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

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

• iOS изпълнява тази заявка, когато сметне, че трябва, и записва отговора в локален файл.

• Следващият път, когато приложението се стартира, iOS му предоставя NSData от най -новия отговор.

Изпълнението на заявката „винаги, когато прецени, че трябва“ е важно. iOS може да реши например:

• Да не се актуализира, когато батерията е изтощена, свързаността е лоша, други заявки се изпълняват, свободната памет е ниска, използването на процесора е високо или се очаква потребителят да надхвърли месечния си лимит за данни.

• Да не се актуализира толкова често, колкото иска приложението, или да увеличава интервала с течение на времето, или да регулира динамично интервала в зависимост от това колко често получава отговор 304 (Немодифициран).

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

Това би позволило на Instapaper да изтегля актуализации във фонов режим и също така би било от голяма полза за RSS четци, клиенти на Twitter, чат програми, джаджи за времето и новини и огромен брой други приложения, които понастоящем не могат да получат голяма полза от iOS “ многозадачност.

Със сигурност не съм системен архитект, но ми звучи като ефективно решение. Всъщност това е толкова разбираемо и очевидно решение, че мисълта за изчакване до актуализацията на iOS 5 тъй като подобна функционалност ми дава малък случай на разтърсванията... въпреки че това може да е Talisker от снощи говорене.

Последна публикация в блога

Федералният съдия отхвърля делото, твърдейки, че App Store е монопол
December 03, 2021

Федерален съдия на САЩ отхвърли друг иск, в който се твърди, че Apple има монопол върху разпространението на приложения за iOS.Създателите на Coron...

Получавайте бързи доплащания на iPhone с новото 30W USB-C зарядно устройство и спортни кабели на Nomad
December 03, 2021

Вземете бързо допълване на iPhone с новото 30W USB-C зарядно устройство и спортни кабели на NomadНовото 30W GaN зарядно устройство и спортните кабе...

Скот Форстал каза на Pandora да направи джейлбрейк на iPhone, за да създаде собствено приложение
December 03, 2021

Скот Форстал, бивш старши вицепрезидент на Apple, твърди, че е насърчил Пандора да пробие оригинален iPhone, за да може да започне да създава собст...