Всем привет! Мы — архитектор разработки публичных веб-приложений Борис и разработчик системы-шлюза отправки нотификаций Данила. Расскажем о том, как создавались веб-пуши iOS в Тинькофф, как их настраивали и с какими проблемами столкнулись в процессе разработки.
Safari
Браузер, разработанный корпорацией Apple
Новости
Релизы Safari — это ад для разработчиков
На прошлой неделе выкатили Safari 16.4, и для нас это стало кошмаром. Мы разрабатываем браузерное приложение для создания игр под названием Construct. Ранние версии Safari 16.4 ломали открытие проектов, предпросмотр проектов и весь контент, опубликованный при помощи Construct, каждый раз по-разному. Я захотела поделиться своим опытом, чтобы пользователи, разработчики, регуляторы и сама Apple знали, через что нам пришлось пройти из-за, казалось бы, рутинного релиза Safari.
Разработчики большинства браузеров предоставляют предрелизные версии для предварительного тестирования. Например, ежедневно обновляются Chrome Canary и Firefox Nightly, кроме того, существуют более редкие dev- и beta-релизы. Apple предоставляет Safari Technology Preview (STP), но она совместима только с macOS, и не обновляется по какому-нибудь открыто опубликованному графику. Похоже, это происходит примерно раз в две недели. Предрелизные браузеры обычно довольно шероховаты и содержат очевидные проблемы, которые достаточно быстро устраняют. Однако когда они начинают переходить в состояние беты, необходимо присмотреться повнимательнее. Поэтому когда 16 февраля было заявлено о выпуске Safari 16.4 beta 1 (тоже без какого-либо публичного графика), мы начали присматриваться и обнаружили множество проблем.
Уязвимость Safari 15 может легко раскрыть вашу личность любому веб-сайту
FingerprintJS не использует эту уязвимость в своих продуктах и не предоставляет сервисы межсайтового отслеживания. Мы боремся с мошенничеством и поддерживаем тенденцию полного устранения межсайтового отслеживания.
Мы верим, что уязвимости, подобные этой, должны открыто обсуждаться, чтобы помочь браузерам как можно быстрее устранить их, поэтому отправили баг-репорт мейнтейнерам WebKit, создали демонстрацию уязвимости и открыли репозиторий с её кодом.
Мы должны сказать спасибо KDE за современный веб
Мне всегда нравилась История. История дает понять мотивацию и причины произошедших событий, она срывает покровы, обличая случайные успехи и спланированные крахи. Сегодня я попытаюсь проследить одну ветвь эволюции браузерных движков и показать — насколько велика связь в мире открытых технологий.
Как баг с потерянными днями рождения привёл нас в историю СССР
На корпоративном портале одного нашего заказчика у некоторых пользователей в их профиле неправильно отображалась дата рождения – вместо необходимого дня показывался предыдущий. Наши разработчики выяснили, что причина этой ошибки скрывалась глубоко в истории.
Extended Validation не работает
Как правило, этот процесс работает достаточно хорошо, и ошибочно выпущенных сертификатов немного. Однако проблем хватает с лихвой. EV сертификаты содержат информацию о юридическом лице, стоящем за сертификатом, но не более того. Наименование юридического лица, однако, может быть достаточно вариативным; Например, Джеймс Бертон недавно получил EV сертификат для своей компании «Identity Verified»(англ. Подлинность проверена — прим. перев.). К сожалению, у пользователей просто нет возможности увидеть и разобраться в таких особенностях, и это создает значительный простор для фишинга.
Safari 11 и WebRTC: подводные камни видеозвонков
Новые инструменты Safari для отладки WebRTC
Совсем недавно Apple анонсировала поддержку WebRTC в Safari. Слухи ходили несколько лет, и теперь мы знаем: осенью WebRTC будет доступна для всех основных браузерах: Chrome, Firefox, Safari и Edge. С подводными камнями и несовместимостями. Технология очень крутая и позволяет передавать peer-to-peer между браузерами голос, видео, экран или произвольные данные. Ее использует «Skype for Web», «Hangouts» и другие известные коммуникаторы. А в новой версии Safari кроме самой WebRTC добавилось много плюшек для пользующихся ей разработчиков, о которых я расскажу под катом.
CSS и iOS Safari
Всегда хочется, что бы твой сайт выглядел одинаково хорошо на разных устройствах, включая и мобильные. Но, если поведение в браузерах Android во многом предсказуемо, то с iOS возникает ряд «сюрпризов». О них сегодня и поговорим!
Словарное расширение для браузера: больше, чем онлайн-переводчик
У школы Skyeng есть расширение для веб-браузеров «Vimbox Переводчик», умеющее переводить английские тексты веб-страниц на русский язык. На первый взгляд, ничего особенного в этом нет, а подобных сервисов – пруд пруди, но в реальности эта штука очень важна для экосистемы школы, и мы надеемся, что она окажется полезна не только для наших учеников, но и для сторонних пользователей. Сегодня мы расскажем, почему мы так думаем, как мы разрабатывали это расширение, что оно умеет и над чем работает его команда в настоящий момент.
Почему я как разработчик ненавижу iOS
С позиции разработчика дела обстоят совсем иначе. Работать с iOS (а на самом деле, вообще, с Apple) — всё равно, что пытаться разговаривать с параноидальным роботом, действующим как известный советский пограничник из романа Кафки.
Судя по всему, лучшие времена браузера Safari позади
Стив Джобс называл Safari лучшим браузером на планете. Безусловно, с ним согласны не все. Но в свое время этот браузер смог выйти за пределы экосистемы Apple и был гостеприимно встречен пользователями Windows. Сегодня браузер в почете не только у пользователей настольных компьютеров, но и у владельцев мобильных устройств на базе iOS. Самые популярные браузеры можно пересчитать на пальцах одной руки. Safari входит в их число.
Если бы компания Apple была чуть менее амбициозна (что невозможно было представить при Джобсе) и сговорчива, Safari мог так и не появиться на свет. В начале 2000-х годов в компании решили, что любая зависимость от сильных конкурентов мешает развитию. Таким образом, в 2003 году Apple заняла жесткую и бескомпромиссную позицию по отношению к Microsoft, наотрез отказавшись продлевать свой контракт на использование микрософтовского браузера Internet Explorer для Mac OS X. Компания Джобса в тайне от всех создавала собственный интернет-браузер. Работа велась в атмосфере строжайшей секретности.
Закладка в OS X, продлевающая работу от батарейки для избранных приложений
Зачем 2 GPU?
Ноутбуки с двумя GPU появились уже очень давно. Первый MacBook Pro с такой технологией вышел еще в 2008 году.
Преимущество двух GPU в гибкости. Когда вам не нужна вся мощь видео системы, вы используете встроенное в процессор видео, наслаждаясь долгой работой от батарейки. Однако если вы захотели развлечься, то к вашим услугам мощный дискретный GPU. Да, он ест батарейку и жужжит вентиляторами, но дает хороший FPS в играх. Как же одному приложению переключать GPU?
Ближайшие события
Уведомления на разных платформах, какие они бывают? Бонус на смарт-часах Moto 360
В отличие от многих компаний, которые занимаются уведомлениями, мы пытаемся охватить как можно больше платформ. Поэтому мы имеем самый обширный опыт того какие бывают оповещения их преимущества и недостатки, и мы решили поделиться с вами нашим опытом.
Мы расскажем о том, как выглядят различные типы уведомлений на Chrome, Android, Safari, Firefox, iOS. Какие мы используем, какие можно использовать и не много о том, как оно работает.
Кстати попробовать практически все типы можно на нашем сайте.
Расширение для нормального выделения текста внутри ссылки в браузерах
Для многих проблема решается установкой специального расширения для браузера.
Adobe Flash Player Sandbox Mode доступен для Safari Mac OS X
Вышла бета Safari 6.1
Apple очищает WebKit от наследия Chromium
В течение ближайших недель будут зачищены:
- Нарушения иерархических представлений (layering violations) в WebCore/platform, где Page* или Frame* можно было передать функции
- Supplementable и Supplement
- #if USE(GOOGLEURL)
- #if USE(V8)
- #if !USE(JSC)
- #if PLATFORM(CHROMIUM)
- Skia
- DOMFileSystem
- WebLayer и его реализацию скроллинга
- Функции #defines, которые не пользуются популярностью
Возвращаем старый Web Inspector в Safari 6
Уверен, что я не одинок в своих мучениях с новыми devtools в новом Safari. И когда они в очередной раз меня одолели, я, как человек разумный, обратился за помощью к гуглу.
Гугл предложил мне несколько вариантов избавления от страданий:
- воспользоваться меню Develop > Use WebKit Web Inspector
- штормить поддержку Apple
- использовать WebKit вместо Safari
Первый вариант мне не подошел по причине отсутствия такового пункта меню в имеющихся билдах Safari.
Второй не подошел из-за мaлой вероятности положительного исхода.
Третий не устроил тем, что WebKit конфликтовал с каким-то установленным в Safari расширением и при попытке открыть любую страницу немногим сложнее ya.ru вешался намертво. Разбираться с этим было влом, да и плодить зоопарк из браузеров не очень хотелось (у меня их итак штук семь установлено).
Если вас не смущает WebKit, то можете смело его использовать и дальше не читать.
Веб аудио оффлайн в Safari под iOS 6
Воспроизведение кешированного аудио в оффлайн режиме в Safari под iOS долгое время было настоящим испытанием, которое было признано недостижимой целью. Но с приходом веб аудио API (только в движках WebKit), это наконец-то стало возможным, несмотря на то, что вам все-равно придется сделать несколько шагов.
Плохая новость в том, что вы все равно не сможете кешировать mp3 файлы, используя кеш приложения и просто загружать их используя
XmlHttpRequest
. Safari под iOS 6 будет кешировать mp3 файлы, но потом молча откажется воспроизводить их (очень полезно!)