Конкурс для разработчиков под Android, второй этап
Реакции на сообщения
Во втором этапе конкурса участникам предлагается взять за основу исходный код приложения Telegram для Android и добавить в него функционал реакций на сообщения.
Ресурсы
- Архив с дизайном всех необходимых экранов приложения можно скачать здесь. В архив также включены видеоролики со всеми анимациями, которые показывают правильное поведение интерфейсов.
- Подробное описание новой схемы находится здесь.
- Необходимая схема поддержана в dev-ветке исходного кода.
Описание функционала
Нажимая на сообщение в личном чате, группе или канале, пользователь может выбрать одну из анимированных эмодзи в качестве реакции.
В личных чатах в нижней части сообщений с реакцией отображается уменьшенный вариант соответствующего эмодзи. В группах и каналах показываются счетчики реакций. В нижней части сообщений в группах также отображаются профильные фотографии троих последних пользователей, оставивших реакцию.
1. Установка реакции
Меню выбора реакции отображается над основным списком действий с сообщениями. Анимация горизонтальной прокрутки списка возможных реакций, а также анимация установки реакции представлены на видео. Список реакций получается с сервера.
Изначально в списке статично отображается первый кадр анимированных реакций, для каждой статичной реакции каждые полсекунды с вероятностью 25% начинает выводиться анимация подергивания. После однократного воспроизведения анимации подергивания, реакция снова становится статичной.
Видеоролик: Private Messages.mp4
Макеты: Reactions Actions.png
2. Быстрые реакции
По быстрому двойному нажатию на сообщение пользователь ставит реакцию в виде сердца. Если в группе/канале отключена эта реакция, ставится палец вверх. Если нет и его, никакого действия не происходит.
3. Просмотр реакций
Пользователь также может просмотреть список людей, оставивших реакцию. Для исходящих сообщений люди, оставившие реакции, выводятся над списком тех, кто просмотрел сообщение. Если у сообщения больше 10 реакций, в списке людей выводятся фильтры по типам реакций с горизонтальной прокруткой.
Макеты: Reactions List.png, Reactions List Scrolled.png, Reactions List Filtered.png
Видеоролик: Reactions Menu.mp4
4. Отображение реакций для разных типов контента
Реакции отображаются в виде округлых кнопок внутри сообщений для текста, аудиозаписей, файлов, голосовых сообщений и т.п. Для стикеров, фотографий, видео и видеосообщений реакции выводятся под контентом на фоне чата. По долгому нажатию на такую кнопку выводится список людей, которые оставили данную реакцию, по короткому — пользователь проставляет эту же реакцию. Выбранная реакция выделяется цветной рамкой.
В личных диалогах реакции всегда выводятся слева от времени отправки в уменьшенном формате.
В каналах реакции являются анонимными. Ни участники, ни администраторы канала не могут просмотреть список отреагировавших.
Макеты: Reactions Channel 1.png, Reactions Channel 2.png, Reactions Group.png, Reactions PM.png, Reactions View Single.png
Видеоролик: Channel.mp4
5. Фотографии пользователей в группах
Для каждого сообщения сервер возвращает фотографии трёх последних пользователей, которые оставили реакцию.
Видеоролик: Emotion.mp4
6. Определение набора реакций для групп и каналов
Администраторы групп и каналов могут заранее определить, какие из одиннадцати реакций будут предлагаться пользователям в их сообществе. При желании администратор может отключить реакции в своей группе или канале.
Макеты: Channel Edit.png, Channel Edit Off.png, Reactions Allowed.png, Reactions Disabled.png
Видеоролик: Enable Reactions.mp4
7. Отмена реакции
Для отмены реакции пользователю необходимо сделать двойное быстрое нажатие на сообщение.
В группах и каналах также возможно отменить реакцию при помощи повторного нажатия на уже выбранную реакцию.
Тестирование
Рекомендуется начать тестирование нововведения в тестовом окружении. После того как на тестовом датацентре удалось достичь удовлетворительных результатов, стоит переходить к тестированию в основном окружении. Переключение между окружениями осуществляется с помощью функции Switch Backend в отладочных настройках приложения.
Для регистрации на тестовом сервере можно использовать как свой собственный телефонный номер, так и тестовые учётные записи.
Во время подведения итогов приложения будут тестироваться как на современных, так и на более старых устройствах. В числе прочих:
- Samsung Galaxy S10 Android 11
- Samsung Galaxy A51 Android 11
- Xiaomi Redmi Note 8 Pro Android 10
Мы рекомендуем уделить как можно больше внимания основательному тестированию работ перед отправкой. Все внесённые изменения не должны повредить текущей функциональности приложения и стабильности его работы. Значительная составляющая награды победителей будет зависеть от этих факторов.
Группы и каналы для тестирования
Для удобства участников, в тестовом окружении существуют канал @ReactionsChannel
и группа @ReactionsChat, в которых чуть позже можно будет увидеть сообщения с большим количеством реакций.
Подача работ
Для подачи работы на конкурс необходимо будет отправить боту @ContestBot.
Необходимо собрать APK со своим package_id, а также подставить собственные api_id / api_hash, зарегистрированные по инструкции https://core.telegram.org/api/obtaining_api_id
Итоговая сборка должна подключаться к основному окружению по умолчанию (не к тестовому).
Используйте release сборку.
Убедитесь, что APK может устанавливаться параллельно с основным приложением. (Проблема с разрешениями для карт и версией Gradle были исправлены.)
Также необходимо приложить ссылку на репозиторий с вашим кодом на GitHub (публичный форк репозитория Telegram).
Для отправки работы, отправьте /start
боту @ContestBot и выберите пункт “November 2021 Android Contest”.
Вопросы и неполадки
Задать вопросы о конкурсе и сообщить о технических проблемах с заданием можно в официальной группе Конкурсы Telegram.
Предыдущие разработки
В коде приложения можно обнаружить следы предыдущей итерации похожего функционала, которая не была запущена. Обратите внимание, что с осени 2020-го года полностью изменились API, дизайн и планируемое поведение интерфейса.