В процессе работы над приложением «Счетчик дней: вредные привычки» для операционной системы iOS и macOS был обнаружен и исправлен баг, затрагивающий пользователей, которые не участвуют в рейтинге отказа от вредных привычек. Ошибка мешала корректной работе вкладки «Рейтинг» при просмотре профилей других пользователей.
1. Описание проблемы:
Баг возникал в сценарии, когда пользователь, не зарегистрированный в рейтинге отказа от вредных привычек, пытался просмотреть вкладку «Рейтинг» в профиле другого участника. Вместо отображения статистики и календаря успехов целевого пользователя происходил сбой . Проблема была связана с тем, что серверный запрос для получения данных рейтинга не учитывал сценарий, когда текущий пользователь не участвует в рейтинге.
2. Диагностика и локализация:
Для выявления причины был проведен анализ серверных логов и клиентской логики. Выяснилось, что запрос на получение данных рейтинга для публичного профиля использовал идентификатор текущего пользователя вместо идентификатора целевого. Это происходило из-за того, что клиентская часть не всегда корректно определяла, чей именно профиль просматривается, если текущий пользователь не участвует в рейтинге.
3. Исправление на клиентской части:
На стороне приложения была доработана логика определения целевого пользователя при переходе на вкладку «Рейтинг». Теперь запрос на сервер всегда содержит явный идентификатор пользователя, чей профиль просматривается. Это исключило путаницу между текущим и целевым пользователями независимо от их статуса в рейтинге.
4. Релиз и результат:
Исправления были протестированы в версиях для iOS и macOS, после чего успешно отправлены в App Store. После обновления пользователи, не участвующие в рейтинге, могут без проблем просматривать вкладку «Рейтинг» в профилях других участников. Данные загружаются корректно, статистика и календарь успехов отображаются для целевого пользователя.
Особенности реализации:
- Разработка велась на SwiftUI.
- Поддерживаются все актуальные устройства под управлением iOS 14 и выше, включая iPhone Air, 17, 17 Pro, 17 Pro Max, а также iPad Air 2024 и новее.
- Поддерживаются устройства под управлением операционной системы macOS 11.0 и новее.