Обзор проекта

YouMi — это онлайн-платформа психологического консультирования, которая связывает пользователей с сертифицированными психологами через мобильное приложение. Пользователь выбирает специалиста, планирует и переносит сеансы и переписывается с психологом в реальном времени.

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

Экран выбора специалиста

Экран выбора специалиста

Планирование сеанса

Планирование сеанса

Функции сеанса

Функции сеанса

Профиль пользователя

Профиль пользователя

Настройки

Настройки

Настройки уведомлений

Настройки уведомлений

Технические сложности

В основе нестабильности приложения лежали две проблемы:

Управление WebSocket-соединениями: чат в реальном времени и сеансы опирались на -соединения, с которыми приложение обращалось неправильно. Соединения обрывались без внятной логики переподключения, сообщения терялись при переключении между сетями, а поддерживать стабильную связь между пользователями и психологами приложению удавалось с трудом. Из-за этого чат был ненадёжен и мешал прямо во время консультаций.

Архитектура навигации: система маршрутизации в приложении была реализована плохо — отсюда утечки памяти, рассогласованное управление состоянием и непредсказуемое поведение навигации. Пользователи сталкивались с падениями при переходе между экранами, с некорректной работой кнопки «Назад», а экраны зависали или показывали неверный контент.

Решение и реализация

Уложившись в жёсткие две недели, мы последовательно устранили обе ключевые проблемы:

Мы полностью переписали работу с WebSocket, выстроив надёжное управление жизненным циклом соединения — с автоматическим переподключением, очередью сообщений на время обрывов сети и корректной обработкой ошибок. Теперь сообщения доходят надёжно, а сеансы переживают переключение между сетями и короткие обрывы связи. Заодно мы добавили отслеживание статуса сообщений: пользователи и психологи видят, когда сообщение отправлено, доставлено и прочитано.

Систему навигации мы перестроили с нуля, опираясь на современные практики маршрутизации во Flutter. Мы выстроили корректное управление состоянием, устранили утечки памяти и сделали навигацию предсказуемой — такой, какой её ожидает пользователь. В итоге получился плавный, отзывчивый интерфейс, который одинаково ведёт себя во всех сценариях.

Результаты

За две недели приложение YouMi превратилось из нестабильного продукта в надёжную платформу. Чат стал предсказуемым, связь во время сеансов заметно улучшилась, а проблемы с навигацией исчезли полностью. Исправления позволили YouMi уверенно наращивать пользовательскую базу и заниматься развитием бизнеса, а не разгребанием технических кризисов.

YouMi пришли к нам за спасением Flutter-приложения — посмотрите, как мы создаём и стабилизируем продакшен-приложения в рамках разработки на Flutter, или что мы вынесли из работы с медицинскими и телемедицинскими приложениями.