Как Apple убивает веб технологии

в 5:03, , рубрики: edisonsoftware, electron, Блог компании Edison, Разработка веб-сайтов, разработка мобильных приложений
image

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

Языки программирования, используемые для создания веб-сайтов, также часто находят применение в приложениях. Во многом это связано с программным обеспечением, которое позволяет разработчикам «повторно использовать» код, который они пишут для веба, в продуктах, которые они создают для операционных систем, таких как Linux, Android, Windows и macOS.

Но у Apple есть причина не любить переиспользование веб-технологий. Она хочет, чтобы App Store был заполнен приложениями, которые вы не найдете больше нигде, а не приложениями, доступными на каждой платформе. С недавним изменением политики, компания немного усложнила для разработчиков опубликование приложений, содержащих веб-код.

EDISON Software - web-development
Статья подготовлена при поддержке компании EDISON Software, которая разрабатывает электронную систему медицинского осмотра, а также занимается поддержкой программного обеспечения.

App Store незаметно начал отклонять приложения, созданные с помощью популярного инструмента под названием Electron, который позволяет разработчикам основывать все свои приложения на веб-коде. Некоторые из самых популярных приложений в App Store, такие как Slack, Spotify, Discord и WhatsApp, попадают в эту категорию.

В дискуссии на Github, некоторые разработчики говорят, что для их приложений, созданных с использованием Electron — которые были одобрены в прошлом — пришли отказы с объяснением, что эти приложения «пытаются скрыть использование приватных API», которые являются API-интерфейсами, созданными для внутреннего использования Apple, а не для сторонних разработчиков. Использование приватных API для создания общедоступных приложений обычно не одобряется, потому что они могут изменяться или ломаться со временем, и Apple запрещает приложения, которые их используют.

Electron использовал приватные API годами и делал это без проблем. Эти приватные API-интерфейсы позволяют разработчикам, например, значительно улучшить энергопотребление, в то время как санкционированные инструменты Apple ухудшают пользовательский опыт. В большинстве этих случаев Apple не предоставляет реальных альтернатив разработчикам, которые хотят получить доступ к этим приватным функциям API.

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

Разработчики могут распространять свои приложения со своих веб-сайтов, предлагая пользователям загружать их напрямую. Но это означает отказ от таких функций, как механизм автоматического обновления в App Store и синхронизации iCloud. И этот метод прямого доступа к покупателю может вскоре быть заблокирован, поскольку спорные требования Apple к нотариальному заверению могут потребовать их пересмотра.

У Apple есть история задержки прогресса веб-технологий на ее платформах. В iOS Apple не позволяет полностью независимые сторонние браузеры, требуя от всех приложений использовать свой браузер Safari при рендеринге веб-контента. Хотя браузеры, такие как Chrome и Opera, доступны в App Store, они должны использовать механизм браузера Safari для рендеринга веб-страниц, а не свои собственные. Это означает, что у Apple есть монополия на то как пользователи iPhone и iPad получат доступ к вебу. Чтобы подтолкнуть разработчиков к созданию нативных приложений для iOS, а не к использованию веб-технологий, Apple игнорирует популярные части open web спецификаций, которые реализуют другие браузеры, в свою пользу.

Тонкие антиконкурентные практики Apple не выглядят ужасно изолированно, но вместе они образуют четкую стратегию.

Например, технология WebRTC позволяет осуществлять видеовызов в веб-браузере без дополнительного программного обеспечения. Она работает в таких инструментах, как Google Meet. Но Apple невероятно медленно внедряла спецификацию, оставляя без внимания ключевые функциональные возможности, и эта технология не работала, когда встраивалась в приложения.

Apple также помешала появившемуся стандарту под названием Progressive Web Apps (PWA), которая, как и Electron, позволяет разработчикам создавать приложения как для настольных, так и для мобильных устройств — внедряя его таким образом, что он был слишком непоследователен, чтобы на него можно было положиться. У PWA нет такой же проблемы, если пользователи открывают приложения в Chrome или Firefox, но пользователи iPhone и iPad не могут устанавливать сторонние браузеры, что делает технологию на основе PWA обреченной на провал.

Разработчики используют такие технологии, как Electron и PWA, потому что они обеспечивают более быстрое обновление на разных платформах без множества разных кодовых баз. Некоторые утверждают, что это приводит к низкокачественным приложениям, но я бы сказал, что альтернативой является отсутствие приложений вообще или приложений, которые редко обновляются, потому что обслуживание уникальных Windows, Mac и веб-продуктов сложно и дорого. Apple недавно выпустила конкурирующий фреймворк под названием Catalyst, который позволяет разработчикам приложений для iPad быстро выводить их на macOS — отличный инструмент для разработчиков, ориентированных исключительно на пользователей Apple, но не на тех, кто создает кроссплатформенные приложения.

Тонкие антиконкурентные методы Apple не выглядят ужасно изолированно, но вместе они образуют четкую стратегию: сделать настолько болезненным создание приложений на основе веб-технологий на платформах Apple, что разработчики не будут думать об этом. Теперь, когда App Store не принимает приложения, созданные с использованием Electron, разработчики, вероятно, найдут креативные способы обойти это, но Apple настроена на постоянную игру в кошки-мышки, поскольку она планирует установить больший контроль над тем, какие приложения могут работать на платформе в будущем.

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

Контроль Apple над своей экосистемой приложений — это новый тип монополии, который трудно понять законодателям, и с которым нам трудно бороться — потому что просто нет выхода из этих ограничений, когда компания контролирует как метод распространения, так и саму платформу.

Автор: rishat_edison

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js