Site icon AppTractor

Apple TV: мир без WebView

[pullquote align=right]


Даниэль Паско из Black Pixel написал о проблемах Webview в tvOS
[/pullquote]

Новая операционная система Apple TV отличается от iOS9, но больше всего в ней поражает удаление Webview. В индустрии эта функция используется для самого широкого круга задач, самая очевидная из них — показ вебсайта из приложения.

Наш друг, веб-просмотр…

Веб-просмотры есть на всех основных платформах: OS X, iOS, Android, Windows, Linux и т.д. Вообще, большинство основных браузеров, таких как Safari и Chrome, — это приложения, построенные на Webview. Меню и кнопки позволяют вам взаимодействовать с приложением, переходить на разные сайты и т.д., но самое главное в браузере (т.е. показ того, что стоит за сайтом) показывается в главной контентной части приложения — встроенном веб-просмотрщике.

… пропал без вести

WebKit — фреймворк, который Apple использует для того, чтобы дать разработчикам возможность включать веб-просмотр в приложения. UIWebview, класс UIKit, позволяет сделать это просто. Ни того, ни другого нет на tvOS.

Хотя классы для отображения страниц стороннего сайта и присутствуют, нет больше ничего для парсинга контента, построения DOM, рендеринга и стайлинга HTML-кода и выполнения встроенных javascript.

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

Ок, что это значит?

Нет интернет-браузингу

Если кто-то в вашей ленте в твиттере постит ссылку, вы можете на нее кликнуть — приложение создаст Webview, загрузит в нем ссылку и покажет содержимое. Вы быстро просматриваете внешние ссылки, не выходя из приложения. Приложение Facebook использует веб-просмотр для этой же цели. И это практически единственная причина, почему существуют приложения типа NetNewsWire.

Всей этой функциональности здесь нет.

Куча сломанных приложений и много нового кода

Веб-просмотры — изолента мобильного мира. По моим оценкам, от 50 до 80% основных приложений используют внутри себя веб-вью. Приложение Mail от Apple использует веб-вью для ваших емэйлов, потому что веб-версия может очень эффективно стилизовать и рендерить контент. NetNewsWire использует его в больших количествах, и даже в нескольких функциях, которых еще нет в актуальной версии.

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

Перенос некоторых экранов приложения в веб-просмотр позволяет вам немного схитрить. Спортивная компания может выпустить приложения на все платформы, но то, что показывается внутри — это встроенная веб-версия. Или в приложении социальной сети страница регистрации пользователя может также быть веб-версией.

Прощай, OAth (эх). По крайней мере, сейчас.

Или если у вас постоянно меняющийся контент, например, расписание концертов, просто сделайте HTML-файл, который можно обновлять — все сайты будут брать его и показывать, когда пользователь захочет свериться с ним.

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

Для многих компаний отсутствие поддержки веб-вью на tvOS будет болезненным. Им придется переписывать веб-виджеты и просмотры на нативном коде или TVML просто для того, чтобы выйти на Apple TV.

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

Нет веб-приложениям

Я редактирую эту статью в Google Docs, а мои коллеги исправляют мои ошибки и грамматику, и мы обсуждаем все в Slack. Оба этих приложениях и многие продукты Google основаны на вебе, поэтому мы всего этого лишимся (не то чтобы печатать на пульте Apple TV классно, просто выделяю этот класс приложений).

Зачем это нужно Apple?

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

Контроль UX может быть важной причиной. Огромный не-Retina 1080р экран не будет хорошо отображать веб-контент, а мобильный Safari очень зависим от большого количества жестов (щипка, тэпа для зума и т.д.), которые просто недоступны на этой платформе.

Еще одно: многие нативные приложения — просто обертки для веб-контента, которые производят куда более бедные впечатления в сравнении с настоящими нативными приложениями. Этому точно приходит конец, а новые приложения будут лучше вписываться в экосистему Apple. И нативные приложения будут больше соответствовать обновлениям tvOS, чем не связанный с актуальной версией платформы веб-контент.

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

Результат

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

Но индустрии придется попотеть над изменениями, чтобы поддерживать эту платформу.

Компании, которые полагались на универсальный HTML5/CSS/JS пользовательский интерфейс для разных платформ, теперь лишены этой опции. Им придется продумать свою стратегию заново: нужно производить достойные впечатления от бренда и одновременно писать нативные приложения для этих платформ. Я не говорю, что никто не попробует скомпилировать WebKit и создать свой веб-вью для рендеринга HTML. Конечно, есть компании с достаточным количеством ресурсов и людей, чтобы осуществить это. Но я не уверен, что эти приложения пройдут проверку.

Так или иначе, наступил волнующий момент. Я с нетерпением жду того, что будет со всеми нами.

Exit mobile version