diff --git a/lab1/report/graph.dot b/lab1/report/graph.dot deleted file mode 100644 index 140fa29..0000000 --- a/lab1/report/graph.dot +++ /dev/null @@ -1,46 +0,0 @@ -digraph MushroomHikeApp { - rankdir=TB; - fontsize=12; - node [shape=rectangle, style=rounded, fontsize=11, margin="0.2,0.1"]; - edge [fontsize=9]; - - // --- Основные состояния (соответствуют пунктам меню и задачам) --- - main [label="Главная\n(выбор похода, архив)"]; - route [label="Маршрут\n(планирование, навигация)"]; - basket [label="Корзина\n(находки группы)"]; - chat [label="Чат\n(координация)"]; - guide [label="Справочник\n(виды грибов)"]; - - // --- SOS (красный, доступен отовсюду) --- - sos [label="SOS\n(экстренный вызов)", color="red", fontcolor="red", style="rounded,bold", penwidth=2]; - - // --- Невидимая точка для SOS --- - anyToSOS [shape=point, width=0, height=0, style=invis]; - anyToSOS -> sos [label="из любого\nсостояния", style=dashed, color="red", fontcolor="red"]; - - // --- Переходы между основными состояниями --- - main -> route [label="создать/\nначать поход"]; - route -> main [label="завершить\nпоход"]; - - // Нижняя навигация (доступна из активного похода) - route -> basket [label=""]; - basket -> route [label=""]; - - route -> chat [label=""]; - chat -> route [label=""]; - - route -> guide [label=""]; - guide -> route [label=""]; - - basket -> chat [label=""]; - chat -> basket [label=""]; - - basket -> guide [label=""]; - guide -> basket [label=""]; - - chat -> guide [label=""]; - guide -> chat [label=""]; - - // Фиксация находки (внутри маршрута) - route -> basket [label="добавить\nнаходку", style=dashed]; -} diff --git a/lab1/report/img/graph.png b/lab1/report/img/graph.png index 54c116d..294c5de 100644 Binary files a/lab1/report/img/graph.png and b/lab1/report/img/graph.png differ diff --git a/lab1/report/report.tex b/lab1/report/report.tex index dea93a5..152cf21 100644 --- a/lab1/report/report.tex +++ b/lab1/report/report.tex @@ -552,18 +552,21 @@ \section{Описание структуры диалога и его обоснование} - Структура диалога приложения построена на основе задач, решаемых пользователями. Приложение имеет пять основных состояний, соответствующих пунктам нижней навигационной панели, и одно экстренное состояние SOS: + Структура диалога приложения построена на основе задач, решаемых пользователями. Приложение два основных состояния, соответствующих этапам планирования и непосредственно проведения похода. + + В состоянии планирования пользователю отображаются даты, время и место сбора, список участников, список снаряжения, карта с контрольными точками. Все участники похода видят эти данные, но только организатор может их редактировать. + + Состояние проведения похода разделено на несколько экранов: \begin{itemize} - \item \textbf{Главная} --- начальный экран с выбором похода (создание нового или присоединение к существующему) и доступом к архиву прошлых походов. - \item \textbf{Маршрут} --- планирование похода (создание маршрута, контрольные точки, загрузка офлайн-карт) и активная навигация во время похода (отображение местоположения участников, направление к точкам). - \item \textbf{Корзина} --- просмотр и добавление находок группы с фотографиями, координатами и указанием автора. - \item \textbf{Чат} --- координация участников через текстовые и голосовые сообщения. - \item \textbf{Справочник} --- информация о видах грибов для идентификации находок. - \item \textbf{SOS} --- экстренный режим, доступный из любого состояния одним нажатием. + \item Маршрут --- экран с компасом и картой, на которой отображается местоположение других участников похода и контрольные точки. + \item Корзина --- просмотр находок группы с фотографиями, координатами и указанием автора. + \item Чат --- координация участников через текстовые сообщения. + \item Справочник --- информация о видах грибов для идентификации находок. + \item SOS --- режим экстренного вызова, доступный по кнопке SOS. Кнопка SOS находится на всех экранах, когда приложение находится в состоянии проведения похода. \end{itemize} - Во время активного похода переключение между состояниями Маршрут, Корзина, Чат и Справочник осуществляется через нижнюю навигационную панель. Переход в состояние SOS возможен из любого экрана через кнопку экстренного вызова. Такая структура обеспечивает быстрый доступ к основным функциям и минимизирует когнитивную нагрузку на пользователей. + Во время активного похода переключение между экранами <<Маршрут>>, <<Корзина>>, <<Чат>> и <<Справочник>> осуществляется через навигационную панель в нижней части экрана. \begin{figure}[h!] \centering @@ -572,12 +575,6 @@ \label{fig:graph} \end{figure} - % \section{Описание структуры команд пользователей} - - - % \section{Физическая реализация команд пользователей} - % Команды выполняются через крупные кнопки и свайпы. В режиме «Проводник» используются физические кнопки громкости как горячие клавиши: двойное нажатие --- отправка геометки, долгое удержание --- SOS. Такой подход учитывает перчатки, мокрые экраны и минимизирует вероятность промаха. - \section{Технология ввода данных} Приложение поддерживает несколько технологий ввода данных, адаптированных под условия использования в лесу и разную цифровую грамотность пользователей. Основным методом взаимодействия являются жесты касания и свайпы по сенсорному экрану. Все формы спроектированы с минимальным количеством обязательных полей: геоданные (координаты, время) и метаданные фотографий подставляются автоматически при фиксации находок. Для упрощения работы пожилым пользователям предусмотрены увеличенные области нажатия (минимум 48×48 пикселей). При работе в перчатках или с мокрым экраном доступен упрощённый режим с крупными элементами и подтверждением критических действий. @@ -596,7 +593,7 @@ \textit{Описание:} Организатор при планировании похода ставит контрольные точки в недоступных местах (болото, густой кустарник, частная территория) или слишком далеко друг от друга, что делает маршрут опасным или невыполнимым. - \textit{Метод обработки:} Приложение анализирует размещение точек и выдаёт предупреждения: <<Точка находится на расстоянии более N км от предыдущей>>, <<Участок может быть труднопроходимым>>, <<Рядом отмечена запретная зона>>. Используются данные топографических карт, отзывы других пользователей и информация от лесничих. Предлагаются альтернативные безопасные места поблизости. Максимальное расстояние между точками ограничено. + \textit{Метод обработки:} Приложение анализирует размещение точек и выдаёт предупреждения: <<Точка находится на расстоянии более N км от предыдущей>>, <<Участок может быть труднопроходимым>>, <<Рядом отмечена запретная зона>>. Используются данные топографических карт, отзывы других пользователей и информация от лесничих. \textbf{3. Закрытие приложения во время активной навигации.} @@ -701,51 +698,6 @@ \item Расстояние между строками в списках: 16pt для комфортного чтения и случайных нажатий. \end{itemize} - \subsection{Иконография} - - Визуальные символы играют ключевую роль в навигации по приложению, особенно для пользователей с низкой цифровой грамотностью. - - \textbf{Стиль иконок:} используются иконки в едином стиле "outlined" (контурные) с толщиной линии 2pt. Контурный стиль обеспечивает лучшую видимость на разных фонах и при ярком солнечном свете по сравнению с заливными (filled) иконками. - - \textbf{Размеры иконок:} - \begin{itemize} - \item Стандартный размер: 24×24pt для иконок в кнопках и меню. - \item Крупные иконки: 32×32pt для главных действий на экране. - \item Иконка SOS: 40×40pt, красного цвета с белой обводкой для максимальной заметности. - \end{itemize} - - \textbf{Основные иконки:} - \begin{itemize} - \item \textbf{Компас} (круг со стрелкой) --- навигация, направление движения. - \item \textbf{Корзина с грибами} --- раздел находок, семейная корзина. - \item \textbf{Маркер на карте} --- контрольная точка, место встречи. - \item \textbf{Группа людей} --- участники похода, управление группой. - \item \textbf{Сообщение} --- семейный чат, коммуникация. - \item \textbf{Список с галочками} --- чек-лист снаряжения. - \item \textbf{Молния} --- уровень заряда батареи. - \item \textbf{Антенна с волнами} --- уровень сигнала связи. - \item \textbf{Фотоаппарат} --- сделать фото гриба. - \item \textbf{Тревожный круг SOS} --- экстренная кнопка. - \end{itemize} - - \textbf{Цвет иконок:} по умолчанию тёмно-серый (\#2C3E50) для нейтральных элементов, окрашиваются в акцентные цвета при активации или для семантического значения (красная иконка низкого заряда, зелёная галочка выполнения). - - \subsection{Карточки и контейнеры} - - Информация группируется в визуальные контейнеры для улучшения сканируемости и понимания структуры. - - \textbf{Карточки:} прямоугольные контейнеры с лёгкой тенью (elevation 2--4dp в терминологии Material Design) для создания ощущения "слоя" над фоном. Радиус скругления углов 8--12pt для современного внешнего вида и мягкости восприятия. - - \textbf{Структура карточки контрольной точки:} - \begin{itemize} - \item Заголовок (название точки, 18pt semibold). - \item Расстояние и время прибытия (16pt, серый цвет). - \item Статус (иконка + текст): "Не пройдена" / "Идём сейчас" / "Пройдена". - \item Кнопка действия "Отметиться" (оранжевая, 48pt высотой). - \end{itemize} - - \textbf{Разделители:} тонкие линии (1pt, светло-серый \#ECF0F1) для отделения элементов списка. Используются умеренно, чтобы не создавать визуального шума. - \subsection{Состояния элементов} В соответствии с ISO 9241-161, все интерактивные элементы должны иметь визуально различимые состояния.