👋🏻 Durov "USERNAME"lar haqida!
"Yaqin vaqtgacha Telegram’dagi barcha foydalanuvchi nomlarining 70 foizi Erondan kelgan kibersquatterlar tomonidan faol bo‘lmagan kanallarda saqlangan. Bu qidiruv natijalarini chalkashtirib yuboradigan o'lik foydalanuvchi nomlari qabristonini yaratdi va millionlab Telegram foydalanuvchilariga o'z akkauntlari, guruhlari va kanallari uchun tegishli umumiy manzillarni tanlashiga to'sqinlik qildi.
Ushbu zaxiralangan foydalanuvchi nomlarini olishni istagan foydalanuvchilar ko'pincha hech qanday javob olmagan yoki aldanib qolishgan.
Yaxshiyamki, bu vaziyat o'zgara boshladi. Avgust oyi oʻrtalarida biz oʻtgan yil davomida boʻsh yoki faol boʻlmagan kanallarga bogʻlangan barcha ochiq Telegram manzillarini olib tashladik. Biz bu manzillarning 99 foizini asta-sekin qaytadan umumiy foydalanishga kiritamiz, bu safar algoritmik va geolokatsiya cheklovlari bilan faqat bir nechta foydalanuvchilar emas, balki ko‘proq foydalanuvchilar foyda ko‘rishi mumkin.
Eng yuqori baholangan qisqa foydalanuvchi nomlariga kelsak, ularni tarqatishning eng samarali va adolatli usuli men avvalgi postimda aytib o'tgan auktsion bo'lib tuyuladi. Shunday qilib, ushbu jozibali havolalarni qo'lga kiritganlar ularni yaxshi foydalanishga va taniqli t.me manzillarida joylashtirilgan original kontent bilan foydalanuvchilarimiz uchun qadrlashga undaydi.
Telegram foydalanuvchi nomlarini yig‘ib olganlar hafsalasi pir bo‘lganiga shubha qilmayman, lekin bu o‘zgarish foydalanuvchilarning katta qismiga foyda keltiradi. Men millionlab ajoyib Telegram manzillari qanday qayta tiklanishini va nihoyat bizning hamjamiyatimizga xizmat qila boshlashini intiqlik bilan kutaman.
P.S. Kelgusi voqealarni kutgan holda, bugun biz Telegramdagi har bir foydalanuvchi nomi uchun sindor.t.me kabi maxsus havolalarni qo'llab-quvvatlashni boshlaymiz. Ushbu veb-saytlar allaqachon istalgan brauzerda ishlaydi." - Pavel Durov
#username#yangilik#hulosa
💚@TGraphUz | YouTube
🚀Обновление для 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