Мы добавили абсолютно новый функционал! Он позволяет разбивать учебный год на периоды и задавать для каждого периода каникулы, и не только.
Как было раньше
Вы могли включить каникулы для расписания и назвать их по своему усмотрению, например "Ура, новогодние каникулы!". Функционал каникул был достаточно простым - не показывать занятия в те даты, когда пользователь смотрит на главный экран или на виджет.
Задания во время каникул отображаются, потому что даже во время каникул может быть какая-то домашняя работа: прочитать, повторить, подготовить.
Что просили пользователи
Но сразу после появления каникул нас засыпали вопросами в поддержку:
Как добавить несколько каникул?
Как сделать так, чтобы после каникул была чётная/нечётная неделя?
А действительно, как это сделать? Дать возможность добавить несколько каникул - самое просто решение. Для школы такой вариант подходит, ведь там нет чередования недель чётная/нечётная, красная/синяя, верхняя/нижняя и т. д. Но для ВУЗов такое не сработает.
Что мы сделали
Мы добавили новую сущность в расписание и назвали её "Период". Для школы таким периодом является четверть, для университета - семестр. Вы можете добавить столько периодов, сколько вам необходимо, и назвать их по своему усмотрению: "Четверть 1", "Семестр 2", "Сессия".
К каждому периоду опционально можно добавить каникулы. А если ваше расписание чередуется по неделям, то для каждого периода вы можете установить, с какой недели он начинается.
Если у вас так называемый скользящий график "shift schedule", в нашей терминологии "кастомная неделя", то для каждого периода выбирается день, с которого период начинается. Актуально для школ Северной Америки.
Какие проблемы решены
Несколько каникул - теперь вы можете добавить несколько каникул в рамках учебных периодов. Диапазон дат для каникул автоматически подставляется от конца учебного периода.
Начало каждого периода - для расписания с несколькими неделями и для скользящего графика. Позволяет гибко изменять порядок следования недель до каникул и после них.
Временные рамки для занятий - на экране создания занятия вы можете выбрать периоды, во время которых это занятие будет отображаться. Если периоды не выбраны, то занятие повторяется всегда.
Создание вспомогательных периодов - во время экзаменов, зачетных недель полезно показывать специфически события, актуальные только в это время.
Как это работает
Теперь самое интересное. Как работает чередование нескольких недель расписания? Как работает подсчет дней для кастомной недели?
Если у вас не создано ни одного периода, то у расписания есть настройки текущей недели (для чередующихся расписаний) и дата первого дня (для кастомной недели). От выбранных значений идёт отсчёт как До так и После указанной даты/недели.
В случае, когда периоды добавлены, каждый период задаёт новую точку отсчёта для номера недели или дня кастомной недели.
Рассмотрим пример работы периодов для двухнедельного расписания.
На картинке видим, что первый период начинается со 2-й недели. Какое-то время в рамках этого периода недели чередуются. При наступлении каникул подсчет недель идёт дальше, как будто период продолжается. Это нужно для занятий, который были добавлены без периодов. После каникул первого периода должна быть 2-я неделя, но новый период задаёт свои правила первой недели. Период 2 начинается с 1-й недели.
После завершения всех периодов расписание подчиняется чередованию недель из последнего периода. Занятия, добавленные без периодов будут отображаться согласно этих правил. Занятия с периодами больше не будут отображаться.
До наступления первого периода чередование работает в обратную сторону от первого периода (стрелка влево). Нужно, чтобы понимать, когда показывать занятия, добавленные без указания периодов.
Оценки и отзывы
И конечно же мы не забыли про наш любимый экран "что нового", чтобы собрать оценки и отзывы с выходом новой версии.
Новость про учебные периоды была воспринята спокойно. За неделю после релиза было получено 348 оценок при среднем показателе 200-300 оценок в неделю. Наверное потому, что эту фичу ещё предстоит оценить во время каникул.
А экран про новые виджеты для iOS 16 поставил новый рекорд. За неделю мы собрали 1107 оценок.