На прошедшей в понедельник презентации Apple рассказала о новой функции iOS 9, которую оценят владельцы iPhone и iPad, испытывающие нехватку свободного пространства на своих устройствах. Смысл функции под названием App Thinnig состоит в том, что гаджеты будут загружать в память только самый необходимый код, так что игры и приложения будут занимать намного меньше места.

Хотя Apple представила App Thinning как одну функцию, на самом деле она состоит из трёх разных механизмов, каждый из которых играет свою роль в уменьшении размера приложений. MacDigger изучил, как работают эти механизмы.
Первый – App Slicing – выполняет основную часть работы. Поскольку приложения создаются под большое количество устройств, от 3,5-дюймового iPhone 4 до 5,5-дюймового iPhone 6 (или, в случае с универсальными приложениями, 9,7-дюймового iPad), они содержат все данные для каждого девайса – большинство из которых вашему устройству не нужны.
К примеру, у вас iPhone 5c, который использует 32-битный процессор и видеокарту, не поддерживающую Metal API. Когда вы скачиваете современную универсальную игру, она содержит 64-битный код, пакеты данных для iPad и iPhone 6 Plus, а также код Metal API – и всё это абсолютно ненужные данные. Для вашего смартфона нужны лишь 32-битный код, пакет данных для iPhone и графика OpenGL.
Технология App Slices позволит разработчикам разделять пакеты данных по типам устройствам, и когда вы будете скачивать приложение из App Store, ваше устройство загрузит только те данные, которые ему нужны. Apple сделала этот процесс максимально простым, так что большинство программ в будущем будут поддерживать эту функцию.

Второй способ уменьшить размер приложений – On-Demand Resources (ODR). Представьте игру с большим количеством уровней – для игры достаточно иметь лишь текущий уровень и несколько следующих. ODR позволяет загрузить игру с несколькими первыми уровнями, остальные же будут загружаться по мере прохождения (а пройденные уровни будут автоматически удаляться).
И наконец, Bitcode. Вместо загрузки скомпилированных заранее бинарных файлов, разработчики загружают то, что Apple называет «промежуточной версией» приложения. Затем, перед началом загрузки, App Store автоматически компилирует приложение. Это позволяет автоматически включать App Slicing, даже если разработчики не позаботились об этом – и устройство будет использовать только 32-битный или 64-битный код, в зависимости от типа процессора.

При этом если Apple улучшит компилятор для повышения эффективности кода, эти улучшения автоматически добавятся в приложение, когда вы начнёте загрузку.
Во всём этом, конечно, есть нюансы. К примеру, если вы убиваете время в перелетах за многоуровневой игрушкой, будет неприятно, если загруженные уровни закончатся – ведь докачать новые до приземления вы не сможете. Тем не менее, App Thinning принесёт гораздо больше пользы – особенно для владельцев устройств с 16 ГБ памяти.
Взято с macdigger.ru