Крутой онлайн-конструктор стеллажей с возможностью заказа.
Поскольку я гик, то люблю всё точное и технологичное, не люблю лишний раз взаимодействовать с людьми, а еще у меня есть страсть организовывать вещи. Нередко это боль: купишь стеллаж в какой-нибудь Икее или Леруа, и всё равно часть предметов слишком большие или слишком маленькие для ячеек, а сам стеллаж либо не влезает в нужное место комнаты, либо оставляет слишком много свободного места.
И вот прочитал на VC статью о пермском производстве мебели "Привет Макет", которое сделало онлайн-конструктор и автоматизировало распил и сверление нетиповой продукции. Сразу полез смотреть.
Оказалось ровно то, что мне нужно. Супер крутой 3D-конструктор в браузере, где реально можно составить практически что хочешь конкретно по своим размерам и под свои нужды. Сразу отображает цену в реальном времени. Дальше жмешь заказ, на стороне производства создаются нужные задачи под ЧПУ-машины, которые после подтверждения запускают в работу. Доставка из Перми Деловыми Линиями.
Отдельный респект за то, как всё упаковано. На всех коробках номера или другие поясняющие записи, весь крепеж аккуратненько разложен по пакетикам, для одинакового вида крепежа есть уточнения по области применения. Ещё в комплекте чертежи и обозначения каждой детали, чтобы не запутаться.
В общем, получил от сборки много удовольствия — такое лего для взрослых, ещё и сделанное по твоим запросам. Скоро покажу вам, что в итоге получилось после размещения вещей. Правый стеллаж под настолки, левый под электронику и другие бытовые штуки.
P.S. За этот пост мне никто не платил, делюсь личными впечатлениями и крайне поддерживаю все подобные начинания, как у этой фабрики.
#life#окр
🚀Обновление для 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