Перейти к содержанию

Кейс

Почему люди перестают писать в чате вашего приложения

Когда чат в приложении неудобен или ненадёжен, люди перестают им пользоваться. Вот что мы узнали, исправляя такие проблемы в своих приложениях, и что вы можете проверить сами.

Главное

  • Ненадёжный чат тихо отталкивает людей от вашего приложения.
  • Поле чата должно очищаться сразу при нажатии «Отправить», а не после ответа сервера.
  • Неотправленные сообщения должны оставаться на виду с ясными вариантами повторить, изменить или удалить.
  • Чат всегда должен открываться на самом новом сообщении.
  • Вы можете проверить эти проблемы сами, прежде чем просить разработчика о помощи.

Когда чат в приложении работает ненадёжно — сообщения застревают в поле, ответы пропадают или последнее сообщение скрыто, — люди тихо перестают им пользоваться. Эти сбои не показываются как ошибки, но из-за них ваша компания может выглядеть неотзывчивой, и со временем люди пишут всё реже.

Что наполовину работающий чат делает с бизнесом

Чат, который ведёт себя не так, как ждут люди, заставляет их сдаться ещё до того, как они увидят хоть какую-то ошибку. Если поле ввода не очищается после нажатия «Отправить», люди могут отправить сообщение дважды или задуматься, ушли ли их слова вообще. Когда переписка открывается где-то в середине старого разговора, человек может пропустить новые ответы и почувствовать, что его игнорируют. Если неудачный ответ тихо исчезает, кажется, что никто не слушает. Ни один из этих сбоев не вызывает оповещений или отчётов об ошибках — они просто заставляют людей перестать писать, часто не объясняя почему.

На что жаловались пользователи наших приложений

Мы видели эти проблемы в своих мобильных приложениях, где есть чат для клиентов и сотрудников. Люди замечали, что после нажатия «Отправить» их слова часто остаются в поле, и они отправляли сообщение снова. Некоторые чаты открывались на старом сообщении, и человеку приходилось каждый раз прокручивать вниз. Отправить второе сообщение было нельзя, пока не завершится первое. Если ответ не отправлялся, он тихо возвращался в поле, без всякого признака, что пошло не так. Если выйти из чата, пока сообщение ещё отправляется, оно могло потеряться совсем. На iPhone с последней версией системы приложение иногда зависало посреди ответа и дважды подряд закрывалось само.

Как зависание привело к повседневным сбоям

Мы начали с того, что разобрали зависание на iPhone: отчёты самого телефона показывали, что приложение переставало отвечать, пока его экран продолжал пересчитывать свою разметку. Поле ввода чата делилось позицией курсора с остальным приложением, но на новейшей системе iPhone поле могло сообщать позиции, которых не существует, и оба начинали бесконечно пытаться исправить друг друга. Когда мы это решили, открылась более глубокая картина: каждый экран чата ждал сервер, прежде чем показать хоть какое-то изменение. Поле очищалось только после ответа сервера, а вся переписка перерисовывалась после каждой проверки новых сообщений, и читателя отбрасывало наверх. Если человек выходил из чата посреди отправки, сообщение терялось. Второе сообщение не могло уйти, пока не завершится первое, а если отправить дважды одно и то же короткое слово (например, «ок»), неудачное второе сообщение просто игнорировалось. Чтение старых сообщений тоже могло вернуть человека наверх чата.

Правило, вокруг которого мы перестроили каждый чат

Мы перестроили каждый чат в наших приложениях по одному правилу: показывать действие человека сразу, а сети давать догнать в фоне. Теперь нажатие «Отправить» мгновенно очищает поле и сразу добавляет сообщение в переписку. Сообщения уходят по порядку, каждое со своей пометкой, так что повторная попытка не отправит одно и то же дважды. Если сообщение не доставлено, оно остаётся в переписке красным с вариантами «Повторить», «Изменить» или «Удалить» — и никогда не исчезает тихо и не прыгает обратно в поле. Сообщения продолжают отправляться, даже если человек вышел из чата или переключил вкладку, а неотправленное сообщение сохраняется на устройстве. Каждая переписка открывается на самом новом сообщении, а если человек прокрутил вверх, он остаётся на месте, и кнопка показывает новые сообщения. На iPhone мы сделали собственное поле ввода, которое следит только за своими словами и держит свой размер, поэтому оно больше не может заморозить приложение.

На каком этапе эти изменения

Каждый экран чата в наших приложениях для iPhone и Android перестроен по этим правилам. Эти изменения — в следующих версиях приложений: до всех они дойдут, когда новая версия для iPhone будет одобрена для App Store, а новая версия для Android уже доступна в Google Play. На наших тестовых телефонах поле чата очищается в момент нажатия «Отправить», каждый чат открывается на самом новом сообщении, неудачные ответы ждут красным с вариантами действий, и даже тот ответ, что когда-то замораживал приложение, теперь печатается плавно.

Что вы можете проверить сами

  • Отправьте сообщение на медленном соединении и посмотрите, очищается ли поле сразу.
  • Откройте чат с долгой историей и проверьте, открывается ли он на самом новом сообщении.
  • Включите режим полёта, отправьте ответ и поищите ясный признак, что сообщение не отправлено, и способ повторить попытку.
  • Отправьте сообщение, сразу выйдите из чата, затем вернитесь и проверьте, дошло ли оно.
  • Наберите длинный ответ с исправлениями и эмодзи на телефоне с последней версией системы и посмотрите, успевает ли приложение за вами плавно.

Что делать дальше

Если чат в вашем приложении тормозит, теряет ответы или открывается не там, где нужно, это не просто мелкие неудобства — они стоят вам доверия. Попробуйте проверки выше. Если вы видите какие-то из этих сбоев, попросите разработчика вашего приложения посмотреть, как обрабатываются сообщения чата и показываются ли действия сразу, а не только после ответа сервера. Такой работой — находить и исправлять невидимые сбои в чатах и комментариях — инженеры Tech Concierge занимаются для приложений и сайтов клиентов.

Частые вопросы

Почему поле чата в моём приложении остаётся заполненным после нажатия «Отправить»?

Если поле чата остаётся заполненным после нажатия «Отправить», пользователь видит свои слова на месте и может отправить сообщение снова. Обычно это значит, что приложение не обновляет поле, пока не получит ответ от сервера, а это ощущается медленно и сбивает с толку.

Почему чат открывается на старых сообщениях, а не на последнем?

Если чат открывается где-то в прошлом, возможно, он заново перерисовывает всю переписку или не помнит, где вы остановились. Из-за этого пользователям приходится прокручивать, и они могут пропустить новые ответы.

Что должно происходить, когда сообщение в приложении не отправляется?

Неотправленное сообщение должно оставаться видимым в переписке, ясно помеченным (например, красным), с вариантами повторить, изменить или удалить его. Оно не должно исчезать или тихо возвращаться в поле ввода.

Почему моё приложение зависает, когда я печатаю длинный ответ на новом iPhone?

В некоторых приложениях поля ввода плохо работают с новейшими системами iPhone, особенно если они передают данные о курсоре или разметке так, как больше не поддерживается. Это может вызывать бесконечные пересчёты и замораживать приложение.

Может ли сообщение отправиться дважды, если первое шло медленно?

Если приложение неправильно обрабатывает повторные попытки, отправка сообщения снова, пока первое ещё в пути, может привести к дублям или к незамеченным неудачным сообщениям. У сообщений должны быть пометки, чтобы повторять отправку безопасно, без дублей.

От Tech Concierge

Хотите, чтобы этим занимались за вас?

Ваш собственный инженер делает и ведёт сайт, приложение, CRM и ИИ-ассистента, который отвечает вашим клиентам.

Первые 7 дней — бесплатно.

Читайте также

КейсМобильные приложения

Отказ App Store из-за согласия на ИИ: что пришлось изменить

Наше собственное приложение для iPhone отклонили из-за двух правил App Store о персональных данных. Вопрос о согласии был слишком общим: в нём не назывался поставщик ИИ, он охватывал одну функцию из трёх и появлялся позже, чем смотрел проверяющий.

5 мин чтения

КейсМобильные приложения

Почему ваше Android-приложение кажется медленным после каждого обновления

Наше собственное Android-приложение обновляется почти каждый день, и люди, которые им пользуются, стали говорить, что оно подтормаживает. Причина была не в одном тяжёлом экране, а в повторяющейся работе, в том, что телефон заново привыкает к приложению после каждого выпуска, и в демо, которое падало только на реальных телефонах.

4 мин чтения

КейсИИ и автоматизация

Почему ваш AI-копирайтер для рекламы выдумывает факты и обещания, которых вы не давали

Рекламные сценарии клиента, написанные AI, звучали гладко, и автоматическая проверка их пропускала, но некоторые обещали то, чего в брифе не было. Вот как появились выдуманные строки и какие проверки теперь их ловят.

4 мин чтения

Мы считаем посещения блога своей аналитикой, без Google, и никому не передаём, что вы читаете. Можно запомнить этот браузер с помощью cookie? Подробнее — в политике конфиденциальности.