На WWDC 2015 было представлено столько интересных новинок, что многие разработчики пропустили одно из самых больших нововведений, представленных Apple — Bitcode.
Bitcode позволит оптимизировать приложения в App Store для различных устройств перед загрузкой пользователями. А уже существующие приложения в App Store, так же смогут использовать преимущества новых процессоров без каких-либо действий со стороны разработчиков. Не понадобятся ни обновления, ни повторная публикация.
Если Apple внезапно изменит архитектуру процессора в своих устройствах, у разработчиков отпадёт необходимость обновлять свои приложения для поддержки новой архитектуры. Благодаря тому, что App Store автоматически перекомпилирует приложения. Приложения сразу смогут работать с новыми процессорами, независимо от того, слышали ли вообще разработчики об их появлении или нет.
Что же представляет собой Bitcode?
Это хороший вопрос. Для начала, вы должны иметь представление о Low Level Virtual Machine (LLVM) — универсальная система трансформации, для преобразования существующего кода в машинный код для различных архитектур.
LLVM состоит из двух частей: “фронтенда” и “бэкенда”. Первая — это высокоуровневый язык программирования, на котором вы пишете свое приложение. Например, Objective-C, Swift, Python или Ruby. Вторая часть служит для компиляции этого приложения в машинный код. Преобразование команд в понятный отдельно взятому процессору. При такой архитектуре Bitcode является прослойкой или промежуточным языком, который может повторно скомпилировать приложение в машинный код. Bitcode может преобразовать код в исполняемое приложение, основанное на необходимом наборе инструкций.
Apple не боится смены архитектуры процессоров.
Как показывает история, Apple не стесняется менять архитектуру процессоров. Apple – одна из немногих компаний, которая успешно пережила смену архитектуры в своих продуктах. Самой значительной переменой был переход с архитектуры PowerPC на Intel в 2005 году. Apple отказалась от устаревшей аппаратной платформы, предоставив разработчикам новые возможности.
Из недавних изменений можно назвать переход на 64-битную архитектуру в iPhone два года назад. Тогда разработчикам пришлось повторно компилировать свои приложения, чтобы добавить в них поддержку 64-битного процессора iPhone 5s. С Bitcode разработчикам больше не нужно будет переделывать свои приложения даже после существенных изменений вычислительной архитектуры. Если Apple внезапно перейдет на новую архитектуру, например в iPad Pro, то благодаря Bitcode приложения разработчиков будут поддерживать новое устройство сразу после его релиза.
Но всё не так красочно, мнения разработчиков разнятся. iOS-разработчик Калеб Дэвенпорт считает, что у Bitcode есть как плюсы, так и минусы. Apple больше не нужно ждать разработчиков, чтобы представить обновленные инструменты для поддержки новых устройств.
«Меня пугает то, что мое приложение может быть скомпилировано в конфигурациях, которые я не смогу проверить, что, в свою очередь, приведет к ошибкам, которые я не смогу воспроизвести.»
Калеб Дэвенпорт ждал появления 64-битных устройств в продаже, чтобы протестировать свое приложение на «реальном» железе и только после тестирования добавлял в него соответствующую поддержку. В случае с Bitcode, который автоматически компилирует приложения для новых устройств без участия разработчиков, могут пройти недели, прежде чем разработчик купит новое устройство для тестов, в то время как пользователи будут использовать его приложение и сталкиваться с возможными ошибками.
Другие разработчики считают иначе. например, Сьёрд Дженссен положительно воспринимает нововведения Apple, поскольку они уменьшат объем работы, которую ему нужно выполнить для поддержки новых устройств. Он полагает, что, если бы Apple внезапно перешла на процессоры Intel в новых iPhone, с его стороны не требовалось бы никаких действий, чтобы обеспечить поддержку устройств в день релиза. Остальные разработчики пока воспринимают Bitcode со смешанными чувствами. Технология кажется удивительной, но в ней еще предстоит разобраться.
Проблема в том, что Apple не предоставляет разработчикам подробной информации о технологии. Несмотря на свое огромное значение, Bitcode был очень осторожно упомянут на WWDC и даже исключен из некоторых сессий (). В приложениях, где используются библиотеки с закрытым исходным кодом (CocoaPods), использование Bitcode нежелательно, поскольку может вызвать ошибки.
Более подробная информация о Bitcode может появиться ближе к выходу iOS 9 и watchOS 2, но странно, что Apple не уделила должного внимания Bitcode на WWDC.
Независимость от процессоров?
Пользователь Medium под ником Inertial Lemon считает, что эти изменения сигнализируют о чем-то большем. Bitcode обязателен в приложениях для Apple Watch, но лишь рекомендован для iOS. Для Apple Watch это означает, что в следующем поколении часов могут использоваться совершенно другие процессоры, но для разработчиков это не будет иметь никакого значения — App Store автоматически подготовит существующие приложения под новые устройства.
Кроме того, Bitcode может означать, что в скором будущем может измениться и архитектура процессоров Mac. Боб Мэнсфилд, которого тихо убрали из высшего исполнительного руководства, чтобы он возглавил “специальные проекты”, является одним из кандидатов для работы над этим. Apple уже производит процессоры для iPhone, поэтому переход Mac на процессоры собственного производства не выглядит таким уж необычным.
Пока Bitcode не поддерживается в приложениях для OS X. Но это только «пока». Человек, представлявший эту технологию на WWDC, работает в команде разработчиков OS X. Такие изменения означают, что Apple может перевести Mac с архитектуры Intel на ARM без адаптации базы существующих приложений. Так Apple может избавится от зависимости от процессоров Intel. Bitcode может сделать Apple более гибкой для радикальных изменений в аппаратной начинке своих устройств. Также в будущем компании не нужно будет уведомлять разработчиков об изменениях, что позволит ей сохранить информацию о новых устройствах в тайне до самой презентации.
В результате, у разработчиков уменьшится объём работы по адаптации приложений при больших обновлениях. Теоретически, им вообще ничего не нужно будет делать, хотя многие подозревают, что процесс перехода будет не настолько прост.
Bitcode должен достигнуть критической массы, прежде чем смена архитектуры станет простым процессом. Но Apple не спешит и дает разработчикам время привыкнуть и подготовиться к грядущим изменениям. [thenextweb]
Источник: