Последние месяцы у меня прямо заметное количество человек в Телеграме стали постить сторисы, хотя раньше эти люди обитали в публичном поле исключительно в Инсте.
Сторисы, конечно, ужасный формат, и их существование — великое горе для человечества. Но вот появление Инстаграм-инфицированных людей в публичном пространстве Телеги это хороший признак — Инста, по-видимому, перестаёт давать нужный отклик аудитории в России. Возможно, ещё не всё потеряно.
Что касается остальных блокировок, то наконец-то родительские чатики, сообщества домов и общение с арендодателями квартиры вылезут из Вотсапа (хотя у меня удалён уже много лет). Природа очистится.
Ну и хочу прокомментировать новый закон из Австралии, где запретили соцсети подросткам до 16 лет. Давайте так: соцсети это современный цифровой алкоголь. Его можно уметь употреблять в меру, абсолютное большинство людей так и делает. А детям мы запрещаем его, потому что более менее сошлись в оценке их способности к самоконтролю и взвешенным ответственным решениям. То есть направление мысли понятно, и оно даже отзывается во мне. Хотя я бы может поставил 14 лет.
Но совершенно непонятно:
1. Как вообще технически реализовать выполнение этого закона, если устанавливать VPN современные дети учатся раньше, чем читать?
2. Что мешает получать всё то же самое из источников, формально не являющихся соцсетями? Например, в групповых чатиках в мессенджерах (в том числе в официальных школьных мессенджерах, допустим).
#web@clockstackwheels
🚀Обновление для WebView с упором на производительность и контроль
Вышла версия 1.15.0 библиотеки AndroidX WebKit (WebView). Главное изменение — повышение minSdk с API 21 до API 23 😁
🎯 Ключевые новые возможности:
⚡️ Ускорение загрузки
👉prerenderUrlAsync() — предварительная загрузка (prerender) страниц для мгновенного открытия.
👉Profile.preconnect()— предварительное установление соединения с origin.
👉Profile.addQuicHints() — подсказка WebView использовать протокол QUIC/HTTP3 для ускорения.
🔧 Больше контроля
👉setHyperlinkContextMenuItems() — кастомизация контекстного меню для ссылок.
👉 setBackForwardCacheSettings() — настройка Back/Forward кэша (таймауты, лимиты).
👉Profile.addCustomHeader() — установка кастомных HTTP-заголовков для запросов.
🔒 Безопасность и отладка
👉 Новый WebViewBuilder API для создания WebView с неизменяемой конфигурацией, что повышает безопасность при использовании addJavascriptInterface.
👉 Улучшенные API для отладки асинхронной инициализации WebView.
👉 Также возвращена отправка заголовка X-Requested-With, а старый API для его исключения помечен как deprecated.
#WebView#AndroidDev#Jetpack
🚀Вышел AndroidX WebKit 1.16.0. Забирай в работу интеграции
👉 minSdk поднят до 24 (Android 7.0) — учитывайте при апгрейде.
👉 Async-старт WebView вышел из experimental. startUpWebView вместе с ProcessGlobalConfig позволяют прогреть WebView в фоне до того как он понадобится UI. Эту штуку давно ждали в стабильной версии — для меня самое ценное обновление этого релиза.
👉 Navigation API тоже стабильный. Больше не надо @OptIn — addNavigationListener даёт колбэки на разных стадиях навигации, ошибку загрузки через Navigation.webResourceError, URL текущей страницы через Page. Главное — теперь FCP и LCP метрики прилетают напрямую из WebView без инъекции JS:
// Перед использованием проверь
// WebViewFeature.isFeatureSupported(WebViewFeature.NAVIGATION_LISTENER)
WebViewCompat.addNavigationListener(webView, object : NavigationListener {
override fun onFirstContentfulPaintMillis(page: Page, millisFromNavStart: Long) {
analytics.report("FCP", millisFromNavStart, page.url)
}
override fun onLargestContentfulPaintMillis(page: Page, millisFromNavStart: Long) {
analytics.report("LCP", millisFromNavStart, page.url)
}
override fun onNavigationCompleted(navigation: Navigation) {
navigation.webResourceError?.let { err ->
Log.w("WV", "load failed: ${err.errorCode}")
}
}
})
На один WebView можно вешать несколько листенеров и прокидывать свой Executor если нужны колбэки в фоновом потоке.
👉WebViewCompat.saveState теперь умеет ограничивать размер state. Если ловили TransactionTooLarge при сохранении состояния — это для вас.
👉 Подвезли addJavaScriptOnEvent для инъекции JS на загрузку документа и инъекцию скриптов в isolated worlds без конфликтов со страницей. Гибридным приложениям пригодится.
👉 [EXPERIMENTAL] BackForwardCacheSettings полностью переписали. Если использовали старый Builder через WebSettingsCompat.setBackForwardCacheSettings — ловите ошибку компиляции при апгрейде. Теперь так:
val settings = WebSettingsCompat.getBackForwardCacheSettings(webView.settings)
settings.setMaxPagesInCache(5)
👉Profile.setSpeculativeLoadingConfig депрекейтнут, замена через Profile.setMaxPrerenders плюс PrefetchCache.setMaxPrefetches и setPrefetchTtlSeconds (тоже experimental).
#Android#Webview#Web#AndroidDev
🤖Как использовать WebView с Edge-to-edge (EN,6м)
Разбор как встроить WebView в интерфейс приложения с поддержкой отображения на весь экран (Edge-to-edge). Рассматриваются варианты когда вы отображаете сторонние сайты и свой web контент, когда вы можете на уровне CSS добавить отступы
🔗Ссылка без VPN
#android#edgetoedge#android16#webview#compose