Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
  • Loading branch information
shults-s committed Dec 6, 2019
2 parents 62c6bf4 + bcefaea commit 05be79d
Show file tree
Hide file tree
Showing 55 changed files with 1,697 additions and 1,081 deletions.
26 changes: 24 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
# История версий

## [Версия 1.0.1](https://github.com/shults-s/SmtuSchedule/releases/tag/1.0.1) от 06.12.2019

Приложение теперь можно загрузить из [Google Play Маркет](https://play.google.com/store/apps/details?id=shults.smtuschedule).

### Изменено:
- Дополнен текст обучающего экрана;
- Сообщение диалога «О приложении» в соответствии с политикой конфиденциальности и политикой платежей Google Play Маркет.

## Версия 1.0 от 03.12.2019
### Добавлено:
- Обучение использованию приложения;
- Сортировка списка расписаний в меню выбора расписания;
- Автоматическое удаление устаревших (старше недели) журнальных файлов;
- Возможность вместе с расписанием группы загружать расписания преподавателей, фигурирующих в нем;
- Экран приветствия, показываемый во время запуска приложения (особенно актуально в темное время суток).

### Изменено:
- Расписание теперь не отрендерится, если приложение сконфигурировано неправильно.

### Исправлено:
- Ошибка в распознавании расписаний групп с номерами больше 10000 как расписаний преподавателей.

## [Версия 0.9.1](https://github.com/shults-s/SmtuSchedule/releases/tag/0.9.1) от 12.11.2019
### Изменено:
- Диапазон отображаемых дат теперь автоматически перестраивается при достижении любой из двух границ.
Expand All @@ -15,8 +37,8 @@
- Полноценная поддержка Android 5.0;
- Опциональное отображение времени окончания занятий;
- Диалог с перечислением новых возможностей приложения при первом запуске;
- Отображение типа недели просматриваемой даты при удержании пальца на плавающей кнопке;
- Отображение диалога действий над расписанием (удаление, повторная загрузка с сайта) при удержании пальца на его заголовке.
- Отображение типа недели просматриваемой даты по длительному нажатию на плавающую кнопку;
- Отображение диалога действий над расписанием (удаление, повторная загрузка с сайта) по длительному нажатию на его заголовок.

### Изменено:
- Поточные занятия в расписаниях преподавателей теперь группируются;
Expand Down
48 changes: 27 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,36 @@
[![License: CC BY-NC 4.0](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc/4.0/)
# Расписание СПбГМТУ
Мобильное приложение, которое знает расписание занятий любой группы, любого преподавателя в любой день семестра.
- Расписания загружаются (парсятся) прямо с сайта Корабелки;
- Загрузить можно сколь угодно много расписаний, хоть все;
- После загрузки расписания можно просматривать автономно (без доступа к интернету);
- Реализовано автодополнение по списку имен преподавателей при загрузке расписаний;
- Возможен быстрый переход между расписаниями с сохранением просматриваемой даты;
- Текущая пара подсвечивается;

<a href="https://play.google.com/store/apps/details?id=shults.smtuschedule"><img src="https://play.google.com/intl/en_us/badges/static/images/badges/ru_badge_web_generic.png" alt="Страница приложения в Google Play Маркет" width="200" /></a>

## Возможности
- Загрузка произвольного количества расписаний;
- Автономный (без доступа к интернету) просмотр загруженных расписаний;
- Автодополнение имен преподавателей при загрузке расписаний;
- Быстрый переход между расписаниями с сохранением просматриваемой даты;
- Подсветка текущей пары;
- Выводятся только занятия, которые будут в указанный день (с учетом недели: числитель/знаменатель);
- Открытый исходный код, при желании приложение можно скомпилировать самостоятельно.
- Открытый формат хранения расписаний: при необходимости расписание можно отредактировать самостоятельно.

## Скриншоты
![Скриншоты версии 0.9](https://raw.githubusercontent.com/shults-s/SmtuSchedule/master/Screenshots/0.9.png)
## Советы по использованию
- Для возврата на текущую дату при просмотре расписания можно нажать кнопку «Назад»;
- Нажатие на имя преподавателя (группу) вызовет переход на его расписание, либо появится предложение загрузить расписание, если это не было сделано ранее;
- Удалить расписание или повторно загрузить его с сайта можно вызвав диалог действий над расписанием, для этого необходимо удерживать палец на его заголовке.
![Скриншоты](https://raw.githubusercontent.com/shults-s/SmtuSchedule/master/Screenshots/0.9.png)

## Установка и настройка
- В настройках смартфона разрешить установку приложений из неизвестных источников (на данном этапе, пока неясно насколько это приложение будет нужно кому-то, кроме меня, нет смысла выкладывать его в Google Play Маркет);
- Загрузить [последнюю версию](https://github.com/shults-s/SmtuSchedule/releases) установочного APK-файла и запустить его;
- По окончанию установки открыть приложение и в его настройках задать значение параметра «Первый день семестра по числителю».
Ниже приведена инструкция по установке приложения на смартфоны, на которых по каким-либо причинам недоступен Google Play Маркет.
- В настройках смартфона разрешить установку приложений из неизвестных источников;
- Загрузить [последнюю версию](https://github.com/shults-s/SmtuSchedule/releases/latest) установочного APK-файла для своей аппаратной архитектуры и запустить его.

Для корректной работы приложению необходимо разрешение на доступ в интернет (загрузка расписаний) и разрешение доступ к памяти смартфона (сохранение расписаний).

## Совместимость
Поддерживаются смартфоны на Android начиная с версии 5.0 и заканчивая 10 (последняя на данный момент). Поддержки iOS нет, и, скорее всего, не будет.
Поддерживаются смартфоны под управлением операционной системы Android начиная с версии 5.0 и заканчивая 10 (последняя на данный момент). Поддержки iOS нет, и, скорее всего, не будет.

## Редактирование расписаний
При первом запуске приложение создает во внутренней памяти смартфона директорию с названием «Расписание СПбГМТУ». Все загружаемые в дальнейшем с сайта расписания хранятся в этой директории в виде текстовых файлов в формате [JSON](https://ru.wikipedia.org/wiki/JSON). Их можно скопировать на компьютер, отредактировать, а затем закинуть обратно на смартфон. После перезапуска приложения изменения вступят в силу. Простейшее изменение, которое можно внести в расписание – это скрыть занятие. Для этого достаточно поменять значение параметра IsDisplayed с «true» на «false». После внесения изменений код желательно проверить валидатором (например, [этим](https://jsonlint.com/)) на наличие синтаксических ошибок. Расписания с ошибками приложение не открывает, о чем выводит соответствующее сообщение.
При первом запуске приложение создает во внутренней памяти смартфона директорию с названием «Расписание СПбГМТУ». Все загружаемые в дальнейшем с сайта Корабелки расписания хранятся в этой директории в виде текстовых файлов в формате [JSON](https://ru.wikipedia.org/wiki/JSON). Их можно скопировать на компьютер, отредактировать, а затем закинуть обратно на смартфон. Изменения вступят в силу после перезапуска приложения. По завершению редактирования расписание желательно проверить валидатором (например, [этим](https://jsonlint.com/)) на наличие синтаксических ошибок. Расписания с ошибками приложение не открывает, о чем выводит соответствующее сообщение. Подробное описание возникших ошибок сохраняется в журнальный файл в поддиректории «Logs» директории «Расписание СПбГМТУ».

## Обратная связь
Пожелания, вопросы, сообщения об ошибках и все, что касается этого проекта, можно написать [мне в личку](https://vk.com/shults_s).\
В случае обнаружения ошибки, особенно, если приложение вылетело, прошу подробно описывать предшествовавшие этому действия. Во всех нештатных ситуациях приложение записывает файл с отладочной информацией в директорию Logs, лежащую в директории приложения. Этот файл необходимо приложить к сообщению об ошибке. Он не содержит никакой приватной информации, кроме модели устройства и версии Android.
## Немного о проекте
Разработка приложения началась в сентябре 2018 года. Это мой первый опыт в мобильной разработке. Сейчас проект состоит из трех c небольшим тысяч строк кода, разметки, стилей и других ресурсов интерфейса. Приложение написано на языке C# с использованием библиотек [Xamarin.Android](https://docs.microsoft.com/ru-ru/xamarin/android/), [Json.NET](https://www.newtonsoft.com/json) и [HtmlAgilityPack](https://html-agility-pack.net).
Пожелания, вопросы, сообщения об ошибках и обо всем, что касается этого проекта, пишите [мне в личку](https://vk.com/shults_s).

## Пара слов о проекте
Разработка приложения началась в сентябре 2018 года. Это мой первый опыт в мобильной разработке. Проект состоит из четырех с половиной тысяч строк кода, разметки, стилей и других ресурсов интерфейса. Приложение написано на языке C# с использованием библиотек [Xamarin.Android](https://docs.microsoft.com/ru-ru/xamarin/android/), [Json.NET](https://www.newtonsoft.com/json) и [HtmlAgilityPack](https://html-agility-pack.net).
11 changes: 11 additions & 0 deletions SmtuSchedule.Android/Enumerations/FeatureDiscoveryState.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
namespace SmtuSchedule.Android.Enumerations
{
[System.Flags]
internal enum FeatureDiscoveryState
{
ApplicationSettings = 1,
SchedulesDownload = 2,
SchedulesManagement = 4,
ScheduleChangeDate = 8
}
}
2 changes: 1 addition & 1 deletion SmtuSchedule.Android/Interfaces/ISchedulesViewer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace SmtuSchedule.Android.Interfaces
{
interface ISchedulesViewer
internal interface ISchedulesViewer
{
void ShowSchedule(Int32 scheduleId);
}
Expand Down

0 comments on commit 05be79d

Please sign in to comment.