Releases: Cryptoteep/smtu-schedule-android
Release list
2.8 — приложение больше не врёт по мелочам
Приложение больше не врёт по мелочам
Разбор мест, где приложение показывало не то или молча ломалось. Почти всё в этом выпуске найдено с 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 — приложение перестало договаривать за университет
Приложение перестало договаривать за университет
Разбор слабых мест, которые остались после сентябрьской смены вёрстки на сайте. Всё, о чём приложение раньше умалчивало или догадывалось, теперь либо исправлено, либо сказано вслух.
Расписание больше не продолжается в бесконечность
Точных дат у занятий на сайте нет с 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 — сайт сменил вёрстку, приложение снова читает расписание
Университет сменил вёрстку расписания — приложение снова его читает
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
Что нового
Три виджета на домашний экран.
Кольцо обратного отсчёта 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
Расписание теперь загружается даже с включённым VPN.
Сервер университета не пускает часть зарубежных адресов, поэтому под VPN приложение не могло обновиться и показывало старый кэш. Проверять «включён ли VPN» — неправильный вопрос: российский VPN работает нормально, а обычное подключение тоже может не пройти. Поэтому приложение реагирует на результат: если сайт не ответил, оно берёт тот же семестр из резервной копии, которую несколько раз в сутки собирает сборка на GitHub, и честно пишет в строке состояния — «сайт недоступен, данные из резервной копии» с временем этой копии.
Как только сайт снова доступен, обновления идут напрямую с smtu.ru, пометка исчезает.
Так же приходят список групп и расписание преподавателя.
Скачать
- Android: файл ниже или страница установки.
- iPhone и любой браузер: https://cryptoteep.github.io/smtu-schedule-android/app/
SHA-256: b6ff6f526bf129d15f9440240c3199974ba81009ea3ed1d27d0d581ea82206c5
Отпечаток сертификата (SHA-256):
ddc58c2599c8f158c27c55e18ef14cee72a28d3c15f808987a370202568b7add
Ключ подписи прежний — обновление встанет поверх установленного приложения.
2.3 — посекундный счётчик до пары
Счётчик до пары теперь идёт посекундно.
Раньше он пересчитывался раз в полминуты и показывал только минуты — если до пары был час, плашка выглядела зависшей: смотришь минуту, ничего не меняется. Теперь видно каждую секунду:
- идёт пара — «Идёт: Информатика · осталось 23:45»
- до пары — «Следующая: Матанализ через 4:49:58 · в 17:20»
Так же обновлена веб-версия.
Скачать
- Android: файл ниже или страница установки.
- iPhone и любой браузер: https://cryptoteep.github.io/smtu-schedule-android/app/
SHA-256: fe293a4e312b5b5d1572b435460637834e268dc0ac9e93ba9952e06d811bd661
Отпечаток сертификата (SHA-256):
ddc58c2599c8f158c27c55e18ef14cee72a28d3c15f808987a370202568b7add
Ключ подписи прежний — обновление встанет поверх установленного приложения.
2.2 — счётчик до пары и герб Корабелки на иконке
Две вещи, на которые студент смотрит чаще всего: сколько осталось до конца пары и своя ли иконка на экране.
Что нового
- Счётчик до пары. В шапке видно, сколько осталось до конца идущей пары — «Идёт: Информатика · осталось 23 минуты», — а между парами сколько ждать ближайшую: «Следующая: Матанализ через 1 час 5 минут · в 15:40». Считается от текущего момента и обновляется сам, какой бы день ни был открыт.
- Герб Корабелки на иконке. Теперь по значку сразу понятно, что это расписание СПбГМТУ.
- Веб-версия получила тот же счётчик, а ещё — перебор нескольких адресов и кнопку «Повторить», если первая загрузка не прошла из-за VPN или блокировщика.
Скачать
- Android: файл ниже или страница установки.
- iPhone и любой браузер: https://cryptoteep.github.io/smtu-schedule-android/app/ — открывается по ссылке, добавляется на экран «Домой», работает офлайн.
Проверка файла
Ключ подписи тот же, что у 2.0 и 2.1 — обновление встанет поверх установленного приложения.
SHA-256: 9d9650bfdf6eb9d6a27153251cc6d65e89e18e239e0d4fa58f7547c2ad074ed4
Отпечаток сертификата (SHA-256):
ddc58c2599c8f158c27c55e18ef14cee72a28d3c15f808987a370202568b7add
Приложение неофициальное и не связано с СПбГМТУ; все данные расписания принадлежат университету.
2.1 — Android 16 и веб-версия для iPhone
Обновление под 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 — расписание преподавателя с группами и честная чётность недель
Первый публичный релиз обновлённой версии. Приложение показывает расписание СПбГМТУ, работает без интернета и весит 53 КБ.
Установка
- Скачайте
smtu-schedule-2.0.apkниже — прямо на телефон. - Откройте файл. Android спросит разрешение ставить приложения из этого источника — разрешите.
- Запустите и выберите свою группу. Дальше она запомнится.
Нужен Android 5.0 или новее. Разрешение одно — интернет.
Что нового по сравнению с первой версией
Исправлено то, что показывало неверные данные:
- Расписание преподавателя шло без указания групп — парсер читал карточный вид сайта, единственный, где группа не указана. Теперь читается табличный вид.
- Чётность недели считалась от даты, зашитой в код, и уезжала после переносов занятий. Теперь цикл «верхняя/нижняя» восстанавливается из точных дат самих пар и не устаревает к следующему семестру.
- Чётность считалась неверно для дат раньше опорной точки, а сама точка не выравнивалась на понедельник — из-за этого неделя могла «переключаться» в середине.
- Преподаватель терялся, если сайт печатал его без ссылки на карточку; примечание вида «С 26.10 по 14.12» попадало в поле преподавателя.
- Загрузка не проверяла код ответа сервера: страница-ошибка молча становилась пустым расписанием.
Добавлено:
- Просмотр по дням с полосой Пн–Вс и числом пар, свайпы, кнопка «Сегодня».
- Подсветка идущей сейчас пары; прошедшие сегодня — приглушены.
- Расписание преподавателя открывается прямо в приложении, со всеми группами; оттуда можно перейти к расписанию любой из них.
- Поиск по предмету, преподавателю, аудитории, типу занятия и группе.
- Добавление пары в календарь телефона и отправка дня или недели текстом.
- Тёмная тема по системной, иконка приложения, понятные пустые состояния.
Под капотом: ядро отделено от Android и покрыто 50 тестами, которые гоняются на реальных страницах smtu.ru; сеть проверяет код ответа, поддерживает gzip и повтор; кэш пишется атомарно. Полный список — в CHANGELOG.md.
Проверка файла
APK подписан ключом автора (схемы v1+v2+v3).
SHA-256: d6705c7e1d4b999d62c281b41ca961b54ccacad00de647be1ad7e113c161c983
Отпечаток сертификата (SHA-256):
ddc58c2599c8f158c27c55e18ef14cee72a28d3c15f808987a370202568b7add
Приложение неофициальное и не связано с СПбГМТУ; все данные расписания принадлежат университету.