Сторонние iOS-приложения давно позволяли открывать ссылки без перехода в браузер. Встроенным мини-браузерам далеко по скорости и удобству до Safari, они имеют определенные проблемы безопасности, но, несмотря на это, стали стандартом де-факто в сторонних приложениях. С iOS 9 все изменится. Еще на WWDC Apple представила Safari View Controller — программный компонент, позволяющий разработчикам интегрировать в свои приложения полноценный Safari. Шеф-редактор Mac Stories Федерико Витичи пообщался с создателями различных iOS-приложений и узнал, что они думают по этому поводу.
Web View
Apple известна своей приверженностью к обеспечению безопасности пользовательских данных, поэтому взаимоотношения приложений и веба в iOS всегда были сложными. Изначально, когда в 2008 году появился App Store, а iOS называлась iPhone OS, разработчики могли отображать веб-контент в своих приложениях. Это делалось с помощью API UIWebView и было весьма примитивно. Из-за ограничений и невозможности использовать пользовательские данные из Safari разработчикам приходилось создавать свои собственные мини-браузеры. Они оснащали их минимально необходимой функциональностью, чтобы удовлетворить потребности пользователей.
В 2011 году, с выходом iOS 4.3, Apple представила JavaScript-движок Nitro, который значительно увеличил производительность Safari и скорость открытия сложных страниц. Nitro был доступен эксклюзивно для Safari, поэтому сторонние браузеры остались за бортом. Впрочем, это было логично, поскольку новый движок мог работать со страницами и исполняемыми файлами, загруженными в оперативную память, а для сторонних приложений эта возможность была недоступна из соображений безопасности.
Мучения разработчиков — и, что более важно, пользователей — длились вплоть до 2014 года, пока Apple не представила новый API WKWebView, немного уравнявший счет. WKWebView позволял встроенным браузерам использовать все преимущества Nitro, включая плавную прокрутку и жесты.
Новый API был действительно значимым нововведением, и тысячи разработчиков сразу же обновили свои приложения, чтобы воспользоваться всеми его преимуществами. В iOS 8 огромное количество приложений использует WKWebView для обеспечения лучшего пользовательского опыта.
Однако несмотря на улучшения, встроенным браузерам очень далеко до той функциональности, которую Apple создала в Safari за многие годы. Из-за ограничений безопасности одной из главных проблем является отсутствие поддержки «Связки ключей iCloud» и, как следствие, автозаполнения паролей и других данных. Пользователям приходится переключаться в Safari, а это жутко неудобно.
Инди-разработчик из Homegrown Software Алекс Прайс, однако, указывает на преимущества перенаправления из приложений в Safari. По его мнению, различный интерфейс сторонних браузеров и отсутствие в некоторых из них отображения URL посещаемой страницы может стать проблемой фишинга пользовательских данных.
Ортвин Генц из FutureTap обращает внимание на другие недостатки интерфейса: не во всех встроенных браузерах есть хороший индикатор загрузки и безопасного соединения. Разработчик Tumblr Брайан Ирэс подтверждает общее мнение, что мини-браузеры в приложениях — это всегда компромисс. С одной стороны, пользователям удобно открывать ссылки не покидая приложения, но с другой — они жертвуют отсутствием cookies и подвергают себя опасности, вводя личную информацию на страницах, отображением которых управляют третьи лица.
Safari View Controller
С iOS 9 Apple представила Safari View Controller, который избавит разработчиков от необходимости писать собственные мини-браузеры, а позволит использовать для отображения веб-контента Safari.
Safari View Controller очень похож на Safari: при открытии ссылки в приложении пользователь увидит страницу Safari со знакомым интерфейсом. Есть лишь два визуальных различия: серый цвет адресной строки (указывающий на режим «только чтение») и характерная иконка Safari на нижней панели, чтобы в случае необходимости переключиться на полноценную версию браузера.
С помощью Safari View Controller Apple облегчает жизнь разработчикам, экономя их время, но в то же время не прекращает заботиться о безопасности пользователей. Все дело в том, что открытие страниц происходит в отдельном процессе, не связанном с приложением, поэтому последнее не видит URL и перемещений по сайтам.
Это не только обеспечивает сохранность пользовательских данных, которые всегда находятся в Safari и не передаются в сторонние приложения, но и позволяет Safari View Controller использовать другие преимущества, например cookies. То есть если вы залогинились на каком-нибудь сайте в Safari, то при его открытии в стороннем приложении через Safari View Controller вам не нужно будет вводить пароль.
Но и это еще не все. Apple сделала возможным использование «Связки ключей iCloud», заполнение данных контакта и кредитных карт, а также добавила режим чтения Safari и расширение «Поделиться». Safari View Controller определяет попытки фишинга и отображает различные ошибки веб-страниц, а также поддерживает функцию блокировки нежелательного контента, которая будет работать в Safari на iOS 9.
Положительные стороны нововведения
По мнению Брайана Ирэса, Safari View Controller быстро станет стандартом для просмотра веб-контента в сторонних приложениях и пользователи будут отдавать предпочтение именно таким продуктам. «Не вижу причин для большинства разработчиков отказываться от внедрения Safari View Controller, — говорит он. — В будущем приложения со встроенными браузерами будут выглядеть архаичными».
Ведущий разработчик Instapaper Брайан Донахью уже заменил встроенный браузер Instapaper на Safari View Controller. Мини-браузер позволял пользователям просматривать полные версии статей в приложении, но он имел много ограничений. Теперь с Safari View Controller Instapaper может предложить пользователям «родную» функциональность Safari. «А это не может не радовать», — отмечает Донахью.
Для Андерса Борума, разработчика iOS-клиента для Git Working Copy, ключевым преимуществом Safari View Controller является возможность использовать «Связку ключей iCloud» и не переключаться в Safari, проводя все операции в приложении. Как и многие другие сторонние приложения, Working Copy требует авторизации пользователей на сервисах, пароль от которых сохранен в iCloud и вводится через автозаполнение. Один только этот факт уже является веской причиной для внедрения Safari View Controller, считает Борум.
Его полностью поддерживает Джефф Хэкуорт, создатель Easy Shopping List и нескольких других iOS-приложений. «Safari View Controller стоит использовать даже для самых простых нужд», — говорит он. Пользователям будет знаком интерфейс, опции шаринга, а также доступны удобные фишки вроде автоскрытия панелей инструментов и навигации.
Их мнение разделяют и другие опытные разработчики, аргументируя его тем, что с Safari View Controller они легко получат то, к чему всегда стремились — пользователи смогут просматривать веб-контент, не покидая их приложений. Единственная причина, по которой люди переходят в Safari для просмотра тех или иных ссылок, — это ограничения и неудобство встроенных в сторонние приложения браузеров. Теперь это останется в прошлом, с Safari View Controller будут «и волки сыты, и овцы целы».
«Подводные камни»
Один из обсуждаемых разработчиками вопросов звучит так: стоит ли жертвовать отлаженными за многие годы решениями и переходить на новый Safari View Controller? Другими словами, что выбрать: текущую бесшовность или гибкость с поддержкой системных функций?
Создатель GiftPlanner Эндрю Милхэм беспокоится, что Safari View Controller никогда не будет выглядеть «абсолютно интегрированным» из-за отсутствия глубокого интерфейса и кастомизации, что сделает его восприятие в приложении чужеродным. Например, в браузере GiftPlanner есть встроенные жесты, которые будут недоступны в Safari View Controller. И все же, по словам Милхэма, новое решение имеет гораздо больше преимуществ, чем недостатков.
Ожидается, что с выходом iOS 9 разработчики известных приложений не станут переходить на Safari View Controller, а будут продолжать использовать свои встроенные браузеры для отображения веб-контента. По сути, в мини-браузерах большинства приложений есть те же функции, что и в Safari View Controller: кнопки навигации, адресная строка, возможность шаринга.
Логично задать вопрос, нужна ли возможность обмена с другими приложениями крупным компаниям со своими экосистемами. Яркий пример — Facebook* и Twitter. Два самых популярных бесплатных приложения в App Store не используют расширения обмена для iOS 8. Почему? Ответ прост: им невыгодно, чтобы пользователи делились контентом или сохраняли его в других местах, за пределами собственных экосистем. По этим причинам такие компании, как Google, Facebook* и Twitter, не станут спешить с интеграцией Safari View Controller, тем самым замедляя его повсеместное внедрение.
С Safari View Controller в Twitter на iOS пользователи смогут сохранять ссылки в любых сервисах, а у Facebook* не будет возможности отслеживать страницы, на которые переходят пользователи. То же самое касается Gmail — Google не сможет анализировать исходящий из почтового приложения трафик. И это лишь несколько примеров. Для компаний, зависящих от сбора и анализа пользовательских данных, Safari View Controller не сулит ничего хорошего.
Однако у нового программного компонента Apple есть еще одна проблема: как пользователи смогут знать наверняка, что они находятся в безопасной среде? Safari View Controller внешне похож на Safari, но он не является его частью. Придав интерфейсу встроенных браузеров визуальное сходство с Safari View Controller, недобросовестные разработчики смогут получить доступ к паролям и другим важным данным из «Связки ключей iCloud». Даже технически подкованные пользователи не смогут определить подлинность Safari View Controller.
И последняя ложка дегтя. Приложения со специфическими функциями также вряд ли откажутся от собственных браузеров в пользу Safari View Controller. К таким приложениям относятся, например, менеджеры загрузок. Возможность загрузки файлов реализована разработчиками в их мини-браузерах, но точно не будет работать в Safari View Controller.
Новый Web View
Разработчики большинства сторонних приложений не получают от создания собственных браузеров ни удовольствия, ни выгоды. Как и любая функция в приложении, оно отнимает время и ресурсы на разработку, поэтому Safari View Controller позволит им сбросить этот груз со своих плеч и сосредоточиться на других функциях приложений и их улучшении.
Safari View Controller — это редкая возможность для разработчиков легко предоставить пользователям лучший и более безопасный пользовательский опыт.
Готовность Apple защитить конфиденциальные данные пользователей — это основная черта Safari View Controller. Он объединяет в себе лучшие аспекты Safari, которые всегда останутся недостижимыми для сторонних браузеров: единый пользовательский опыт, скорость, безопасность и полнофункциональность.
«Быстрый и безопасный браузер внутри приложения одинаково важен и для разработчиков, и для пользователей», — резюмирует Алекс Прайс. Ближе к концу года мы, вероятно, увидим повсеместное распространение и принятие Safari View Controller в большинстве сторонних приложений.
*Деятельность Meta Platforms Inc. и принадлежащих ей социальных сетей Facebook и Instagram запрещена на территории РФ.