Бета Яндекс.Браузера для iOS перешла на WKWebView

Бета-версия Яндекс.Браузера 15.4 для iOS перешла на использование нового системного компонента WKWebView. Зачем это надо, какие возникают при этом сложности, и как обстоят дела у Google Chrome с этим переходом - читайте ниже.

Яндекс.Браузер и WKWebView

Думаю, каждый продвинутый пользователь мобильной техники Apple знает, что на в операционной системе iOS невозможно использовать собственный браузерный движок. Именно поэтому Chrome, Opera и Яндекс.Браузер для айфонов и айпадов всегда использовали стандартный системный компонент UIWebView для отрисовки веб-контента. Работает он вполне сносно, но не более того. В то время как родной Safari был всегда на шаг впереди и имел эксклюзивный доступ к полноценному javascript-движку Nitro.

В прошлом году в iOS 8 появился новый компонент WKWebView, который не хвалил разве что только ленивый. Новый компонент отличается высокой производительностью (в сети можно найти сравнения в скорости рендеринга WebGL и прочие тесты), стабильностью, плавной прокруткой в 60fps, доступом к JS-движку и поддержкой дополнительных HTML5-фишек (например, IndexedDB).

Ну так вот. Текущая бета-версия Яндекс.Браузера для iOS базируется уже не на UIWebView, а на WKWebView. Скриншот с html5test.com сделан как раз из этой сборки. Браузеры, основанные на старом компонента набирают в нем 387 баллов (из-за отсутствия поддержки IndexedDB). Тест этот проверяет лишь степень поддержки HTML5. Для проверки производительности JS мы воспользовались бенчмарком SunSpider 1.0.2. Новый WKWebView оказался более чем в 3 раза (!) быстрее старого. Проверять другие аспекты уже не стали - поверим на слово обзорщикам и разработчикам.

Из всех крупных браузеров это пока единственный пример перехода. Все что мы нашли про другие браузеры - это вот этот таск, в котором идет обсуждение возможного перехода Google Chrome. Открыт он в октябре прошлого года, но решения пока нет. Основной проблемой, согласно таску, являются технологические ограничения нового компонента. Например, отсутствие поддержки cookies management API и protocol handlers. И до решения проблем с технологиями вряд ли стоит ожидать перехода.

Кстати, бета Яндекс.Браузера для iOS распространяется не так удобно, как привыкли, например, пользователи Android, из-за ограничений Apple. Напомним, что по их правилам запрещена публикация бета-версий в App Store. Поэтому бета распространяется через сервис TestFlight по подписке. Ссылку можно найти на yabrowser.com/download.

Здесь есть хоть один пользователь iOS? Не зря мы все это писали?