- Большинство возможностей требуют подключения к интернету, но некоторые фичи доступны оффлайн
- Звездочкой отмечены фичи только для авторизованных пользователей
- Приложение поддерживает портретную и ландшафтную ориентации
- Авторизация в сервисе workout.su под существующей учетной записью
- Восстановление пароля от учетной записи
- Просмотр информации о своем профиле
- Поиск других пользователей по нику
- Просмотр списка друзей
- Просмотр списка площадок, где тренируется пользователь
- Просмотр списка добавленных пользователем площадок
- Просмотр дневников пользователя
- Просмотр черного списка
- Редактирование своего профиля
- Отправка/принятие/отклонение запросов на добавление в друзья
- Добавление/удаление из черного списка других пользователей
- Отправить сообщение другому пользователю с экрана его профиля
- Просмотр площадок на карте или списком (оффлайн)
- Фильтр отображаемых площадок по размеру, типу и городу (оффлайн)
- Создание новой площадки (максимальное количество фото для одной площадки - 15) *
- Изменение/удаление своей существующей площадки *
- Просмотр детальной информации о площадке (название, размер, тип, снепшот карты, список тренирующихся *, фотографии, автор, комментарии)
- Создание мероприятия для выбранной площадки *
- Построение маршрута до выбранной площадки через стандартное приложение «Карты»
- Поделиться ссылкой на площадку
- Создавать/изменять/удалять свои комментарии к площадкам *
- Отправить письмо для обновления данных о площадке по email
- Отправить письмо с жалобой на фото/комментарий к площадке
- Указать, что тренируешься/не тренируешься на площадке *
- Просмотр списка планируемых и прошедших мероприятий
- Создание нового мероприятия (максимальное количество фото для одного мероприятия - 15) *
- Изменение/удаление своего мероприятия *
- Просмотр детальной информации о мероприятии (название, дата и место проведения, снепшот карты, список участников *, фотографии, описание, организатор, комментарии)
- Поделиться ссылкой на мероприятие на экране
- Создавать/изменять/удалять свои комментарии к мероприятиям *
- Отправить письмо с жалобой на фото/комментарий к мероприятию
- Указать, что идешь/не идешь на мероприятие *
- Отправлять сообщения другим пользователям сервиса со страницы их профиля
- Просмотр своих диалогов в формате чатов
- Отправлять новые сообщения в своих диалогах
- Видеть количество непрочитанных сообщений на экране со списком диалогов
К дневникам (при наличии) можно перейти с экрана профиля пользователя.
- Просмотр/комментирование чужих дневников (при наличии доступа к ним)
- Создание/изменение/удаление дневников и записей в своих дневниках
- Изменение настроек доступа для своих дневников
- Изменить тему приложения (светлая/темная/как в системе)
- Изменить язык в приложении (Русский/Английский)
- Отправить обратную связь о приложении по email
- Оценить приложение в AppStore
- Перейти на официальный сайт сервиса
- Перейти в блог разработчика приложения в телеграм
- Поделиться ссылкой на приложение
- Просмотр текущей версии приложения
- Перейти на сайт магазина workout
- Перейти на страницу проекта в GitHub (сюда)
- Просмотр логов сетевых запросов (только в режиме разработки)
Прежде чем что-то делать, ознакомься с правилами, пожалуйста.
- Проверяем, что установлен Xcode 16+
- Клонируем репозиторий
- В терминале переходим в папку с проектом:
cd SwiftUI-WorkoutApp
- Устанавливаем все инструменты (справка доступна по команде
make help
):
make setup
- Запускаем в папке с проектом файл
SwiftUI-WorkoutApp.xcodeproj
- Проект готов к работе!
- Используем SwiftFormat для форматирования кода
- Правила форматирования перечислены в файле .swiftformat
- Все правила можно найти тут
- Для запуска форматирования нужно в папке с проектом выполнить команду:
make format
- Перед каждым пушом должен выполняться хук, проверяющий необходимость форматирования кода
- При нарушении правил форматирования кода гит выдаст ошибку и напишет команду, которую нужно выполнить для запуска
SwiftFormat
- Запускаем команду в терминале и выполняется форматирование кода
Выполняем команду в терминале в папке с проектом:
make update_swiftformat
или сразу:
make update
Xcode -> SwiftUI-WorkoutApp -> Target: SwiftUI-WorkoutApp -> General
Display Name
- название приложения на экране смартфонаVersion
- версия приложения для магазинаBuild
- версия сборки дляTestFlight
Сборки в TestFlight
публикуются автоматически при отправке изменений в main
-ветку (используем Xcode Cloud
).
- Скачать актуальную версию репозитория
- Если ранее не скачивал, можно скачать по зеленой кнопке сверху с текстом
Code -> Open with Xcode
- Если ранее скачивал, то открываешь
Xcode
, в верхней панели нажатьSource Control -> Pull
- Если ранее не скачивал, можно скачать по зеленой кнопке сверху с текстом
- Открыть
Xcode
и дождаться загрузки зависимостей; при возникновении ошибок можно:- почистить
Derived Data
и память билда (command + shift + k
) - обновить зависимости (
File -> Packages -> Reset/Resolve/Update
)
- почистить
- В верхней панели Xcode сменить девайс на
Any iOS Device
- В верхней панели нажать
Product -> Archive
- Дождаться архивации, в открывшемся окне со сборками выбрать нужную и нажать Distribute App
- Пройти по всем шагам и снять галку с автоматического изменения версии сборки на одном из финальных шагов
- Открыть страницу с приложением в appstoreconnect.apple.com
- В левом меню рядом с версией в статусе Готово к продаже нажать
+
и добавить новую версию - Заполнить поле Что нового в этой версии для русского и английского языков
- Ниже в разделе Сборка выбрать нужную сборку из
TestFlight
- Ниже на странице проверить галки
- Выпустить эту версию автоматически
- Выпустить обновление сразу для всех пользователей
- Сохранить текущую оценку
- Нажать сверху справа кнопку Сохранить
- Отправить приложение на проверку
- Генерируем скриншоты при помощи
Fastlane
(документация) - Настройки для генерации скриншотов находятся в Snapfile (документация)
- Для генерации скриншотов нужно предварительно настроить проект
- Генерация скриншотов выполняется командой:
make screenshots
- Для генерации скриншотов необходимо наличие в Xcode симуляторов с нужной версией iOS в соответствие с настройками в Snapfile
- Если тесты падают с ошибкой при запуске через
fastlane
, нужно убедиться, что при ручном запуске тестов изXcode
они успешно проходят во всех локализациях, используемых для создания скриншотов - Готовые скриншоты сохраняются в папке screenshots
Карта с площадками | Список площадок | Площадка | Прошедшие мероприятия | Мероприятие | Профиль |
---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Карта с площадками | Список площадок | Площадка | Прошедшие мероприятия | Мероприятие | Профиль |
---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
По состоянию на 2025 год Apple берет за основу скриншоты для диагонали 6.9 (или 6.7) дюймов для айфона (13 дюймов для айпада) и масштабирует их под все остальные размеры экранов, то есть можно использовать для скриншотов по одному девайсу на платформу:
- iPhone 16 Pro Max
- iPad Pro 13-inch
Список всех существующих девайсов есть тут.