Swift существует, чтобы упрощать создание софта для устройств Apple. Тем удивительнее, что до сих пор iOS и другие «яблочные» операционные системы не имели библиотек Swift в своем составе. Стандартные функции языка разработчику приходилось включать в приложение. Пользователь дольше скачивал программу и тратил на нее больше дискового пространства. Написанная на Swift 3 программа не работала с откомпилированными модулями Swift 4. Это называют отсутствием обратной совместимости. Мелочь, а неприятно.
Стандартные библиотеки Swift не были «родными» для ОС — она воспринимала их как файлы пользователя и не спешила подгружать при запуске программ. Это влияло на скорость загрузки софта. Загрузка динамических библиотек Swift занимала 95 % времени от запуска приложения до начала выполнения кода.
В новой версии языка Apple устранила недочеты, чтобы разработчикам было проще оптимизировать приложения.
Swift 5 обеспечивает бинарную совместимость. Это значит, что написанные на нем программы смогут без перекомпиляции работать с будущими версиями языка и в последующих релизах ОС от Apple. Кроме того, больше не нужно включать в программу стандартные функции Swift — они будут храниться в системе.
Сейчас ждут релиза свежие версии систем для мобильных устройств, телевизоров и часов: iOS 12.2, macOS 10.14.4, tvOS 12.2 и watchOS 5.2 — пока они на стадии бета-версий. Когда они выйдут, пользователи откроют App Store и обнаружат, что написанные на Swift 5 приложения весят меньше. А еще программы начнут быстрее запускаться, потому что библиотеки в составе ОС будут кешироваться в памяти, чтобы приложения обращались к ним мгновенно.
Apple обещает, что старые проблемы исчезнут в одночасье — по одному обновлению!
Будут улучшения ощутимы или это реклама?
Чтобы внести ясность, вы можете скачать из App Store интересные вам приложения и посмотреть, сколько весят Swift-библиотеки к ним. Бразильский разработчик Гильерме Рамбо так и сделал. Вот какие результаты он получил:
- Twitter-клиент Chirp для Apple Watch весит 29 Мб, из которых 11,6 Мб — стандартные библиотеки Swift. После обновления до Swift 5 размер приложения уменьшится на 30 %, то есть оно будет весить менее 20 Мб. Результат впечатляющий, но он относится к библиотекам для watchOS. Как дела в iOS? Следующие приложения проходили проверку на iPhone XS Max.
- Инженерный калькулятор PСalc при весе 86,8 Мб включает 7,5 Мб стандартных библиотек. С переходом на Swift 5 размер приложения уменьшится на 9 % — до 80 Мб.
- Apollo for Reddit занимает 35,7 Мб, в том числе 7,5 Мб Swift-библиотек. Значит, в iOS 12.2 вес приложения не превысит 30 Мб, то есть сократится примерно на 20 %.
Точный объем дискового пространства, который можно будет сэкономить с переходом на пятый Swift, зависит от устройства.
Для разработчиков лучшая часть новости в том, что миграция проектов с Swift 4.2 будет простой.
Код, который компилировался на «четверке», скомпилируется и в Swift 5. А вот исходники на более ранней, третьей версии языка, новому компилятору не скормить. Еще учтите, что уже скомпилированные модули Swift 4 «прикрутить» к новым программам не удастся.
Сколько ждать изменений
Те, кто пользуются бета-версиями «яблочных» операционок и ставят софт через TestFlight, могут оценить разницу в весе приложений на Swift 5 уже сейчас! Остальным придется запастись терпением: дождаться свежей релизной версии своей ОС, а потом — обновления любимых приложений, написанных на Swift 4.
Зато с переводом собственных приложений на «пятерку» можно не откладывать. Когда пользователи ваших программ смогут оценить плюсы, о которых мы говорили выше, — зависит от вас. Не бросайте свои разработки — поддерживайте их и используйте новые возможности и преимущества, которые дает язык. Тем более что перейти на Swift 5 можно без существенной правки кода.
Пройти обучение
Комментарии