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