Общее описание задачи

Существует бэкенд на Go, интегрированный с сервером Synapse. Его доработать: добавить недостающую функциональность, вникнуть в код, после - реализовать следующий функционал:

Функциональные требования

Отправка сообщений

  • Пользователь выбирает контакт из списка и нажимает «Написать сообщение».
  • Открывается поле ввода текста и кнопка «Отправить».
  • Сообщение доставляется получателю.

Получение и чтение

  • Адресат получает оповещение о новом сообщении (pust- и/или inbox-уведомление в приложение).
  • При открытии сообщения отображается ветка диалога: текст сообщения, а также поле ввода и кнопка «Отправить» для ответа.
  • История всей переписки доступна при прокрутке (swipe-to-refresh снизу вверх для подгрузки старых сообщений).

Дополнительно (обсудить на первом этапе)

  • Поддержка прикрепления изображений и документов.