Как новый Apple TV использует ресурсы по запросу для размещения отличных приложений и игр

Судя по снимку экрана из руководящих принципов Apple для разработчиков, некоторые люди не в восторге от нового ограничения Apple TV в 200 МБ для пакетов приложений (приложение, которое вы загружаете из App Store Apple TV).

200 МБ — это не так уж много для хранения уровней игры, офлайн-сервисов контента или чего-то подобного. Хорошая новость в том, что 200 МБ — это всего лишь ограничение на размер вашей начальной загрузки в App Store. Открыв приложение, вы можете загрузить до 2 ГБ на одно приложение, а в облаке будет доступно до 20 ГБ других ресурсов. Apple позволяет разработчикам делать это с помощью ресурсов по запросу, и вот как это работает.

Ресурсы по запросу 101

Допустим, вы, разработчик, делаете приложение с боковой прокруткой для Apple TV с 50 уровнями. В целом, ваш пакет приложений составляет примерно 4 ГБ — слишком много для правильного размещения в магазине приложений Apple TV. Вместо этого вы можете воспользоваться новой функцией tvOS / iOS под названием «Ресурсы по требованию», чтобы разделить свое приложение и доставить его пользователю по частям.

Вместо того, чтобы заставлять пользователя загружать 4 ГБ сразу, вы разбиваете свое приложение на несколько разделов, которые называются теги. Вы включаете основные части приложения — экран загрузки и запуска, оценки, настройки и первые пять уровней — в этот пакет объемом 200 МБ.

Другие уровни и ресурсы разделены на несколько тегов, размер которых варьируется от 64 МБ до 512 МБ. Если вы, например, нарезали теги размером до 100 МБ для вашей игры, у вас будет 38 дополнительных элементов для загрузки после того, как пользователь установит игру. Однако они не приходят все сразу: они вызываются по запросу, когда они нужны пользователю.

Как работают ресурсы по требованию в действии

Когда пользователь загружает ваше приложение, он загружает этот первоначальный пакет приложений объемом 200 МБ со всеми базовыми функциями. Оттуда разработчики также могут отметить до 2 ГБ в теги начальной установки для скачивания на install — это означает, что когда пользователь завершает установку и открывает приложение, он может получить до двух дополнительных гигабайт ресурсов в фоновом режиме.

В приведенном выше сценарии начальный пакет 200 МБ может быть просто экраном запуска вашей игры и т.п. Однако как только пользователь откроет ваше приложение в первый раз, он вызовет дополнительные 2 ГБ, которые включают первые 25 уровней.

На данный момент ваша игра использует 2,2 ГБ данных — 2 ГБ ресурсов по запросу, загружаемых локально, плюс остальные 200 МБ из исходного набора приложений. Это истинное количество памяти, которое Apple TV поддерживает одновременно: 2,2 ГБ.

Но: У вас игра на 4Гб! Как получить остальные 25 уровней?

Легко благодаря мощности фоновой обработки. Ресурсы по требованию работают вместе со всем, к чему активно обращается ваш пользователь, и удаляют старый неиспользуемый контент, чтобы освободить место для дополнительных ресурсов. Если пользователь играет на уровне 24 вашей игры, система автоматически сбрасывает несколько тегов по 100 МБ старых уровней (скажем, 1–5), чтобы освободить место для уровней 25–30. По мере того, как пользователь углубляется в вашу игру, старые уровни отключаются и удаляются с Apple TV, а новые уровни (также в наборах тегов) устанавливаются — все в фоновом режиме.

Вы можете разместить до 20 ГБ ресурсов по запросу в магазине приложений Apple TV. Хотя наша гипотетическая игра может занимать всего 4 ГБ, 20 ГБ предлагают большой потенциал для других, более сложных игр и приложений.

TL; DR: в магазине есть большой потенциал для игр и приложений.

Напомним: 200 МБ — это начальный пакет приложений. 2,2 ГБ — это то, сколько места приложение может занять в любой момент. 20 ГБ — это максимальный объем ресурсов Apple, который вы можете иметь для любого приложения.

Напротив, iOS позволяет использовать до 2 ГБ для начального пакета приложений, а еще 2 ГБ доступно в тегах, что в сумме составляет 4 ГБ для каждого приложения. Так что Apple TV использует меньше места, чем iOS, да. Но 200-мегабайтным приложениям это не мешает.

Большое спасибо Apple за отличную документацию для разработчиков по ресурсам по требованию {.nofollow} за помощь в решении этой проблемы. Есть еще вопросы по этому поводу? Дайте мне знать в комментариях, и я постараюсь разобраться.

var fbAsyncInitOrg = window.fbAsyncInit; window.fbAsyncInit = function() { if(typeof(fbAsyncInitOrg)=='function') fbAsyncInitOrg(); FB.init({ appId: "291830964262722", xfbml: true, version : 'v2.7' });

FB.Event.subscribe('xfbml.ready', function(msg) { // Log all the ready events so we can deal with them later var events = fbroot.data('ready-events'); if( typeof(events) === 'undefined') events = []; events.push(msg); fbroot.data('ready-events',events); });

var fbroot = $('#fb-root').trigger('facebook:init'); };

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *