Connect with us

Разработка

“Похудевшие” приложения освободят пространство на iPhone и iPad

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

Анна Уханаева

Опубликовано

/

     
     

iOS8 была не слишком добра к iPhone и iPad на 8Гб и 16Гб. Обновления “по воздуху” требовали многих гигабайтов свободной памяти, и их установка сокращала доступное на вашем устройстве свободное пространство. Вместе с iPhone6 Plus, принесшим “3x” ресурсы, приложения стали больше, чем они когда-либо были. К счастью, iOS9 должна помочь с этой проблемой, пишет ArsTechnica.

Apple уже упомянула, что компания уменьшила память, требующуюся для OTA обновления iOS 9, с 4.6 Гб до 1.3 Гб, но более интересная технология пока не получила внимания: Похудение приложений (App Thinning). Цель ее состоит в том, чтобы приложения на вашем телефоне или планшете оставили больше свободного пространства.

Есть три основных механизма, которые разработчики могут использовать для уменьшения размеров приложений. Первый и самый значительный – Нарезка приложения (App Slicing). Каждый бинарник приложения для iOS, который вы скачиваете, содержит весь код для всех устройств (если предположить, что это новое универсальное приложение с поддержкой iPhone 6 Plus, устройств 32 бита и 64 бита) – оно содержит ассеты для буквально каждого поддерживаемого iOS устройства, независимо от того, нужен этот код для вашего устройства или нет.

Допустим, у вас iPhone 5C с 32-битным CPU и GPU без поддержки API Metal. Скачайте современную универсальную и игру, и в нее будет включен 64-битный код, ресурсы для iPad и “3х” для iPhone 6 Plus, к тому же еще и ненужный код Metal API. А нужен всего-то 32-битный код, “2х” ассеты для iPhone и код для OpenGL графики. Нарезка приложения позволит скачивать только ту часть, которая нужна именно для вашего устройства.

Важно заметить, что это не должно потребовать большой дополнительной работы от разработчиков – все, что нужно, согласно документации, положить все в каталог ассетов и тэгировать для разных платформ. Разработчики так же, как и сейчас, загружают полные версии своих приложений в App Store, а App Store проделывает работу по компиляции и доставке специфичных для устройства версий этих приложений.

DSC00764-640x427

Вторая функция куда более сложная. Ресурсы по запросу (On-Demand Resources, ODR) – части приложений, которые скачиваются только тогда, когда они нужны и удаляются с устройства после выполнения своей задачи. Apple выложила на сайте для разработчиков много подробностей об ODR, но основная вещь – не надо использовать все ресурсы в приложении в одно и то же время.

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

Во время кодинга приложений разработчикам, которые хотят использовать ODR, нужно будет присваивать тэги разным частям кода. Пример Apple – снова игра, в которой можно тэгировать ассеты для разных уровней. Данные будут скачиваться из App Store (или с вашего тестировочного Mac, если вы разработчик), когда они нужны, и удаляться, когда ОС нужна память для чего-то другого. Разработчики смогут указать, какой ассет нужен для первого запуска приложений, когда приложению эти ресурсы больше не нужны и какие тэги нужно удалять в первую очередь для очистки пространства.

ODR_flow_2x

Apple предоставила полный список того, какой контент приложений может быть тэгирован как ODR – картинки и медиа файлы в него включены среди нескольких других вещей – но реально выполняемый код нельзя тэгировать как ODR.

Это кажется более трудным, чем Нарезка приложений, но все вместе поможет сэкономить пространство. Не очень ясно, какие могут возникнуть с этим проблемы; например, приложению может понадобиться скачать какой-то ресурс, а интернет-соединения не будет, или понадобится ли больше времени на работу приложения, пока оно будет скачивать ресурсы.

Последняя часть – то, что Apple назвала Bitcode. Когда разработчики загружают приложения в App Store, вместо уже скомпилированных программ им нужно предоставить “промежуточную” версию этих приложений, которая будет компилироваться непосредственно для устройства, когда пользователь скачивает приложение. Это делает возможным часть функциональности Нарезки приложений – определяет, загружает ли ваше приложение 32- или 64-битный код.

Поскольку Apple компилирует код по запросу, компания сможет реализовывать улучшать компилятор без необходимости разработчику ресабмитить приложение. В целом, это не сильно отличается от JIT (just-in-time) на Android и рантаймов ahead-of-time (AOT) Dalvik и ART, которые компилируют код для конкретной архитектуры CPU, когда вы запускаете или загружаете приложений (соответственно).

Использование Bitcode включено по умолчанию, но опционально для приложений на iOS (скорее всего скоро оно станет обязательным). Тем не менее, оно уже необходимо для нативных приложений на Apple Watch.

Анна Уханаева
Комментарии Facebook
Продолжить чтение
Click to comment

You must be logged in to post a comment Login

Leave a Reply

Обучение

Разработка iOS 11 приложений на Swift

Стэнфордский университет опубликовал новую версию курса по Swift в iTunes U.

Леонид Боголюбов

Опубликовано

/

В новом курсе учтены все изменения, сделанные в iOS 11 и новой версии Swift.

Темы:

  • Инструменты и API, которые понадобятся для разработки приложений для iPhone и iPad/
  • Пользовательский интерфейс.
  • MVC-парадигма.
  • Анимации.
  • Многопоточность.
  • Работа с сетью.

Курс бесплатен и доступен для прохождения на iPhone и iPad. Язык – английский.

 

Леонид Боголюбов
Комментарии Facebook
Продолжить чтение

Новости

Интересные материалы: 16.11

Лучшие материалы о разработке и маркетинге технологических продуктов.

Леонид Боголюбов

Опубликовано

/

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

Леонид Боголюбов
Комментарии Facebook
Продолжить чтение

Разработка

Почему не надо патентовать идею мобильного приложения

Студия AppCraft рассказала нам, стоит ли патентовать идею мобильного приложения, а если нет, то как лучше подойти к развитию своего продукта.

AppCraft

Опубликовано

/

Автор:

Многие начинающие предприниматели, придумавшие бизнес идею в области мобильных приложений, первым делом ищут возможности получить патент на изобретение. Замысел понятен – сразу после старта любой желающим может обойти на повороте, воспользовавшись новым видением и потенциалом.

В этой статье мы тезисно перечислим причины этого не делать.

Что такое патент

Патент – это охранный документ, удостоверяющий исключительное право, авторство и приоритет изобретения, полезной модели либо промышленного образца. В случае с разработкой мобильного приложения, являющегося программным обеспечением, получить патент в России и Европе на алгоритмическую часть (непосредственно программу) не удастся: статья 52 европейской патентной конвенции прямо запрещает патентование программ для ЭВМ.

Поэтому в случае с мобильными приложениями, как правило, защищается не сам продукт, а общая идея функционирования сервиса, отражающая некоторую новизну подхода к решению той или иной задачи. Запатентовать код тоже можно, но только в некоторых юрисдикциях, например, в США или Южной Корее.

Это долго и дорого

Получение патента на мобильное приложение отнимает драгоценное время, которое на старте продукта лучше потратить на проверку гипотезы о работающей бизнес модели.

Вам не только нужно найти патентного поверенного, который может взяться за работу по описанию и оформлению вашей идеи, но и заплатить за его услуги, оплатить патентные взносы, переводчика и так далее.

Вы потратите минимум 50–100 тысяч рублей (если часть работы будете делать самостоятельно) и не меньше 3–4 месяцев, если делать все очень быстро.

После этого вы можете получить отказ на регистрацию от патентного бюро, потому что описание недостаточно детальное, не содержит инновационности, дублирует уже существующие патенты и т.д. Только 56% патентов регистрируется, соответственно, 44% – отклоняется.

При этом, по статистике, 97% (!) патентов генерируют прибыли меньше, чем стоимость их оформления.

Вы патентуете не то, что нужно

Практически всегда желание защитить бизнес возникает на стадии первой идеи. Как только прошло достаточно времени на обдумывание плана, сразу возникает мысль о защите еще будущего предприятия. Желание понятно, однако идея и ее реализация – всегда разные вещи.

Пол Грэм, один из известнейших предпринимателей в IT и основатель Y Combinator, говорит, что по его опыту от 70 до 100% проектов имеют разные ключевые идеи на старте и через 3 месяца операционной работы.

Так происходит из-за того, что бизнес – это решение реальных проблем. Он развивается и растет в синергии с потребностями людей, которые:

  1. вам досконально неизвестны на стадии идеи;
  2. меняются со временем;
  3. решаются так, как хочется им, а не вам.

Как только вы начнете запускать идею, с вероятностью близкой к 100% вам придется если не полностью изменить вашу задумку, то значительно ее переработать. Зачем в этом случае патентовать в самом начале то, от чего в последствие вы сами откажетесь?

Забывается главное

А главное – это скорость проверки гипотез о работающих моделях, сбор фидбека с потенциальных клиентов и реализация MVP. Любой, кто работает на этом же рынке и справляется с этим лучше, опередит вас, несмотря на наличие патента. Потому что, во-первых, он понимает рынок лучше, а во-вторых, открытая им более эффективная модель наверняка не будет совпадать с вашим патентом.

Фокусируясь на защите идеи, вы сразу же отстаете в скорости ее развития и реализации.

Патент – не единственный способ защититься

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

  • Купите домен с именем продукта. Хорошее имя дает сильный эффект, а при решении любых споров покупка вашего домена в более ранний срок, чем оформление торговой марки конкурента, решает многие вопросы.
  • Создайте группы в социальных сетях с названием проекта. Как и в случае с доменом, хорошие названия имеют и хорошие поисковые позиции, и неплохо запоминаются, и становятся недоступны конкурентам.
  • Зарегистрируйте торговую марку. Это не быстро в некоторых юрисдикциях (например, в России), но во многих странах осуществляется в течение нескольких дней и с минимальными затратами.

Итого

Патентовать изобретения важно и нужно, но это совершенно не то, что стоит делать первым делом, когда вы занимаетесь стартапом. Многие компании стали заниматься защитой интеллектуальной собственности только после того, как начали генерировать прибыль.

В самом начале стоит полностью сфокусироваться на самой идее продукта, ее проверке, продумывании виральности и создании MVP, находясь при этом на постоянной, максимально близкой связи с вашими будущими клиентами.

AppCraft
Комментарии Facebook
Продолжить чтение

Календарь

ноябрь

16ноя - 18Весь деньVIII Всероссийский форум молодых лидеров YouLead

17ноя - 19Весь деньТИЛТЕХ МЕДХАК

18нояВесь деньDevFest Gorky 2017

24ноя - 26Весь деньWhat the hack?!

25нояВесь деньLadies Code: время технологий

25нояВесь деньSmart Taler 2017

30нояВесь деньSmart Cars & Roads 2017

декабрь

5дек18:30- 22:00Яндекс изнутри: глазами iOS-разработчика

8дек - 9Весь деньКубок СTF России

9дек - 10Весь деньGames Gathering 2017

9декВесь деньЛекционный день по игровой индустрии

Наша рассылка

Каждому подписавшемуся - "1 час на UI аудит": бесплатный ускоренный курс для разработчиков веб и мобильных приложений!

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Наш Facebook

Популярное

X

Спасибо!

Теперь редакторы в курсе.