Skip to content

Releases: Cryptoteep/smtu-schedule-android

2.8 — приложение больше не врёт по мелочам

Choose a tag to compare

@Cryptoteep Cryptoteep released this 25 Sep 15:49
62589d3

Приложение больше не врёт по мелочам

Разбор мест, где приложение показывало не то или молча ломалось. Почти всё в этом выпуске найдено с 15 сентября, когда у занятий на сайте пропали точные даты.

Найденная пара открывается в свой день

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

Предмет больше не называется «Лекция»

У части строк сайт оставляет название предмета пустым. Тогда на месте предмета оказывалось «Лекция», а настоящее название («Военная подготовка», «Довузовская подготовка») уходило в тип. Из 10 248 занятий так выглядели 15, теперь все показываются правильно.

Виджеты считают последние полтора часа перед парой

Раньше в длинной перемене виджет засыпал до самого начала пары: кольцо не заполнялось, а надпись «через 2 ч 15 мин» висела часами. Теперь, пока до пары далеко, виджет пишет время начала («в 15:40»). За 90 минут до пары он просыпается сам и начинает поминутный отсчёт.

Видно, когда данные старые

  • Резервная копия, собранная раньше сохранённого расписания, больше его не затирает.
  • Пометка «из резервной копии» остаётся и после перезапуска.
  • Если обновить не удалось, это видно в строке внизу экрана, а не только во всплывающей подсказке.
  • В веб-версии в строке состояния пишется время, когда расписание собрали с сайта, а не когда его скачал браузер.

Ещё

  • Если медленно открывалось расписание преподавателя, а вы уже вернулись к группе, оно больше не подменяет расписание группы.
  • Веб-версия на iPhone подсказывает, как добавить её на экран «Домой»: иначе Safari стирает её данные после недели без визитов.
  • Политика конфиденциальности теперь перечисляет все адреса, к которым обращается приложение.
  • Убрано лишнее разрешение: приложение просит только доступ в интернет.

Установка

Скачайте smtu-schedule-2.8.apk и откройте его на телефоне. Версия ставится поверх предыдущей, группа, виджеты и кэш сохранятся.

SHA-256  668b044a5412ab5b320ef0744ca5e725d08ab949c78e8c3e7bc0c6844d62582f
подпись  CN=SMTU Schedule, OU=Cryptoteep — та же, что у 2.0–2.7
размер   90 КБ · Android 5.0+ · разрешение одно: интернет

Полный список изменений — в CHANGELOG.md.

2.7 — приложение перестало договаривать за университет

Choose a tag to compare

@Cryptoteep Cryptoteep released this 21 Sep 00:00

Приложение перестало договаривать за университет

Разбор слабых мест, которые остались после сентябрьской смены вёрстки на сайте. Всё, о чём приложение раньше умалчивало или догадывалось, теперь либо исправлено, либо сказано вслух.

Расписание больше не продолжается в бесконечность

Точных дат у занятий на сайте нет с 15 сентября, а правило «день недели + чётность» можно разворачивать хоть на год вперёд. Приложение так и делало: на 12 июля 2027 года оно показывало пять пар, а виджет в каникулы обещал «ЗАВТРА».

Теперь загруженное расписание действует от начала своей недели и на 16 недель вперёд — семестр вместе с сессией, — а дальше экран честно пишет, чем располагает:

Сюда расписание не достаёт.
Оно загружено 20 сентября и покрывает по 3 января 2027.
Нажмите ⟳, чтобы взять свежее.

Отменённая пара исчезает вместе со страницей

Раньше свежий ответ сайта доливался к сохранённой копии — так переживали временно пустую страницу. Отсекали лишнее по датам занятий; дат не стало, и снятая с расписания пара осталась бы в приложении навсегда. Проверено: сайт отдавал 29 занятий, приложение продолжало показывать 32.

Ответ сайта теперь заменяет копию целиком. От пустой страницы защищает другое: пустой ответ считается ошибкой и до кэша не доходит.

Чётность недели, не подтверждённая сайтом, помечается

Если на странице не нашлось строки «Сегодня: … верхняя неделя», цикл считается от встроенной даты. Раньше это было неотличимо от чётности, которую подтвердил университет. Теперь в строке состояния так и написано: «чётность недели не подтверждена сайтом».

Запасной разбор карточек снова запасной

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

Доступность

У кнопок ‹ › ⟳ ⋮ ⌕ появились подписи для TalkBack, у виджетов — описание состояния целиком («Идёт Начертательная геометрия, осталось 1 ч 17 мин»). Цели касания увеличены до 44–48 dp. Колонки времени и аудитории больше не обрезаются при системном шрифте 200 % — проверено на эмуляторе при обычном и удвоенном размере.

Честно о виджетах

В README записано, с какой точностью они обновляются, и это измерено, а не предположено: приложение просит разбудить его ровно через 60 секунд, система обещает доставку в окне 45 секунд. Показанная минута может отставать, но никогда не убегает вперёд.

Установка

Скачайте smtu-schedule-2.7.apk и откройте на телефоне. Ставится поверх предыдущей версии — группа, виджеты и кэш сохранятся.

SHA-256  851cea490085d63933edeb4b5456fc40549967c3c67847dc719b13a1365917e2
подпись  CN=SMTU Schedule, OU=Cryptoteep — та же, что у 2.0–2.6
размер   89 КБ · Android 5.0+ · разрешение одно: интернет

Полный список изменений — в CHANGELOG.md.

2.6 — сайт сменил вёрстку, приложение снова читает расписание

Choose a tag to compare

@Cryptoteep Cryptoteep released this 20 Sep 21:20

Университет сменил вёрстку расписания — приложение снова его читает

15 сентября СПбГМТУ переделал страницы расписания, и приложение перестало их понимать. Выглядело это обманчиво спокойно: сайт отвечал «200 ОК», ошибок не было, — просто занятий в ответе не находилось ни одного, и на экране оставалось расписание, сохранённое ещё 8 сентября. Веб-версия показывала то же самое.

Обновитесь: без этого приложение так и будет показывать сентябрьскую копию.

Что поменялось на сайте и что с этим сделано

  • Пропали точные даты занятий. Раньше каждая строка несла список всех дат проведения — по нему строился и просмотр по дням, и границы семестра. Теперь день собирается по правилу «день недели + чётность».
  • Чётность недели приложение берёт из строки, которую сайт печатает сам: «Сегодня: 21 Сентября 2026 года, Понедельник, нижняя неделя». Она запоминается вместе с расписанием, поэтому верна и без сети.
  • Появились занятия «каждую неделю» — третий вид недели помимо верхней и нижней.
  • Аудитория теперь пишется корпусом вперёд («У 167» вместо «167 Корпус У»); поэтажные планы снова открываются на нужном этаже.
  • Разбор прежней вёрстки сохранён — если университет откатит изменение, ничего не сломается.

Чтобы это не повторилось молча

Сборщик данных больше не публикует срез, в котором нет ни одного занятия или пусто больше чем у половины групп: пустой результат теперь считается ошибкой, а не «просто нулём». Веб-версия честно пишет в строке состояния, если свежие данные не пришли и показано сохранённое.

Установка

Скачайте smtu-schedule-2.6.apk и откройте на телефоне. Ставится поверх предыдущей версии — группа и виджеты сохранятся; сохранённое расписание старого формата будет заменено новым при первом обновлении.

SHA-256  31735085dbdcb354961c6886338de1416b969217b6c81584673c96b3a862440e
подпись  CN=SMTU Schedule, OU=Cryptoteep — та же, что у 2.0–2.5
размер   90 КБ · Android 5.0+ · разрешение одно: интернет

Полный список изменений — в CHANGELOG.md.

2.5 — виджеты, планы корпусов и загрузка под VPN

Choose a tag to compare

@Cryptoteep Cryptoteep released this 08 Sep 23:46

Что нового

Три виджета на домашний экран.
Кольцо обратного отсчёта 1×1 — синее убывает, пока идёт пара, жёлтое наполняется на перемене.
Карточка текущей пары 2×1 — предмет, время и «до конца 42 мин · ауд. 167».
Расписание на день 3×2 — что идёт сейчас с полосой отсчёта и список «далее».
Обновляются сами: раз в минуту только во время пары, иначе — к началу следующей или в полночь, так что телефон зря не будят. Переживают перезагрузку и смену часового пояса, а если кэш старше 12 часов — тихо подтягивают расписание.
Ставятся прямо из приложения: ⋮ → «Виджет на домашний экран».

Планы корпусов.
У занятия в корпусе А, Б или У в меню «Ещё» появилась строка «🗺 Корпус У, 5 этаж». Официальный поэтажный план скачивается один раз (2–5 МБ) и дальше открывается без сети. Этаж берётся из номера аудитории, соседние листаются стрелками, масштаб — щипком.

Расписание под VPN появляется за секунды, а не за полминуты.
Сайт университета и резервная копия на GitHub запрашиваются теперь одновременно, у сайта фора 2,5 секунды. Раньше приложение честно ждало ответа сайта двумя попытками по 15 секунд, и на первом запуске с включённым VPN окно выбора группы полминуты выглядело зависшим намертво — это и было «приложение не открывается». Заодно из этого окна теперь можно выйти в любой момент.

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

Установка

Скачайте smtu-schedule-2.5.apk и откройте на телефоне. Android один раз спросит разрешение ставить приложения из этого источника — почему так и как проверить файл.

Ставится поверх предыдущей версии: группа, кэш и виджеты сохранятся.

Проверка файла

SHA-256  d563be729d9ef82fe6ef4bc4505c9d1dba9bb2240d8e1b42f3cf1d6f1c4389b6
подпись  CN=SMTU Schedule, OU=Cryptoteep — та же, что у 2.0–2.4
размер   89 КБ · Android 5.0+ · разрешение одно: интернет

Виджеты, планы корпусов и проверка обновлений — идеи из исходного проекта, переписанные под здешнюю модель данных.

Полный список изменений — в CHANGELOG.md.

2.4 — расписание грузится и под VPN

Choose a tag to compare

@Cryptoteep Cryptoteep released this 08 Sep 17:12

Расписание теперь загружается даже с включённым VPN.

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

Как только сайт снова доступен, обновления идут напрямую с smtu.ru, пометка исчезает.

Так же приходят список групп и расписание преподавателя.

Скачать

SHA-256: b6ff6f526bf129d15f9440240c3199974ba81009ea3ed1d27d0d581ea82206c5
Отпечаток сертификата (SHA-256):
ddc58c2599c8f158c27c55e18ef14cee72a28d3c15f808987a370202568b7add

Ключ подписи прежний — обновление встанет поверх установленного приложения.

2.3 — посекундный счётчик до пары

Choose a tag to compare

@Cryptoteep Cryptoteep released this 08 Sep 09:37

Счётчик до пары теперь идёт посекундно.

Раньше он пересчитывался раз в полминуты и показывал только минуты — если до пары был час, плашка выглядела зависшей: смотришь минуту, ничего не меняется. Теперь видно каждую секунду:

  • идёт пара — «Идёт: Информатика · осталось 23:45»
  • до пары — «Следующая: Матанализ через 4:49:58 · в 17:20»

Так же обновлена веб-версия.

Скачать

SHA-256: fe293a4e312b5b5d1572b435460637834e268dc0ac9e93ba9952e06d811bd661
Отпечаток сертификата (SHA-256):
ddc58c2599c8f158c27c55e18ef14cee72a28d3c15f808987a370202568b7add

Ключ подписи прежний — обновление встанет поверх установленного приложения.

2.2 — счётчик до пары и герб Корабелки на иконке

Choose a tag to compare

@Cryptoteep Cryptoteep released this 08 Sep 08:35

Две вещи, на которые студент смотрит чаще всего: сколько осталось до конца пары и своя ли иконка на экране.

Что нового

  • Счётчик до пары. В шапке видно, сколько осталось до конца идущей пары — «Идёт: Информатика · осталось 23 минуты», — а между парами сколько ждать ближайшую: «Следующая: Матанализ через 1 час 5 минут · в 15:40». Считается от текущего момента и обновляется сам, какой бы день ни был открыт.
  • Герб Корабелки на иконке. Теперь по значку сразу понятно, что это расписание СПбГМТУ.
  • Веб-версия получила тот же счётчик, а ещё — перебор нескольких адресов и кнопку «Повторить», если первая загрузка не прошла из-за VPN или блокировщика.

Скачать

Проверка файла

Ключ подписи тот же, что у 2.0 и 2.1 — обновление встанет поверх установленного приложения.

SHA-256: 9d9650bfdf6eb9d6a27153251cc6d65e89e18e239e0d4fa58f7547c2ad074ed4
Отпечаток сертификата (SHA-256):
ddc58c2599c8f158c27c55e18ef14cee72a28d3c15f808987a370202568b7add

Приложение неофициальное и не связано с СПбГМТУ; все данные расписания принадлежат университету.

2.1 — Android 16 и веб-версия для iPhone

Choose a tag to compare

@Cryptoteep Cryptoteep released this 07 Sep 21:26

Обновление под Android 16 и большая новость: появилась веб-версия для iPhone и тех, кто не хочет ничего устанавливать.

Скачать

  • Android: файл smtu-schedule-2.1.apk ниже, или страница установки — там же объяснение, почему телефон показывает предупреждения при установке APK.
  • iPhone и любой браузер: https://cryptoteep.github.io/smtu-schedule-android/app/ — открывается по ссылке, добавляется на экран «Домой» («Поделиться» → «На экран Домой») и работает офлайн.

Что изменилось

  • Приложение собрано под Android 16 (target SDK 36) и правильно работает с полноэкранной отрисовкой, которую Android 15+ включает принудительно: шапка больше не заезжает под часы и индикатор батареи.
  • Свайп теперь листает расписание в любом месте экрана. Раньше он не работал на пустом дне — то есть ровно там, где нужнее всего.
  • Появилась страница установки с инструкцией, ответами на частые вопросы и всем, чем можно проверить файл, не доверяя автору на слово.
  • Веб-версия — то же расписание в браузере: неделя и день, расписание преподавателей со всеми группами, поиск, тёмная тема, работа без интернета.

Проверка файла

APK подписан тем же ключом, что и версия 2.0, — обновление встанет поверх установленного приложения.

SHA-256: a59d762938987ce4f284238196dce2138756b29cb3571db37b737e65e0d813a1
Отпечаток сертификата (SHA-256):
ddc58c2599c8f158c27c55e18ef14cee72a28d3c15f808987a370202568b7add

Приложение неофициальное и не связано с СПбГМТУ; все данные расписания принадлежат университету.

2.0 — расписание преподавателя с группами и честная чётность недель

Choose a tag to compare

@Cryptoteep Cryptoteep released this 04 Sep 21:59

Первый публичный релиз обновлённой версии. Приложение показывает расписание СПбГМТУ, работает без интернета и весит 53 КБ.

Установка

  1. Скачайте smtu-schedule-2.0.apk ниже — прямо на телефон.
  2. Откройте файл. Android спросит разрешение ставить приложения из этого источника — разрешите.
  3. Запустите и выберите свою группу. Дальше она запомнится.

Нужен Android 5.0 или новее. Разрешение одно — интернет.

Что нового по сравнению с первой версией

Исправлено то, что показывало неверные данные:

  • Расписание преподавателя шло без указания групп — парсер читал карточный вид сайта, единственный, где группа не указана. Теперь читается табличный вид.
  • Чётность недели считалась от даты, зашитой в код, и уезжала после переносов занятий. Теперь цикл «верхняя/нижняя» восстанавливается из точных дат самих пар и не устаревает к следующему семестру.
  • Чётность считалась неверно для дат раньше опорной точки, а сама точка не выравнивалась на понедельник — из-за этого неделя могла «переключаться» в середине.
  • Преподаватель терялся, если сайт печатал его без ссылки на карточку; примечание вида «С 26.10 по 14.12» попадало в поле преподавателя.
  • Загрузка не проверяла код ответа сервера: страница-ошибка молча становилась пустым расписанием.

Добавлено:

  • Просмотр по дням с полосой Пн–Вс и числом пар, свайпы, кнопка «Сегодня».
  • Подсветка идущей сейчас пары; прошедшие сегодня — приглушены.
  • Расписание преподавателя открывается прямо в приложении, со всеми группами; оттуда можно перейти к расписанию любой из них.
  • Поиск по предмету, преподавателю, аудитории, типу занятия и группе.
  • Добавление пары в календарь телефона и отправка дня или недели текстом.
  • Тёмная тема по системной, иконка приложения, понятные пустые состояния.

Под капотом: ядро отделено от Android и покрыто 50 тестами, которые гоняются на реальных страницах smtu.ru; сеть проверяет код ответа, поддерживает gzip и повтор; кэш пишется атомарно. Полный список — в CHANGELOG.md.

Проверка файла

APK подписан ключом автора (схемы v1+v2+v3).

SHA-256: d6705c7e1d4b999d62c281b41ca961b54ccacad00de647be1ad7e113c161c983
Отпечаток сертификата (SHA-256):
ddc58c2599c8f158c27c55e18ef14cee72a28d3c15f808987a370202568b7add

Приложение неофициальное и не связано с СПбГМТУ; все данные расписания принадлежат университету.