Стоило обрадоваться, что в новом дизайне ВК видеозаписи поставили на видное место в верху страницы, а я как раз стал частенько видосы с дрона заливать.
И вот теперь этот раздел убрали вниз, а в шапке оставили буквально худшие четыре раздела, которые наименьшим образом подходят для презентации страницы.
Фото — никто давно не юзает ВК как фотоблог, и сюда будут попадать картинки, которыми иллюстрируют посты (вот как у меня), и которые без поясняющего текста просто рандомный мусор.
Клипы — не должны были существовать изначально ни в каком виде. Но вообще, речь о дизайне страницы для десктопов, на которых вертикальное видео смотрят только очень странные люди.
Музыка — актуально только если вы автор и исполнитель песен, презентуете свою страницу своими же треками. Потому что презентовать её просто чужой музыкой, которую вы любите — полная фигня, и никому не нужно.
Статьи — единственное, что хоть как-то оправдано в этом месте, но формат для ВК настолько мёртвый, его считайте нет. Даже профильные паблики, как я вижу, перешли с редактора статей на тупо ссылки на свои внешние сайты. Вероятно, потеря в охватах одинаковая что для ссылок, что для статей (на которые никто не нажимает), но сайт проще монетизировать.
#web
🚀 Вышел стабильный JavaScript движок от Google для Android
Новая стабильная библиотека Jetpack JavaScript Engine позволит разработчикам выполнять JS код в изолированной и ограниченной среде.
class MainActivity : ComponentActivity() {
// Теперь nullable, без lateinit
private var jsSandbox: JavaScriptSandbox? = null
private var jsIsolate: JavaScriptIsolate? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (!JavaScriptSandbox.isSupported()) {
Log.e("JS", "JavaScriptSandbox не поддерживается")
return
}
lifecycleScope.launch {
// Создаём и сохраняем в nullable-поле
jsSandbox = JavaScriptSandbox
.createConnectedInstanceAsync(applicationContext)
.await()
jsIsolate = jsSandbox?.createIsolate()
// При выполнении гарантируем, что jsIsolate != null
val result: String = jsIsolate
?.evaluateJavaScriptAsync(JS_SCRIPT_SCRING)
?.await()
?: "Ошибка: isolate не инициализирован"
Log.d("JS", "Результат выполнения: $result")
}
}
override fun onDestroy() {
super.onDestroy()
// Закрываем только если не null
jsIsolate?.close()
jsSandbox?.close()
}
}
#jetpack#js