Разработчики Samsung Internet недавно написали статью о своём видении TWA. Алексей Родионов (@FluorescentHallucinogen), один из самых активных евангелистов PWA в России и основной поставщик новостей в @pwa_ru, поделился инсайдами после общения c PM Samsung Internet (см следующий пост).
Medium
Why You Won’t Hear Us Say TWA
Trusted Web Activities are definitely a thing; Progressive Web Apps are more important
Forwarded from Alexey Rodionov
На днях посчастливилось пообщаться лично вживую с Diego из команды Samsung Internet (https://twitter.com/alexey_rodionov/status/1203767691527503872). ☺️
Обсудили кучу всего интересного, так или иначе связанного с PWA. Сошлись в том числе на том, что TWA как технология — "костыль", который решает сейчас 2 проблемы:
1. Публикация в сторах (люди привыкли искать и устанавливать приложения там, где они привыкли, то есть из сторов). TWA позволяет упаковать PWA в APK-файл и опубликовать его, например, в Google Play.
2. Более глубоко интегрировать PWA в операционную систему Android и использовать возможности, недоступные на данный момент в Web-платформе, а доступные только нативным приложениям. Так как TWA — это APK-файл, то есть нативное Android-приложение, то оно отображается не только в виде иконки на главном экране, но и в списке приложений, оно может выступать в виде Web Share Target и т.д. Так как TWA — это по сути гибридное приложение, можно реализовать нативно, например, Background Geolocation, которого сейчас нет в Web, а всё остальное останется написано на Web-технологиях.
Но то, что делает команда Samsung Internet, делает TWA ненужным:
* Galaxy Store позволяет публиковать PWA "как есть" по URL без необходимости вообще что-то паковать.
* Samsung Internet при установке PWA автоматически генерирует APK-файл, что даёт все вышеперечисленные преимущества более глубокой интеграции в ОС. Только это не TWA, а WebAPK.
* Те фичи, которых сейчас нет в Web-платформе, а есть только у нативных приложений, команда считает правильным добавлять в Web-платформу, чтобы они были реализованы в браузере (браузер как раз и есть нативное приложение).
А TWA — это костыль, временное решение для более глубокой интеграции только в одну единственную операционную систему от Google (а есть и другие ОС) и публикации в сторе от Google (если бы Google Play позволял публиковать PWA по URL, паковать в TWA не пришлось бы).
Samsung Internet на собственном примере показывает, что можно решить эти проблемы по другому. Что PWA — это, действительно, кроссплатформенная открытая технология, а TWA — это Google-only thing.
Обсудили кучу всего интересного, так или иначе связанного с PWA. Сошлись в том числе на том, что TWA как технология — "костыль", который решает сейчас 2 проблемы:
1. Публикация в сторах (люди привыкли искать и устанавливать приложения там, где они привыкли, то есть из сторов). TWA позволяет упаковать PWA в APK-файл и опубликовать его, например, в Google Play.
2. Более глубоко интегрировать PWA в операционную систему Android и использовать возможности, недоступные на данный момент в Web-платформе, а доступные только нативным приложениям. Так как TWA — это APK-файл, то есть нативное Android-приложение, то оно отображается не только в виде иконки на главном экране, но и в списке приложений, оно может выступать в виде Web Share Target и т.д. Так как TWA — это по сути гибридное приложение, можно реализовать нативно, например, Background Geolocation, которого сейчас нет в Web, а всё остальное останется написано на Web-технологиях.
Но то, что делает команда Samsung Internet, делает TWA ненужным:
* Galaxy Store позволяет публиковать PWA "как есть" по URL без необходимости вообще что-то паковать.
* Samsung Internet при установке PWA автоматически генерирует APK-файл, что даёт все вышеперечисленные преимущества более глубокой интеграции в ОС. Только это не TWA, а WebAPK.
* Те фичи, которых сейчас нет в Web-платформе, а есть только у нативных приложений, команда считает правильным добавлять в Web-платформу, чтобы они были реализованы в браузере (браузер как раз и есть нативное приложение).
А TWA — это костыль, временное решение для более глубокой интеграции только в одну единственную операционную систему от Google (а есть и другие ОС) и публикации в сторе от Google (если бы Google Play позволял публиковать PWA по URL, паковать в TWA не пришлось бы).
Samsung Internet на собственном примере показывает, что можно решить эти проблемы по другому. Что PWA — это, действительно, кроссплатформенная открытая технология, а TWA — это Google-only thing.
Вышла новая статья от Акселя Раушмайера, на этот раз про top-level await (stage 3):
https://2ality.com/2019/12/top-level-await.html
https://2ality.com/2019/12/top-level-await.html
Статья о том, какие устаревшие фичи в Chrome были помечены как deprecated или убраны:
https://developers.google.com/web/updates/2019/12/chrome-80-deps-rems
Среди прочего, наконец-то убрали Web Components v0, которые долго не могли убрать (изначально планировалось это сделать в Chrome 73, вышедшем в марте 2019) из-за того, что это ломало YouTube.
Бонус: короткая новость о депрекейте WebVR 1.1, который был поглощён стандартом WebXR.
https://developers.google.com/web/updates/2019/12/chrome-80-deps-rems
Среди прочего, наконец-то убрали Web Components v0, которые долго не могли убрать (изначально планировалось это сделать в Chrome 73, вышедшем в марте 2019) из-за того, что это ломало YouTube.
Бонус: короткая новость о депрекейте WebVR 1.1, который был поглощён стандартом WebXR.
Google Developers
Deprecations and removals in Chrome 80 | Web | Google Developers
A round up of the deprecations and removals in Chrome 80 to help you plan.
Всем привет. Я запустил Patreon, на котором Вы можете поддержать мою работу над каналом @Juliarderity, стандартами и опенсорсом.
https://www.patreon.com/chicoxyzzy
В этом канале не было и не будет никакой коммерческой рекламы, все публикацию всегда были и останутся бесплатными, а вся активность держится на энтузиазме ведущих.
Ещё в самом начале, осенью 2018, когда у канала было не более 400 подписчиков, некоторые читатели выражали поддержку и готовность мотивировать развитие канала и предлагали создать страницу на Patreon. Также многие просили создать чат для обсуждения новостей и технологий, о которых пишет Хулиардерити. Поддерживать такой чат было бы очень сложно, если бы он был публичным, и скорее всего там было бы очень много флуда. Я искренне надеюсь, что Patreon позволит ограничить пользователей чата лишь заинтересованными людьми и поддерживать обсуждения максимально интересными и сфокусированными. Добавление патронов в чат будет происходить волнами.
Если Вам хочется поддержать канал ещё сильнее, а также время от времени получать некоторую дополнительную инсайдерскую информацию и возможно какие-то приятные сюрпризы, то для этого есть отдельный tier Хулиардеро на Patreon.
Также я планирую начать писать статьи, но пока что мне сложно выделить на это время и мотивацию. Ваша поддержка поможет мне увидеть, что это действительно нужно и замотивирует к этому 🙂
Спасибо всем читателям канала, всем кто подходит поблагодарить и пообщаться на митапах, конференциях и на улице (да, и такое было 😄)! Спасибо всем каналам, подкастам и другим ресурсам, которые делятся публикациями из Хулиардерити и не забывают указать источник или поблагодарить!
Вы все супер! ❤️
Помните, что выражение поддержки на Patreon — дело добровольное, и Вы классные независимо от того, поддерживаете ли вы канал материально, информационно или морально!
https://www.patreon.com/chicoxyzzy
В этом канале не было и не будет никакой коммерческой рекламы, все публикацию всегда были и останутся бесплатными, а вся активность держится на энтузиазме ведущих.
Ещё в самом начале, осенью 2018, когда у канала было не более 400 подписчиков, некоторые читатели выражали поддержку и готовность мотивировать развитие канала и предлагали создать страницу на Patreon. Также многие просили создать чат для обсуждения новостей и технологий, о которых пишет Хулиардерити. Поддерживать такой чат было бы очень сложно, если бы он был публичным, и скорее всего там было бы очень много флуда. Я искренне надеюсь, что Patreon позволит ограничить пользователей чата лишь заинтересованными людьми и поддерживать обсуждения максимально интересными и сфокусированными. Добавление патронов в чат будет происходить волнами.
Если Вам хочется поддержать канал ещё сильнее, а также время от времени получать некоторую дополнительную инсайдерскую информацию и возможно какие-то приятные сюрпризы, то для этого есть отдельный tier Хулиардеро на Patreon.
Также я планирую начать писать статьи, но пока что мне сложно выделить на это время и мотивацию. Ваша поддержка поможет мне увидеть, что это действительно нужно и замотивирует к этому 🙂
Спасибо всем читателям канала, всем кто подходит поблагодарить и пообщаться на митапах, конференциях и на улице (да, и такое было 😄)! Спасибо всем каналам, подкастам и другим ресурсам, которые делятся публикациями из Хулиардерити и не забывают указать источник или поблагодарить!
Вы все супер! ❤️
Помните, что выражение поддержки на Patreon — дело добровольное, и Вы классные независимо от того, поддерживаете ли вы канал материально, информационно или морально!
Новое в грядущем Chrome 80 (выйдет 4 февраля 2020):
- Content Indexing API
- ES модули в веб воркерах
- Contact Picker API (под origin trial)
и другие фичи
https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html
- Content Indexing API
- ES модули в веб воркерах
- Contact Picker API (под origin trial)
и другие фичи
https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html
Chromium Blog
Chrome 80, Content Indexing, ES Modules and More
Unless otherwise noted, changes described below apply to the newest Chrome beta channel release for Android, Chrome OS, Linux, macOS, and Wi...
В блоге web.dev вышло сразу много полезных статей (по мотивам Chrome Dev Summit 2019):
- Use web workers to run JavaScript off the browser's main thread
- Indexing your offline-capable pages with the Content Indexing API
- Lighthouse evolution: continuous integration, new performance score formula, and more
- Speed tooling evolutions: highlights from Chrome Developer Summit 2019
- Threading the web with module workers
- Improving page dismisal in synchronous XMLHttpRequest()
- Next-generation web styling
- Adaptive loading: improving web performance on slow devices
- Adaptive icon support in PWAs with maskable icons
- Use web workers to run JavaScript off the browser's main thread
- Indexing your offline-capable pages with the Content Indexing API
- Lighthouse evolution: continuous integration, new performance score formula, and more
- Speed tooling evolutions: highlights from Chrome Developer Summit 2019
- Threading the web with module workers
- Improving page dismisal in synchronous XMLHttpRequest()
- Next-generation web styling
- Adaptive loading: improving web performance on slow devices
- Adaptive icon support in PWAs with maskable icons
Axel Rauschmayer написал несколько новых статей о различных предложениях в ECMAScript:
- ECMAScript proposal: Promise.any()
- ECMAScript proposal: String.prototype.replaceAll
- ECMAScript proposal: RegExp match indices
- Feature watch: ECMAScript 2020
- ECMAScript proposal: Promise.any()
- ECMAScript proposal: String.prototype.replaceAll
- ECMAScript proposal: RegExp match indices
- Feature watch: ECMAScript 2020
Вышла статья о главных изменениях в Safari 13 (вышедшей 19 сентября 2019) для Catalina, iPadOS, iOS 13 и watchOS 6. Эта версия включает все изменения, вошедшие в Safari Technology Preview с 77 по 89 версии.
WebKit
New WebKit Features in Safari 13
This year’s releases of Safari 13 for macOS Catalina, iPadOS, iOS 13, and watchOS 6 include a tremendous number of WebKit improvements for the web across Apple’s platforms.
Команда V8 собирается включить бейслайн компилятор Liftoff на мобильных устройствах. Этот компилятор #WebAssembly уже включен по умолчанию на десктопах, начиная с версии 6.9. Liftoff имеет поддержку arm и arm64, но в данный момент поддержка мобильных платформ не используется. Включение необходимо для запланированного использования Liftoff в отладочних целях.
Google Docs
Inspectable Liftoff
Inspectable Liftoff Attention - this doc is public and shared with the world! Contact: Clemens Backes <[email protected]> Contributors: Clemens Backes Last Updated: 2020-01-09 Status: Inception | Draft | Accepted | Done LGTMs needed Abstract Objective…
Опубликованы планы на WebStorm 2020.1:
- продолжение оптимизации времени запуска
- оптимизации индексации
- установка и обновление плагинов без перезагрузки IDE
- использование машинного обучения для автодополнения JavaScript и TypeScript
- поддержка новых фич JavaScript, TypeScript, а также улучшения поддержки React, Redux, Vuex и документации React и Angular.
- улучшенниая поддержка ESLint и Prettier
- существующую подсветку предупреждений проревьюят чтобы убрать нерелевантные предупреждения
- некоторую встроенную и редко используемую функциональность вынесут в плагины
- продолжение оптимизации времени запуска
- оптимизации индексации
- установка и обновление плагинов без перезагрузки IDE
- использование машинного обучения для автодополнения JavaScript и TypeScript
- поддержка новых фич JavaScript, TypeScript, а также улучшения поддержки React, Redux, Vuex и документации React и Angular.
- улучшенниая поддержка ESLint и Prettier
- существующую подсветку предупреждений проревьюят чтобы убрать нерелевантные предупреждения
- некоторую встроенную и редко используемую функциональность вынесут в плагины
Все видео с декабрьского митапа #WebAssembly SF
https://youtube.com/playlist?list=PLqh1Mztq_-N08lDdlzbrX3tVyVmZi_hSk
https://youtube.com/playlist?list=PLqh1Mztq_-N08lDdlzbrX3tVyVmZi_hSk
YouTube
December 2019 - YouTube
Новая коротенькая статья от Axel Rauschmayer — Simple pluralization via Intl.PluralRules.
И ещё одна статья от Axel Rauschmayer — JavaScript regular expressions: .lastIndex and the flags /g and /y. С примерами, волчьими ямами и достаточно подробно.
План по изменениям поддержки разделяемой памяти в различных стандартах на MDN:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/Planned_changes
Изменения затрагивают спецификации HTML, Fetch и WebAssembly JS API.
Спасибо @maxgraey за подсказанную ссылку.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/Planned_changes
Изменения затрагивают спецификации HTML, Fetch и WebAssembly JS API.
Спасибо @maxgraey за подсказанную ссылку.
MDN Web Docs
SharedArrayBuffer - JavaScript | MDN
The SharedArrayBuffer object is used to represent a generic raw binary data buffer, similar to the ArrayBuffer object, but in a way that they can be used to create views on shared memory. A SharedArrayBuffer is not a Transferable Object, unlike an ArrayBuffer…
Ну и ещё немного про SAB в Firefox. Планируется включить поддержку SharedArrayBuffer по умолчанию в Firefox Beta 74 (то есть необходимую проверку в коде планируют добавить в Firefox Nightly 74). В Firefox 75 планируется включить SAB в релизной версии, но без поддержки COOP/COEP, а значит
postMessage() будет пока ещё недоступен в Firefox 75.С 1 января у Node.js 8 LTS закончилась стадия поддержки. Текущими активными версиями LTS являются 10 и 12.
https://github.com/nodejs/Release#release-schedule
https://github.com/nodejs/Release#release-schedule
GitHub
GitHub - nodejs/Release: Node.js Release Working Group
Node.js Release Working Group. Contribute to nodejs/Release development by creating an account on GitHub.
Только что были опубликованы записи с декабрьской встречи #TC39.
https://github.com/tc39/notes/tree/master/meetings/2019-12
https://github.com/tc39/notes/tree/master/meetings/2019-12
GitHub
tc39/notes
TC39 meeting notes. Contribute to tc39/notes development by creating an account on GitHub.
Фича --experimental-resolve-self, добавленная в Node.js 13.1.0 больше не является экспериментальной, и, вероятнее всего, появится в следующей версии Node.js (13.6.0). Эта фича избавляет от необходимости использовать префиксы вида
‘../../dir/file.js’ в импортах и позволяет указывать вместо этого путь относительно самого пакета. Поддерживаются оба варианта — ESM и CommonJS.GitHub
module: unflag resolve self · nodejs/node@c7f328f
PR-URL: https://github.com/nodejs/node/pull/31002
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Rich Tro...
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Rich Tro...
В TypeScript влили PR Type-only imports and exports, который добавляет Flow-подобный синтаксис для этой задачи и решает многие проблемы различных тулчейнов.
GitHub
Type-only imports and exports by andrewbranch · Pull Request #35200 · microsoft/TypeScript
TL;DR:
import type { A } from './mod', export type { A } from './mod'
Add flag to stop eliding import declarations from emit
To do:
parsing
checking: default import
checking: ...
import type { A } from './mod', export type { A } from './mod'
Add flag to stop eliding import declarations from emit
To do:
parsing
checking: default import
checking: ...