- Kotlin 90.5%
- DM 9.5%
| .idea | ||
| app | ||
| gradle/wrapper | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| README.md | ||
| settings.gradle.kts | ||
TimeTableV3 (СевГУ.Расписание)
Минималистичное приложение для просмотра расписания СевГУ.
Приложение НЕ появится ни в GooglePlay, ни в AppGallery, ни в RuStore (из-за особенностей модерации).
UPD: Попробую снова закинуть его в RuStore, так как навгация приведена в порядок, а одна из причин ошибки получения расписания исправлена.
UPD 2: Опять проблемы с модерацией, буду вводить разграничения версий. Версия из репозитория будет поддерживать обновление внутри приложения, а версия для RuStore останется без этого функцонала.
Описание
Моя история взяимодействия с расписанием в СевГУ началась с табличек в Excel (они и сейчас существуют). ... Позже появлялись неофициальные сервисы для более удобного просмотра расписания, но у всех был общий недостаток — требуется открыть браузер, перейти по ссылке и дождаться загрузки.
Среди таких ресурсов появился https://sevsu.samrzhevsky.ru/, в котором реализована возможность получения расписания через API, что сильно упрощает создание сторонних решений, привязанных к общей базе.
Одним их таких сторонних решений и стало данное приложение. Особенностью является возможность быстрого открытия расписания для своей группы, а также некоторые мелкие решения для повышения продуктивности. Мне. как студенту, очень приятно, что на проверку расписания я потратил 5 секунд вместо 15.
К сожалению, на текущем этапе развития приложения не реализовано кэширование, поэтому для просмотра расписания всё ещё требуется доступ в интернет.
Права и разрешения
MANAGE_EXTERNAL_STORAGE— необходимо для скачивания более новой версии (Android 11+)READ_EXTERNAL_STORAGEиWRITE_EXTERNAL_STORAGE— необходимы для вышеописанной цели при Android старше, чем 11 (10 или ниже)REQUEST_PACKAGE_INSTALL— необходимо для вызова установщика пакетов в рамках обновления через NekoLabWRITE_CALENDAR— необходимо для быстрого добавления занятий в календарь (без использования Activity от приложения календаря)
Планы на будущее
CI/CD
Надоело ручками клацать по кнопкам для сборки приложения, поэтому в ближайшее время хочу реализовать автосборку с применением Gitlab CI. Возможно, что также появится полноценный CD, так как у RuStore есть некоторый API от консоли разработчика, что по идее может дать возможность автоматизировать загрузку новых версий в магазин приложений.
Чисто для себя оставлю тут эту ссылку https://habr.com/ru/companies/doubletapp/articles/712490/, чтобы потом можно было изучить механизм CI более подробно и реализовать это. Но сейчас заканчивается семестр, а его надо закрывать в срок, так что потом этим займусь.
RuStore
Для успешного прохождения модерации в RuStore требуется вырезать из приложения функционал, отвечающий за обновления.
Поэтому будет введено разграничение версий, чтобы была возможность выбора между обновлением через RuStore и обновлением без его участия.
Статистика
Для сбора статистики буду прикручивать дополнительный функционал.
Собирать планирую:
- Факт запуска приложения (включая наименование устройства и версию Android);
- Факт смены группы (для анализа востребованности данного функцонала);
Любые дополнения этого перечня будут произведены в данном файле не позднее появления обновления приложения. Кроме того, уведомление о сборе данных будет дублироваться в описании обновления
Развитие приложения
Хочется добавить вкладку с параметрами интерфейса, чтобы можно было управлять логикой отображения и компоновкой макета.
Но перед этим необходимо привести кодовую базу в нормальное состояние.
Буду переводить структуры, получаемые от API к единому формату, чтобы уменьшить нагромождения по коду (перегрузки для разных структур, которые по сути не отличаются ничем, кроме мелких деталей).