Пользователи обнаружили «реакции» во ВКонтакте. Соцсеть поделилась подробностями
ВКонтакте запускает реакции — возможность оставить различные эмоциональные отклики к публикациям. Информацию об этом обнаружили наши читатели, а ВКонтакте подтвердила старт работы функции.
Ранее датамайнеры из сообщества «Багосы» обнаружили в JavaScript файлах соцсети ВКонтакте код аналога реакций из Facebook. Они поделились с редакцией «Код Дурова» скриншотами, в которых можно заметить элементы новой функции:
Исходя из данных, обнаруженных в кусочках кода десктопной версии, вскоре ко всем лайкам будет автоматически прикреплена стандартная реакция. На данный момент в Facebook это – палец вверх, соответственно во ВКонтакте – красное сердце. Будут и другие реакции. Все они анимированы.
Так сейчас выглядят «реакции» в FacebookЕщё была замечена функция, отвечающая за разблокировку новых реакций, некоторые реакции будут изначально заблокированы, пока пользователь не выполнит какое-либо условие:
Упоминание реакций также было найдено в обфусцированном коде официального Android приложения соцсети:
В текущей системе оценивания есть свои недостатки, к примеру, в траурных публикациях оценка «Нравится» неуместна. А авторам контента не хватает более точного оценивания своих материалов. По задумке, запуск «реакций» должен решить описанные выше проблемы.
В 2019 году ВКонтакте тестировала отсутствие лайков для некоторых публикаций, чтобы проверить, как изменяется отношение пользователя к содержанию поста. В тот же год соцсеть анонсировала появление дизлайков в комментариях, однако долгожданная функция так и не была запущена.
Редакция «Код Дурова» направила запрос в пресс-службу ВКонтакте. В соцсети подтвердили запуск «Реакций» и поделились подробностями.
Как заявили в пресс-службе соцсети, команда ВКонтакте провела серию исследований и пришла к выводу, что у пользователей бывают ситуации, когда они испытывают трудности с выражением своего отношения к публикации. Чаще у пользователей была проблема с выражением негативных эмоций – в их случае стандартная отметка «Нравится» не подходит.
Тогда соцсеть провела тестирование дизлайков, но пользователи отмечали, что функция привносит негатив. По данным соцсети, 76% респондентов считает, что в интернете и так слишком много негатива, поэтому от функции дизлайков отказались. В конце концов, был найден оптимальный вариант.
Для тех, кому эта функция покажется знакомой, соцсеть подготовила специальную реакцию «Где-то было» — её можно оставить под записями официального анонса функции.
«Реакции» ВКонтактеНаша задача — дать пользователям простой инструмент для выражения эмоций, но также важно, чтобы этот инструмент не увеличивал негатив на платформе. Реакции помогут показать чувства откровенно и разнообразно — посмеяться или искренне удивиться, разделить печаль или не сдерживать ярость.Мы много тестировали различные варианты, в том числе были эксперименты с отрисовкой узнаваемых персонажей из стикеров. Но реакции меньше по размеру — и результаты показали, что эмоции было сложно считывать. Наша же цель — предоставить максимально понятный и интуитивный сервис, – отметили в пресс-службе ВКонтакте.
Новый набор реакций отображается во всех публикациях в ленте новостей – от друзей до сообществ. Оставлять реакции можно на всех платформах: для этого в мобильном приложении VK нужно зажать кнопку «Нравится», а в версии для компьютера — навести на неё курсор.
Первоначально пользователю будут доступны только 2 реакции из 6 — это «Нравится» и одна случайная из набора. Когда кто-то ставит недоступную реакцию под записями пользователя, то она открывается ему для использования.
Что за тёмная тема во «ВКонтакте» и как её включить на Android
«ВКонтакте» заполонили посты и комментарии со словами «тёмная тема». Пользователи утверждают, что с помощью комбинации слов можно включить ночную тему в приложении для «ВКонтакте» на Android. Medialeaks опробовал функцию и рассказывает, как она работает.
В середине апреля пользователи «ВКонтакте» наткнулись на то, что на первый взгляд выглядело как новый флешмоб — в комментариях люди массово писали комбинацию слов «тёмная тема». Реплаи почти в каждом крупном паблике выглядели вот так.
Специально для тех, кто не в курсе, объясняем, что это за тёмная тема. Дело в том, что в середине апреля разработчики «ВКонтакте» добавили возможность включать ночной режим в мобильном приложении на Android (для владельцев iPhone опция была доступна ещё с прошлой осени).
Объявления о ночном режиме не было в официальных сообществах ВК и на страницах его представителей. Одним из первых про новое оформление написал портал IGuides. В материале говорилось, что для переключения на новое оформление нужно было зайти в настройки — опция «Тёмная тема» должна была появиться выше графы «Уведомления». Как всегда бывает с подобными обновлениями, они не сразу становятся доступными для всех пользователей.
Несмотря на отсутствие официального объявления, информация о том, что тёмная тема теперь доступна на Android, быстро стала расходиться по соцсети. Кто-то из пользователей обнаружил простой лайфхак, как включить ночной режим во «ВКонтакте» — для этого было достаточно лишь написать комбинацию слов «тёмная тема» в комментариях.
Несколько сотрудников Medialeaks попробовали этот способ и убедились: он работает. Если написать в комментариях «тёмная тема», на экране появляется всплывающее окно.
А привычный интерфейс «ВКонтакте» после включения ночного режима выглядит как на скриншоте ниже. Отключить тёмную тему можно, как и говорится во всплывающем окне, в настройках — соответствующая опция появляется над графой «уведомления».
Для того чтобы включить тёмную тему, необязательно оставлять комментарий в официальных группах «ВКонтакте», как утверждают некоторые пользователи. Редакция Medialeaks убедилась на своём опыте, что также можно написать «тёмная тема» на страничке друга (но за последствия для вашей дружбы мы не ручаемся).
Помимо того, лайфхак в нашем случае сработал и для комбинации слов в кавычках, и без них — и то же самое касалось буквы Ё в слове «тёмная». Также, по нашему опыту, если вы собрались активировать ночной режим с помощью комментариев, необязательно скачивать обновление приложения.
Но есть и исключения. Во «ВКонтакте» некоторые пользователи пишут, что комментарий с комбинацией слов не помог им получить ночной режим. И даже после обновления приложения.
Лучше приготовиться к тому, что посты и комментарии с «тёмной темой» будут преследовать вас как минимум несколько дней. Да, так же, как было с фразой «Ержан, вставай». Ранее Medialeaks рассказывал, откуда взялось это выражение и как превратилось в абстрактный мем.
Мемом сегодня может стать всё что угодно и кто угодно. Особенно часто объектами виральных шуток становятся звёзды. Актёру из «Чёрной пантеры» вот для этого понадобилось лишь хитро увильнуть от вопроса журналистки о спойлерах к «Мстителям».
ВК (com.vkontakte.android) 7.16 APK 下載 — Android APK
Скачать APK [7.16](97,24 МБ)
軟體介紹
ВКонтакте — это социальная сеть, которая объединяет людей по всему миру и помогает им общаться комфортно и оперативно. Вы можете отправлять сообщения своим друзьям и узнавать, что нового в их жизни, обмениваться фотографиями, смотреть фильмы и слушать музыку. Наши пользователи присоединяются к сообществам, знакомятся с новыми людьми и обожают играть в игры. Новое приложение ВКонтакте позволяет вам наслаждаться всем этим и многим другим.
- 软件信息
- 权限列表
com.vkontakte.android.usersstore.permission.SAVE | |
---|---|
com.vkontakte.android.usersstore.permission.LOAD | Разрешение клиента приложения. |
Запись звука | Позволяет записывать звук.![]() |
Камера | Позволяет использовать устройство камеры. |
Изменить настройки звука | Позволяет изменять глобальные настройки звука. |
Установить ярлык | Позволяет установить ярлык в Launcher. |
com.android.vending.BILLING | Разрешение клиента приложения. |
Интернет | Разрешает доступ к сети Интернет. |
Доступ к грубому местоположению | Позволяет получить доступ к приблизительному местоположению, полученному из сетевых источников местоположения, таких как вышки сотовой связи и Wi-Fi.![]() |
Доступ к точному местоположению | Позволяет получить доступ к точному местоположению из таких источников, как GPS, вышки сотовой связи и Wi-Fi. |
Запись во внешнее хранилище | Позволяет записывать на внешнее хранилище, например на SD-карту. |
Чтение внешнего хранилища | Позволяет читать из внешнего хранилища, такого как SD-карта. |
Вибрация | Разрешает доступ к вибратору. |
Блокировка пробуждения | Позволяет использовать PowerManager WakeLocks для предотвращения перехода процессора в спящий режим или затемнения экрана.![]() |
Проверка подлинности учетных записей | Позволяет действовать как AccountAuthenticator для AccountManager. |
Получить счета | Разрешает доступ к списку учетных записей в службе учетных записей. |
Управление счетами | Позволяет управлять списком учетных записей в AccountManager. |
Чтение настроек синхронизации | Позволяет читать настройки синхронизации. |
Запись настроек синхронизации | Позволяет записывать настройки синхронизации. |
Чтение контактов | ![]() |
Запись контактов | Позволяет записывать данные контактов пользователя. |
Доступ к состоянию сети | Позволяет получить доступ к информации о сетях. |
Доступ к состоянию Wi-Fi | Позволяет получить доступ к информации о сетях Wi-Fi. |
com.vkontakte.android.permission.MAPS_RECEIVE | Разрешение клиента приложения. |
com.google.android.providers.gsf.permission.READ_GSERVICES | Разрешение клиента приложения. |
com.![]() | Разрешение клиента приложения. |
NFC | Позволяет выполнять операции ввода-вывода через NFC. |
Окно системного предупреждения | Позволяет открывать окна с помощью системного оповещения, отображаемого поверх всех остальных приложений. |
Bluetooth | Позволяет подключаться к сопряженным устройствам Bluetooth. |
android.permission.FOREGROUND_SERVICE | Разрешение клиента приложения. |
android.permission.![]() | Разрешение клиента приложения. |
com.vk.usersstore.permission.SAVE | Разрешение клиента приложения. |
com.vk.usersstore.permission.LOAD | Разрешение клиента приложения. |
com.vk.im.usersstore.permission.SAVE | Разрешение клиента приложения. |
com.vk.im.usersstore.permission.LOAD | Разрешение клиента приложения. |
android.gms.permission.ACTIVITY_RECOGNITION | Разрешение клиента приложения.![]() |
android.permission.ACTIVITY_RECOGNITION | Разрешение клиента приложения. |
Чтение журнала вызовов | Позволяет читать журнал вызовов пользователя. |
android.permission.MANAGE_OWN_CALLS | |
android.permission.READ_PHONE_NUMBERS | Разрешение клиента приложения. |
android.permission.USE_FULL_SCREEN_INTENT | Разрешение клиента приложения. |
Получение загрузки завершено | Позволяет получать уведомление о завершении загрузки, которое передается после завершения загрузки системы.![]() |
Чтение состояния телефона | Разрешает доступ только для чтения к состоянию телефона. |
android.provider.Telephony.SMS_RECEIVED | Разрешение клиента приложения. |
Изменить состояние Wi-Fi | Позволяет изменить состояние подключения Wi-Fi. |
android.permission.QUICKBOOT_POWERON | Разрешение клиента приложения. |
com.google.android.c2dm.permission.RECEIVE | Разрешение клиента приложения. |
com.![]() | Разрешение клиента приложения. |
com.sec.android.provider.badge.permission.WRITE | Разрешение клиента приложения. |
com.htc.launcher.permission.READ_SETTINGS | Разрешение клиента приложения. |
com.htc.launcher.permission.UPDATE_SHORTCUT | Разрешение клиента приложения. |
com.sonyericsson.home.permission.BROADCAST_BADGE | Разрешение клиента приложения. |
com.sonymobile.home.permission.PROVIDER_INSERT_BADGE | Разрешение клиента приложения.![]() |
com.anddoes.launcher.permission.UPDATE_COUNT | Разрешение клиента приложения. |
com.majeur.launcher.permission.UPDATE_BADGE | Разрешение клиента приложения. |
com.huawei.android.launcher.permission.CHANGE_BADGE | Разрешение клиента приложения. |
com.huawei.android.launcher.permission.READ_SETTINGS | Разрешение клиента приложения. |
com.huawei.android.launcher.permission.WRITE_SETTINGS | Разрешение клиента приложения. |
android.![]() | Разрешение клиента приложения. |
com.oppo.launcher.permission.READ_SETTINGS | Разрешение клиента приложения. |
com.oppo.launcher.permission.WRITE_SETTINGS | Разрешение клиента приложения. |
мне.все.барсук.разрешение.BADGE_COUNT_READ | Разрешение клиента приложения. |
мне.все.барсук.разрешение.BADGE_COUNT_WRITE | Разрешение клиента приложения. |
android.permission.USE_FINGERPRINT | Разрешение клиента приложения.![]() |
com.google.android.gms.permission.AD_ID | Разрешение клиента приложения. |
com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE | Разрешение клиента приложения. |
Изменение состояния сети | Позволяет изменить состояние подключения к сети. |
Ускорьте процесс обновления приложения на Android / Habr
Благодаря множеству новых инструментов и функций, анонсированных на Android Dev Summit, особое внимание следует уделить API-интерфейсу In-App Updates (IAUs), позволяющему разработчикам увеличить скорость доставки функций, исправления ошибок и улучшения производительности для активных пользователей. Поскольку эта функция была наконец выпущена после Google I/O 2019, в этой статье я подробно расскажу об API IAU, подробно опишу рекомендуемые пользовательские потоки и предоставлю несколько примеров кода. Кроме того, я поделюсь опытом интеграции IAU в приложение Pandao, торговую площадку для китайских товаров.
Новый API позволяет разработчикам инициировать новый поток запросов на обновление в приложении, чтобы подтолкнуть активных пользователей к обновлению приложения. IAUs дополняет существующий механизм автообновления Google Play, но, к сожалению, никак не влияет на намерения некоторых пользователей отключить какие-либо обновления. Запрос IAU может быть реализован двумя способами, которые обеспечивают совершенно разный пользовательский опыт.
- Гибкий поток предлагает пользователям загрузить обновление в фоновом режиме и установить его в удобный момент. Предполагается, что его следует использовать в тех случаях, когда пользователю все еще уместно использовать старую версию приложения, когда была выпущена новая.
- Немедленный поток требует, чтобы пользователи загружали и устанавливали обновление, прежде чем продолжать использовать приложение. Его предполагается использовать в тех случаях, когда разработчикам крайне важно предотвратить использование приложения до применения обновления.
Поскольку последний вариант использования менее важен и подходит для приложения Pandao, мы подробно обсудим первый.
Пример использования
Гибкий поток IAU состоит из следующих шагов.
- Приложение отправляет Google Play запрос на проверку доступных обновлений с помощью Play Core Library.
- Если доступно обновление, приложение запрашивает Google Play, чтобы отобразить диалоговое окно IAU. Google Play показывает пользователю диалог запроса на обновление.
- Если пользователь принимает запрос на обновление, Google Play загружает обновление в фоновом режиме, предоставляя пользователю изящный мониторинг состояния в строке состояния.
- Если процесс загрузки завершается, когда приложение находится в фоновом режиме, Google Play автоматически завершает установку. Для случаев, когда загрузка завершается, когда приложение находится на переднем плане, мы должны определить пользовательскую логику для завершения обновления. Рассмотрим несколько лучших практик для реализации.
- Приложение запускает процесс установки, отображая пользователю экран Google Play с ходом установки. После завершения установки приложение перезапустится и откроется обновленная версия. В этом случае рекомендуется отобразить дополнительный диалог, чтобы пользователь мог явно подтвердить, что он или она готовы перезапустить приложение прямо сейчас. Это очень рекомендуемый поток .
- Приложение ожидает перехода в фоновый режим, а затем автоматически завершает обновление. С одной стороны, этот вариант менее инвазивен с точки зрения пользовательского опыта. Но, с другой стороны, это требует от разработчика реализации сложной функции для обнаружения, когда приложение переходит в фоновый режим.
- Приложение запускает процесс установки, отображая пользователю экран Google Play с ходом установки. После завершения установки приложение перезапустится и откроется обновленная версия. В этом случае рекомендуется отобразить дополнительный диалог, чтобы пользователь мог явно подтвердить, что он или она готовы перезапустить приложение прямо сейчас. Это очень рекомендуемый поток .
В исключительных случаях завершение обновления будет автоматически отложено до выполнения фоновой задачи Google Play. Этот вариант не рекомендуется для явного использования, так как он не дает никаких гарантий установки обновления.
Основные требования для ручного тестирования
Чтобы вручную выполнить полный поток обновления на тестовом устройстве, у вас должно быть как минимум две версии приложения с разными номерами версий: исходная версия и целевая версия.
- Исходная версия с более высоким номером версии должна быть опубликована в Google Play, это версия, которая будет идентифицирована Google Play как доступное обновление. На вашем устройстве должна быть установлена целевая версия с меньшим номером версии и встроенной функцией IAU, это версия, которая будет обновлена. Дело в том, что когда приложение запрашивает у Google Play наличие доступных обновлений, оно сравнивает номер версии установленного приложения с номером версии последней доступной сборки в Google Play.
Таким образом, функция IAUs будет активирована только в том случае, если номер версии в Google Play выше, чем фактическая версия приложения на устройстве.
- И исходная, и целевая версии должны иметь одинаковое имя пакета и должны быть подписаны одним и тем же сертификатом выпуска .
- Android 5.0 (уровень API 21) или выше.
- Библиотека Play Core 1.5.0 или выше.
Этот раздел содержит пример кода для использования IAU, который также можно найти в официальной документации. Для начала необходимо добавить библиотеку Play Core в файл gradle на уровне модуля.
зависимости { ... реализация "com.google.android.play:core:1.5.0" }
Далее создадим экземпляр диспетчера IAU и добавим обратные вызовы в задачу AppUpdateInfo
. Результат этой задачи содержит информацию о доступности обновления, намерении запустить обновление, если оно доступно, и текущем ходе загрузки обновления, если оно уже началось.
// Создать экземпляр диспетчера IAU. val appUpdateManager = AppUpdateManagerFactory.create(контекст) // Добавляем прослушиватель состояния в информационную задачу обновления приложения. appUpdateManager.appUpdateInfo.addOnSuccessListener { appUpdateInfo -> // Если доступно обновление, подготовьтесь к его продвижению. если (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE) { // ... } // Если процесс загрузки завершен, запускаем поток завершения. если (appUpdateInfo.installStatus() == InstallStatus.DOWNLOADED) { // ... } } .addOnFailureListener { e -> // Обработать ошибку. }
Что касается того, как вызвать диалог запроса обновления из Google Play в коде, вы получаете PendingIntent
в объекте AppUpdateInfo
, который вы можете начать с startIntentSenderForResult
. В этом диалоговом окне пользователю предлагается начать обновление.
appUpdateManager.startUpdateFlowForResult( // Передать намерение, возвращаемое 'getAppUpdateInfo()'. приложениеUpdateInfo, // Или 'AppUpdateType.IMMEDIATE для немедленных обновлений. AppUpdateType.FLEXIBLE, // Текущая активность. Мероприятия, КОД ЗАПРОСА )
Чтобы отслеживать состояние обновления, вы можете добавить InstallStateUpdatedListener
в диспетчер IAU. Убедитесь, что ваш InstallStateUpdatedListener
поддерживает жизненный цикл.
// Создайте прослушиватель для отслеживания обновлений состояния загрузки. val listener = InstallStateUpdatedListener { состояние -> // Обновить индикатор выполнения, запросить у пользователя подтверждение перезагрузки приложения и т. д. } // В какой-то момент перед запуском обновления зарегистрируйте прослушиватель обновлений. appUpdateManager.registerListener (слушатель) // ... // В какой-то момент, когда обновления статуса больше не нужны, отмените регистрацию слушателя.appUpdateManager.unregisterListener (слушатель)
Как только обновление загружено (статус DOWNLOADED
), приложение необходимо перезапустить, чтобы завершить обновление. Его можно легко инициировать, вызвав appUpdateManager.completeUpdate()
, но рекомендуется отображать панель закусок, чтобы пользователь мог явно подтвердить, что он или она готовы перезапустить приложение прямо сейчас.
Закусочная.сделать( корень, "Обновление только что было загружено из Google Play", Закусочная.LENGTH_INDEFINITE ).подать заявление { setAction("RELOAD") { appUpdateManager.completeUpdate() } показывать() }
«Обновление недоступно» Ошибка
Прежде всего, перепроверьте требования, указанные в разделе «Основные требования к реализации». Если вы успешно выполнили вышеперечисленные шаги с соблюдением всех требований, хотя обновление, согласно обратному вызову onSuccess
, по-прежнему недоступно, обратите внимание на следующую хитрость. Наиболее вероятная причина в том, что приложение Google Play еще не знает об обновлении из-за внутреннего механизма кэширования. Чтобы убедиться, что у вас есть свежий кеш при тестировании вручную, вы можете обновить кешированную версию, перейдя на экран «Мои приложения и игры» в приложении Google Play. В качестве альтернативы вы можете просто очистить кеш приложения Google Play в настройках. Обратите внимание, что это просто проблема для тестирования и не влияет на конечных пользователей, поскольку кеш в любом случае обновляется ежедневно.
В рамках программы раннего доступа мы интегрировали гибкий поток IAU (рекомендуемая реализация) в приложение Pandao, то есть в торговую площадку, предлагающую продукты китайских производителей и поставщиков. Диалог IAU отображался на главном экране, поэтому с ним могло взаимодействовать максимальное количество пользователей. Изначально мы решили показывать диалоги IAU не чаще одного раза в день, чтобы не раздражать пользователей риска.
Поскольку A/B-тестирование является ключевым этапом в жизненном цикле каждой новой функции, мы решили оценить влияние IAU на приложение Pandao. Мы случайным образом разделили наших пользователей на две непересекающиеся группы. Первая представляет собой контрольную группу без функционала IAU, представляющую базовый уровень «без изменений», а вторая — тестовую группу с диалогом IAU.
Рис. 1. A/B-тестирование для IAU (гибкий поток) в приложении Pandao.
За последние несколько выпусков мы измерили процент активных пользователей для каждой версии приложения. Выявлено, что среди активных пользователей с последней доступной на данный момент версией большая часть приходится на группу Б, т.е. пользователей с функцией IAUS. Как видно из фиолетовых линий на рис. 1, в первые дни после публикации версии приложения 1.29.1 количество активных пользователей с функцией IAU превысило количество пользователей без этой функции. Противоположная ситуация наблюдается для предыдущих версий приложения, см. синие и красные линии после публикации 1.29..1 версия приложения. Таким образом, можно констатировать, что пользователи с IAU быстрее обновляют версию приложения.
Рис. 2. Уровень подтверждения в диалоге IAU (гибкий поток) в приложении Pandao .
По данным аналитики Pandao (см. рис. 2), конверсия в нажатие на кнопку подтверждения в диалоге IAUs достигает пиковых значений в первые дни релиза, а затем постоянно снижается до следующего обновления приложения. Та же закономерность наблюдается и при переходе к нажатию кнопки установки в закусочной, что инициирует установку скачанного обновления. Следовательно, похоже, что средний коэффициент конверсии в обоих случаях прямо пропорционален частоте релизов. В Pandao средний коэффициент конверсии, измеренный в течение одного месяца, превышает 35% для клика по кнопке подтверждения и 7% для клика по кнопке установки.
Мы предположили, что уменьшение количества подтверждений с течением времени — это просто проблема взаимодействия с пользователем, потому что люди, заинтересованные в новой версии приложения, будут обновляться довольно быстро, а те, кто не заинтересован в обновлении, по-прежнему не будут заинтересованы.