\documentclass[a4paper, final]{article} %\usepackage{literat} % Нормальные шрифты \usepackage[14pt]{extsizes} % для того чтобы задать нестандартный 14-ый размер шрифта \usepackage{tabularx} \usepackage{booktabs} \usepackage[T2A]{fontenc} \usepackage[utf8]{inputenc} \usepackage[russian]{babel} \usepackage{amsmath} \usepackage[left=25mm, top=20mm, right=20mm, bottom=20mm, footskip=10mm]{geometry} \usepackage{ragged2e} %для растягивания по ширине \usepackage{setspace} %для межстрочно го интервала \usepackage{moreverb} %для работы с листингами \usepackage{indentfirst} % для абзацного отступа \usepackage{moreverb} %для печати в листинге исходного кода программ \usepackage{pdfpages} %для вставки других pdf файлов \usepackage{tikz} \usepackage{graphicx} \usepackage{afterpage} \usepackage{longtable} \usepackage{float} \usepackage{xcolor} % \usepackage[paper=A4,DIV=12]{typearea} \usepackage{pdflscape} % \usepackage{lscape} \usepackage{array} \usepackage{multirow} \renewcommand\verbatimtabsize{4\relax} \renewcommand\listingoffset{0.2em} %отступ от номеров строк в листинге \renewcommand{\arraystretch}{1.4} % изменяю высоту строки в таблице \usepackage[font=small, singlelinecheck=false, justification=centering, format=plain, labelsep=period]{caption} %для настройки заголовка таблицы \usepackage{subcaption} %для подфигур \usepackage{listings} %листинги \usepackage{xcolor} % цвета \usepackage{hyperref}% для гиперссылок \usepackage{enumitem} %для перечислений \newcommand{\specialcell}[2][l]{\begin{tabular}[#1]{@{}l@{}}#2\end{tabular}} \setlist[enumerate,itemize]{leftmargin=1.2cm} %отступ в перечислениях \hypersetup{colorlinks, allcolors=[RGB]{010 090 200}} %красивые гиперссылки (не красные) % подгружаемые языки — подробнее в документации listings (это всё для листингов) \lstloadlanguages{ SQL} % включаем кириллицу и добавляем кое−какие опции \lstset{tabsize=2, breaklines, basicstyle=\footnotesize, columns=fullflexible, flexiblecolumns, numbers=left, numberstyle={\footnotesize}, keywordstyle=\color{blue}, inputencoding=cp1251, extendedchars=true } \lstdefinelanguage{MyC}{ language=SQL, % ndkeywordstyle=\color{darkgray}\bfseries, % identifierstyle=\color{black}, % morecomment=[n]{/**}{*/}, % commentstyle=\color{blue}\ttfamily, % stringstyle=\color{red}\ttfamily, % morestring=[b]",\ % showstringspaces=false, % morecomment=[l][\color{gray}]{//}, keepspaces=true, escapechar=\%, texcl=true } \textheight=24cm % высота текста \textwidth=16cm % ширина текста \oddsidemargin=0pt % отступ от левого края \topmargin=-1.5cm % отступ от верхнего края \parindent=24pt % абзацный отступ \parskip=5pt % интервал между абзацами \tolerance=2000 % терпимость к "жидким" строкам \flushbottom % выравнивание высоты страниц % Настройка листингов \lstset{ language=python, extendedchars=\true, inputencoding=utf8, keepspaces=true, % captionpos=b, % подписи листингов снизу } \begin{document} % начало документа % НАЧАЛО ТИТУЛЬНОГО ЛИСТА \begin{center} \hfill \break \hfill \break \normalsize{МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ\\ федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский политехнический университет Петра Великого»\\[10pt]} \normalsize{Институт компьютерных наук и кибербезопасности}\\[10pt] \normalsize{Высшая школа технологий искусственного интеллекта}\\[10pt] \normalsize{Направление: 02.03.01 <<Математика и компьютерные науки>>}\\ \hfill \break \hfill \break \hfill \break \large{Лабораторная работа №1}\\ \large{разработка интерфейса пользователя для интерактивного приложения по теме}\\ \large{<<Организация семейного похода за грибами>>}\\ \large{по дисциплине}\\ \large{<<Разработка человеко-машинного интерфейса>>}\\ \hfill \break \hfill \break \end{center} \small{ \begin{tabular}{lrrl} \!\!\!Студент, & \hspace{2cm} & & \\ \!\!\!группы 5130201/20101 & \hspace{2cm} & \underline{\hspace{3cm}} &Тищенко А. А. \\\\ \!\!\!Преподаватель & \hspace{2cm} & \underline{\hspace{3cm}} & Курочкин М. А. \\\\ &&\hspace{4cm} \end{tabular} \begin{flushright} <<\underline{\hspace{1cm}}>>\underline{\hspace{2.5cm}} 2025г. \end{flushright} } \hfill \break % \hfill \break \begin{center} \small{Санкт-Петербург, 2025} \end{center} \thispagestyle{empty} % выключаем отображение номера для этой страницы % КОНЕЦ ТИТУЛЬНОГО ЛИСТА \newpage \tableofcontents \newpage \section*{Введение} \addcontentsline{toc}{section}{Введение} Работа посвящена проектированию интерфейса приложения, помогающего семье организовать поход за грибами: от планирования до подведения итогов. Приложение рассчитано на семьи, которые хотят собирать грибы в пригородных лесах и координироваться в реальном времени. Оно объединяет подготовку (маршрут, снаряжение, приглашения), сопровождение в пути (навигация, контрольные точки, уведомления) и подведение итогов (отчёты, архив маршрутов, семейная «корзина»). Рассматриваются особенности взаимодействия людей разных возрастов, ограничения лесной среды и способы сделать навигацию, связь и обмен находками удобными. Основные задачи исследования: структурировать потребности пользователей, обозначить типовые сценарии и оценить, какие интерфейсные решения снизят риски и упростят работу с приложением. Ключевые проблемы --- нестабильная связь, различия в цифровой грамотности и необходимость оперативно действовать в случае ЧП. \newpage \section{Описание предметной области} % \addcontentsline{toc}{section}{Описание предметной области} Походы за грибами представляют собой сочетание прогулки на природе, наблюдения за лесной средой и сбора съедобных грибов. Этот вид отдыха подходит для семей благодаря умеренной физической нагрузке, исследовательскому интересу и возможности приобщения детей к совместному отдыху на природе. Успешная организация такого похода требует знаний о сезонности, типах лесов, правилах безопасного сбора, а также правильной подготовке участников. \subsection*{Особенности грибных походов} Грибные походы проводятся в лесных массивах с благоприятными условиями для произрастания грибов: смешанных и хвойных лесах, рядом с влажными низинами, опушками и моховыми участками. Такой тип ландшафта распространён во многих регионах России. Сезонность является ключевым фактором: массовое появление грибов обычно происходит после устойчивых дождей при температуре около 15–20°С. Наиболее насыщенный сезон приходится на конец лета и осень, когда в лесах можно встретить как ранние сыроежки, так и поздние осенние опята. \subsection*{Основные виды грибов} В процессе семейного похода предпочтение отдаётся хорошо различимым съедобным видам, например, белому грибу (Рис.~\ref{fig:belyj}), подберёзовику (Рис.~\ref{fig:podberezovik}), подосиновику (Рис.~\ref{fig:podosinovik}), лисичке (Рис.~\ref{fig:lisichki}), маслёнку (Рис.~\ref{fig:maslenok}). Эти виды распространены в большинстве российских регионов. В хвойных массивах особенно часто встречаются лисички и маслята, тогда как в более зрелых сосновых борах нередко попадаются белые грибы. Опасность представляют ядовитые двойники: ложные лисички (Рис.~\ref{fig:lozhnye_lisichki}), желчный гриб, бледная поганка (Рис.~\ref{fig:blednaya_poganka}). Поэтому в семейных походах особое внимание уделяется правильному распознаванию грибов (см. Рис.~\ref{fig:belyj}--\ref{fig:blednaya_poganka}). % Картинки грибов \begin{figure}[h!] \centering \includegraphics[width=0.35\textwidth]{img/белый.jpg} \caption{Белый гриб} \label{fig:belyj} \end{figure} \begin{figure}[h!] \centering \includegraphics[width=0.4\textwidth]{img/лисички.jpg} \caption{Лисички} \label{fig:lisichki} \end{figure} \begin{figure}[h!] \centering \includegraphics[width=0.4\textwidth]{img/ложные_лисички.jpg} \caption{Ложные лисички (ядовитый гриб)} \label{fig:lozhnye_lisichki} \end{figure} \begin{figure}[h!] \centering \includegraphics[width=0.3\textwidth]{img/подберёзовик.jpg} \caption{Подберёзовик} \label{fig:podberezovik} \end{figure} \begin{figure}[h!] \centering \includegraphics[width=0.3\textwidth]{img/подосиновик.jpg} \caption{Подосиновик} \label{fig:podosinovik} \end{figure} \begin{figure}[h!] \centering \includegraphics[width=0.4\textwidth]{img/маслёнок.jpg} \caption{Маслёнок} \label{fig:maslenok} \end{figure} \begin{figure}[h!] \centering \includegraphics[width=0.3\textwidth]{img/бледная_поганка.jpg} \caption{Бледная поганка (ядовитый гриб)} \label{fig:blednaya_poganka} \end{figure} \newpage \phantom{text} \newpage \subsection*{Подготовка к походу} Организация семейного грибного похода начинается с выбора района, анализа погодных условий и планирования маршрута. Лесные массивы, расположенные рядом с удобными транспортными путями, позволяют сократить время в пути и уделить больше внимания сбору грибов. В крупных городах, подобных Санкт\mbox{-}Петербургу, этому способствует наличие лесов на удалении 50--90 минут езды, что делает походы возможными даже в формате однодневных выездов. Перед выходом необходимо проверить прогноз погоды, наличие снаряжения и заряд мобильных устройств. Стандартная экипировка включает нож для грибов, корзину или вентилируемую тару, удобную непромокаемую одежду, защиту от насекомых и небольшую аптечку. Семьи часто берут с собой дополнительно сменную одежду и перекус, особенно при походах с детьми. \subsection*{Процесс поиска и сбора} Во время похода участники ориентируются по тропам, лесным просекам, ручьям и естественным ориентирам. В регионах с густой лесной сетью, важно уделять внимание ориентации, так как ландшафт может быть монотонным. Семейные группы обычно двигаются медленно, позволяя детям участвовать в поиске грибов и наблюдении за природой. Собранный гриб аккуратно срезают ножом (Рис.~\ref{fig:srezanie}) или выкручивают, чтобы сохранить грибницу и избежать её повреждения. Грибы помещают в корзину, где обеспечивается циркуляция воздуха — это особенно важно в районах с повышенной влажностью. % Картинка процесса сбора \begin{figure}[h!] \centering \includegraphics[width=0.5\textwidth]{img/срезание_гриба_ножом.jpg} \caption{Срезание гриба ножом} \label{fig:srezanie} \end{figure} \subsection*{Безопасность при семейных походах} Безопасность — ключевой аспект. Участники должны соблюдать дистанцию, поддерживать визуальный или голосовой контакт и не отходить далеко от маршрута. Семьи активно используют мобильные приложения с картами, особенно в лесах, где местность может выглядеть однообразно и легко потерять ориентиры. Основные меры безопасности включают использование яркой одежды, обработку от клещей, внимательный выбор маршрута и периодические переклички. Не рекомендуется собирать незнакомые грибы или заходить в заболоченные участки, особенно характерные для северных регионов с высоким уровнем влажности. \subsection*{Обработка собранных грибов} После возвращения грибы сортируют, удаляют повреждённые или сомнительные экземпляры и проводят первичную обработку. Влажный климат многих регионов приводит к тому, что грибы быстро теряют свежесть, поэтому их очистку нежелательно откладывать. Большинство видов требует термической обработки перед употреблением. \newpage \section{Цели приложения} Цель приложения --- сделать семейные походы за грибами безопасными, продуктивными и комфортными для всех участников независимо от их возраста и цифровой грамотности. Приложение ориентировано на походы как форму семейного отдыха и совместного времяпрепровождения на природе; сбор грибов рассматривается как приятное дополнение, а не как основная задача заготовки. Приложение призвано превратить поход из разрозненной активности в слаженное семейное мероприятие с чётким планированием, надёжной координацией и возможностью сохранить положительные воспоминания в виде архива маршрутов и находок. Приложение должно помогать пользователям как на этапе планирования, так и на этапе проведения похода. Этап планирования похода включает в себя выбор даты и времени начала похода, определение места сбора и списка участников, построение маршрута с контрольными точками, отправку приглашений и согласование с участниками времени и плана похода. Организатор должен определить транспорт и способ, как добраться до точки сбора, проверить погодные условия на выбранную дату. Необходимо составить список снаряжения и запасной одежды, распределить ответственность за их подготовку между участниками и проверить готовность перед началом похода. Если в походе участвуют дети, требуется определить ответственного взрослого за каждого ребёнка. В ходе этапа проведения похода участники добираются до точки начала похода, осуществляют навигацию в лесу с помощью карт и компаса, используя построенный маршрут и контрольные точки, занимаются сбором грибов, стараются поддерживать связь друг с другом и отслеживать местоположение членов группы для обеспечения безопасности. \section{Заинтересованные лица} \begin{itemize} \item \textbf{Родители-участники похода} --- взрослые члены семьи возрастом от 30 до 50 лет, непосредственно участвующие в сборе грибов и отвечающие за безопасность детей. \item \textbf{Дети и подростки} --- младшие участники похода возрастом от 10 до 18 лет. \item \textbf{Пожилые родственники-грибники} --- опытные грибники старшего поколения возрастом от 60 лет. \item \textbf{Организатор похода} --- ответственное лицо (обычно один из родителей), координирующее планирование и проведение похода. \end{itemize} \section{Ожидания заинтересованных лиц} \begin{itemize} \item \textbf{Родители-участники} хотят обеспечить безопасность детей, не потеряться самим, иметь возможность быстро связаться в случае разделения группы. Ожидают простой интерфейс с крупными элементами, офлайн-карту и быстрый доступ к тревожной кнопке. Важна возможность видеть местоположение всех членов семьи. \item \textbf{Дети и подростки} хотят весело провести время, найти свои первые грибы, не отстать от взрослых и получить признание за находки. Ожидают интересный и понятный интерфейс с игровыми элементами, возможность делиться фотографиями находок и получать достижения за вклад в общую корзину. \item \textbf{Пожилые родственники} хотят поделиться опытом и знаниями о грибных местах, передать традиции, при этом комфортно пользоваться приложением. Ожидают крупные шрифты, минимальное число действий на экране. \item \textbf{Организатор} хочет эффективно спланировать маршрут, проконтролировать сбор снаряжения, координировать действия группы. Ожидает инструменты совместного планирования: систему приглашений, чек-лист снаряжения, контроль состава группы, возможность отслеживать местоположение всех участников и быстро реагировать на отклонения от плана. \end{itemize} % \section{Критерии оценки результата} % Успешность приложения оценивается по достижению каждой из поставленных целей через следующие измеримые показатели: % \textbf{Безопасность походов:} % \begin{itemize} % \item Время отправки экстренного сигнала SOS с координатами --- не более 3 секунд с момента нажатия кнопки. % \item Доля успешных отправок координат при слабой связи (2G/EDGE) --- не менее 90\%. % \item Процент участников, чьё местоположение видно организатору в реальном времени --- не менее 95\%. % \item Среднее время обнаружения значительного отклонения от маршрута (более 500 м) --- не более 2 минут. % \end{itemize} % \textbf{Продуктивность и эффективность:} % \begin{itemize} % \item Время планирования похода от начала до отправки приглашений --- не более 5 минут. % \item Доля походов с заполненным чек-листом снаряжения --- не менее 80\%. % \item Процент найденных грибов с фотофиксацией и геометками --- не менее 60\%. % \item Количество повторных походов на основе сохранённых маршрутов --- увеличение на 40\% по сравнению с планированием «с нуля». % \end{itemize} % \textbf{Комфорт и удобство использования:} % \begin{itemize} % \item Субъективная удовлетворённость пользователей (Net Promoter Score) --- не менее 40. % \item Оценка удобства интерфейса (System Usability Scale) --- не менее 75 баллов. % \item Количество критических ошибок при выполнении основного сценария --- не более одной на пользователя. % \item Доля пользователей, успешно завершивших первый поход без обращения в поддержку --- не менее 85\%. % \end{itemize} % \textbf{Доступность для разных возрастов:} % \begin{itemize} % \item Время освоения базовых функций (создание маршрута, отправка SOS) пожилыми пользователями (65+) --- не более 10 минут с инструкцией. % \item Успешность выполнения критических задач детьми (10--14 лет) без помощи взрослых --- не менее 90\%. % \item Доля пожилых пользователей, использующих голосовые подсказки --- не менее 60\%. % \end{itemize} % \textbf{Работа в условиях ограниченной связи:} % \begin{itemize} % \item Процент функций, доступных в полностью офлайн-режиме --- не менее 70\%. % \item Успешность синхронизации данных после восстановления связи --- не менее 95\%. % \item Объём предварительно закешированных карт на типовой поход --- не более 50 МБ. % \end{itemize} % \textbf{Семейная интеграция и вовлечённость:} % \begin{itemize} % \item Среднее количество участников в походе --- не менее 3 человек. % \item Доля походов с активным участием двух и более поколений --- не менее 70\%. % \item Количество записей в семейном архиве за сезон (май--октябрь) --- не менее 5 походов на семью. % \end{itemize} \section{Планируемые результаты использования приложения} \textbf{Повышение безопасности участников походов:} \begin{itemize} \item Снижение числа случаев потери ориентации и заблудившихся участников благодаря обмену геометками в реальном времени, контрольным точкам и автоматическим уведомлениям об отклонениях от маршрута. \item Сокращение времени реагирования на экстренные ситуации за счёт мгновенной отправки координат службам спасения и волонтёрам с информацией о составе группы и состоянии участников. \item Снижение рисков для детей и пожилых участников через постоянный мониторинг их местоположения родителями и организатором похода. \end{itemize} \textbf{Улучшение качества семейного отдыха:} \begin{itemize} \item Снижение стресса и тревожности у организатора и участников благодаря структурированному планированию, автоматическим напоминаниям и контролю готовности к походу. \item Упрощение координации группы в лесу через визуализацию местоположения всех участников на карте. \item Повышение вовлечённости всех членов семьи в совместную активность за счёт общей корзины находок, обмена фотографиями и возможности отмечать интересные места. \item Сокращение времени на организационные вопросы (сбор снаряжения, согласование времени, выбор маршрута) через централизованное планирование и чек-листы. \item Сохранение приятных воспоминаний через архив маршрутов с фотографиями и заметками, что мотивирует к повторным походам и формированию семейных традиций. \end{itemize} \section{Описание технической платформы} Приложение ориентировано на мобильные устройства с операционными системами Android и iOS, оснащённые модулем GPS для определения местоположения, фотокамерой. Мобильная версия является основной, поскольку участники похода используют телефоны непосредственно в лесу для навигации, фотофиксации грибов и экстренной связи. При проектировании необходимо учесть специфические условия эксплуатации. В лесной местности следует ожидать нестабильное или полностью отсутствующее покрытие мобильной сети, поэтому критически важные функции должны работать в офлайн-режиме с последующей синхронизацией данных. Устройства часто используются в перчатках, при плохой освещённости или под дождём, что требует крупных элементов управления и высокой контрастности интерфейса. Необходимо минимизировать энергопотребление, так как походы длятся несколько часов без возможности подзарядки, а GPS-модуль и постоянная работа экрана существенно расходуют батарею. \section{Формулировка требований к системе} \textbf{Требования к автономной работе и офлайн-режиму:} \begin{itemize} \item Приложение должно поддерживать работу в офлайн-режиме с предварительным кешированием карт выбранного лесного массива (объём 30--50 МБ на регион). \item Система должна обеспечивать работу основных функций (навигация, фиксация находок, мониторинг группы) без подключения к интернету с последующей синхронизацией данных при восстановлении связи. \item Приложение должно автоматически переключаться на компасный режим навигации при слабом GPS-сигнале с указанием направления к последней известной контрольной точке. \end{itemize} \textbf{Требования к планированию и организации:} \begin{itemize} \item Система должна автоматизировать рутинные операции: расчёт времени прохождения маршрута, проверку погоды, напоминания о снаряжении. \item Приложение должно предоставлять инструменты совместного планирования: систему приглашений, чек-листы снаряжения с распределением ответственности, контроль состава группы. \item Система должна автоматически рассчитывать примерное время прохождения между контрольными точками и общую длительность похода. \item Приложение должно отправлять автоматические напоминания участникам о проверке снаряжения за 2 часа до выхода и о зарядке устройств за 5 часов. \end{itemize} \textbf{Требования к навигации и координации:} \begin{itemize} \item Система должна отображать местоположение всех участников группы на карте в реальном времени с обновлением позиций каждые 30 секунд. \item Приложение должно автоматически отправлять уведомления организатору при отклонении участника от группы более чем на заданное расстояние: для детей — 150 метров, для взрослых — 250 метров, для пожилых участников — 200 метров. \item Система должна предоставлять голосовые подсказки с направлением к контрольной точке, предупреждениями об отклонении от маршрута и напоминаниями о времени встречи. \end{itemize} \textbf{Требования к безопасности и экстренным ситуациям:} \begin{itemize} \item Приложение должно обеспечивать отправку сигнала SOS с точными GPS-координатами, составом группы, запасом батареи, последней контрольной точкой и историей перемещений через интеграцию с системой «Система-112». \item Кнопка SOS должна быть доступна с любого экрана приложения и работать даже при минимальной связи. \item Приложение должно предоставлять таймер обратного отсчёта 5 секунд с возможностью отмены для предотвращения случайных нажатий кнопки SOS. \end{itemize} \textbf{Требования к интерфейсу и доступности:} \begin{itemize} \item Система должна предоставлять крупные элементы управления и высокую контрастность интерфейса для использования в перчатках, при плохой освещённости или под дождём. \end{itemize} \textbf{Требования к фиксации и учёту находок:} \begin{itemize} \item Система должна автоматически сохранять GPS-координаты и время и погодные условия. \item Приложение должно создавать общую семейную корзину с отображением всех находок в реальном времени и указанием автора каждой находки. \end{itemize} \textbf{Требования к архивированию и отчётности:} \begin{itemize} \item Приложение должно сохранять пройденный GPS-трек, общее время и расстояние похода, количество и авторство находок. \item Приложение должно поддерживать сохранение маршрутов как шаблонов для повторного использования. \item Приложение должно предоставлять функции для экспорта и отправки фотографий находок. \end{itemize} \textbf{Технические требования:} \begin{itemize} \item Приложение должно поддерживать мобильные устройства с операционными системами Android и iOS, оснащённые модулем GPS и фотокамерой. \end{itemize} \section{Модель пользователей приложения} \textbf{Основные персонажи:} \textbf{Мария Петрова, 38 лет --- организатор семейных походов (персонаж 1).} Проживает в Санкт-Петербурге, Калининский район, работает менеджером в крупной компании. Уверенный пользователь смартфона, активно использует навигаторы, мессенджеры и облачные сервисы. Замужем, двое детей (12 и 7 лет). Семья выезжает за грибами 2--3 раза за сезон, обычно по выходным в сентябре-октябре. \textit{Типичный маршрут:} электричка с Финляндского вокзала до одной из станций Всеволожского района (Токсово, Каменка), время в пути около 2--3 часов. Далее пешком 15--25 минут до знакомых мест в смешанном лесу. Общая продолжительность похода 6--7 часов, включая дорогу и сбор грибов. \textit{Цели и потребности:} эффективно организовать поход --- согласовать дату и состав участников, создать маршрут и чек-лист снаряжения, убедиться, что все взяли необходимое снаряжение. Во время похода контролировать местоположение детей в лесу, иметь возможность быстро отправить сигнал о помощи. Опасается потерять из виду младшую дочь или отца, переживает за разрядку телефонов. Хочет сохранять маршруты для повторных походов и вести семейную статистику находок. \vspace{0.3cm} \textbf{Иван Семёнович Петров, 67 лет --- опытный грибник, дедушка (персонаж 2).} Пенсионер, всю жизнь прожил в Ленинградской области. Собирает грибы с детства, знает грибные места в окрестностях Комарово, Солнечного и Репино. Использует кнопочный телефон для звонков, недавно получил в подарок от дочери бюджетный Android-смартфон, но осваивает его медленно. \textit{Цели и потребности:} поделиться знаниями о грибных местах с внуками, научить их отличать съедобные грибы от ядовитых, показать секретные полянки, где он собирает грибы много лет. Хочет чувствовать себя безопасно в лесу, иметь возможность вызвать помощь простым действием (одна кнопка), не разбираться в сложных меню. Важно крупное отображение информации, голосовые подсказки. Готов использовать смартфон, если интерфейс простой и понятный. \vspace{0.3cm} \textbf{Алиса Петрова, 12 лет --- школьница, любительница фотографии (персонаж 3).} Учится в 7 классе, живёт с родителями в Калининском районе. Активный пользователь смартфона, любит фотографировать природу, общается с друзьями в мессенджерах, играет в мобильные игры. В походы ездит с родителями и дедушкой, для неё это интересное приключение и возможность сделать красивые фото для соцсетей. \textit{Типичный маршрут:} сопровождает семью в походы, обычно идёт рядом с мамой или дедушкой. Любит исследовать окрестности, но иногда увлекается и отходит далеко. После нескольких случаев, когда её искали 15--20 минут, родители настаивают на постоянной связи через приложение. \textit{Цели и потребности:} весело провести время, найти необычные грибы и сфотографировать их для коллекции, получить похвалу от родителей и дедушки за находки. Хочет видеть своё местоположение относительно семьи, делиться фотографиями находок в семейном чате. Не любит, когда родители слишком контролируют, но понимает необходимость безопасности. \vspace{0.3cm} \textbf{Общий контекст использования приложения:} походы проходят в лесных массивах Всеволожского района Ленинградской области (Токсово, Каменка, Васкелово). Местность холмистая, преимущественно сосновые и смешанные леса, множество озёр. Покрытие мобильной сети нестабильное: у станций и населённых пунктов есть 4G, в глубине леса сигнал слабый или отсутствует. Погода осенью переменчива: температура +5..+15°C, часто дожди и туманы, необходимы тёплая одежда и перчатки. Световой день короткий (в октябре темнеет к 18:00), поэтому важно успеть вернуться до темноты. Устройства находятся в чехлах, карманах курток, рюкзаках, часто используются в перчатках при плохой освещённости. % \section{Ментальная модель пользователя, метафоры и идиомы} % Пользователи воспринимают поход как совместное мероприятие с чёткими точками встречи и таймерами возвращения. Интерфейс опирается на метафоры: \textit{карта тропы} (основной экран с маршрутом), \textit{корзина} для списка найденных грибов, \textit{поляна} как место встречи группы и общения (семейный чат). Идиомы: перетаскивание контрольных точек, чек-лист с галочками, крупная красная кнопка SOS, значок компаса для ориентации. \section{Квалификация пользователя} Квалификация пользователей приложения рассматривается по двум ключевым параметрам: владение цифровыми технологиями (навигация, использование мобильных приложений, работа с картами и геолокацией) и знание предметной области (грибы, лесная местность, правила безопасного сбора). Идеальный пользователь должен сочетать оба навыка, однако в реальности семейные группы объединяют людей с разным уровнем компетенций, которые дополняют друг друга: кто-то является экспертом в грибах, но слабо владеет технологиями, другие уверенно работают с приложениями, но нуждаются в консультациях по определению видов. \textbf{Мария (персонаж 1)} --- уверенный пользователь цифровых технологий: свободно владеет мессенджерами, навигаторами, облачными сервисами, быстро осваивает новые приложения. В грибах разбирается на базовом уровне: знает основные съедобные виды (белые, подосиновики, лисички), но в сложных случаях полагается на опыт отца или консультируется по справочникам. Умеет читать карты и пользоваться GPS-навигацией. \textbf{Иван Семёнович (персонаж 2)} --- эксперт в грибной охоте с 50-летним стажем. Безошибочно определяет десятки видов грибов, знает сезоны плодоношения, особенности местности и секретные полянки, накопленные за годы походов. Передаёт традиционные знания о бережном сборе и правилах поведения в лесу. При этом цифровые технологии даются ему сложно: только начал осваивать смартфон, нуждается в крупном шрифте, голосовых подсказках и простых интерфейсах без вложенных меню. Может выполнять простые действия (нажать кнопку SOS, посмотреть карту), но настройку приложения доверяет внучке. \textbf{Алиса (персонаж 3)} --- продвинутый пользователь смартфона для своего возраста: уверенно работает с мессенджерами, соцсетями, камерой, играми. Быстро осваивает новые приложения, понимает интерфейсы, может помочь дедушке разобраться с телефоном. В грибах пока новичок: знает на вид несколько распространённых видов (белые, мухоморы, лисички), но постепенно учится у дедушки. Любит фотографировать находки и потом вместе с семьёй определять виды. Хорошо ориентируется по карте на телефоне, понимает принципы геолокации. \section{Задачи, решаемые приложением} Приложение решает комплекс задач, охватывающих все этапы семейного похода за грибами: от предварительной подготовки до сохранения результатов. Задачи сформулированы исходя из ожиданий заинтересованных лиц и специфики использования приложения в условиях лесной местности с ограниченной связью. \textbf{Задачи этапа планирования и подготовки:} \begin{itemize} \item \textbf{Определение параметров похода} --- помочь организатору выбрать и зафиксировать дату и время начала похода, точку сбора участников и место проведения. \item \textbf{Планирование логистики} --- показать организатору варианты транспорта до точки сбора с расписанием электричек от ближайших станций, рассчитать время в пути до точки сбора. \item \textbf{Информирование о погодных условиях} --- отобразить прогноз погоды на выбранную дату, время восхода и захода солнца, предупредить о неблагоприятных условиях (дождь, низкая температура) и дать рекомендации по снаряжению. \item \textbf{Формирование группы и согласование плана} --- обеспечить отправку приглашений всем участникам с указанием даты, времени, точки сбора и маршрута. Каждый участник должен видеть план похода. \item \textbf{Построение маршрута} --- предоставить инструменты для создания маршрута с контрольными точками, автоматически рассчитать расстояния и время прохождения между точками, общую продолжительность похода. \item \textbf{Совместная подготовка снаряжения} --- обеспечить возможность распределения ответственности за снаряжение между участниками. Каждый член семьи должен видеть свои задачи и подтверждать их выполнение. \item \textbf{Обеспечение автономности} --- предоставить возможность предварительной загрузки офлайн-карт, маршрутов и справочной информации о грибах, чтобы критически важные функции работали без подключения к интернету в лесу. \end{itemize} \textbf{Задачи этапа проведения похода:} \begin{itemize} \item \textbf{Поддержание координации группы} --- позволить всем участникам видеть местоположение друг друга и своевременно получать уведомления о критических событиях (кто-то отстал, пора возвращаться, приближается темнота). \item \textbf{Фиксация и учёт находок} --- обеспечить простой способ документирования найденных грибов с автоматическим сохранением координат, времени и фотографий. Создавать общую семейную корзину, где все видят вклад каждого участника, что повышает вовлечённость и мотивацию. \end{itemize} \textbf{Задачи обеспечения безопасности:} \begin{itemize} \item \textbf{Быстрое реагирование на экстренные ситуации} --- обеспечить мгновенную отправку сигнала о помощи с точными координатами, составом группы и другой критически важной информацией в службы спасения. Кнопка SOS должна быть доступна с любого экрана и работать даже при минимальной связи. \item \textbf{Интеграция с профессиональными службами спасения} --- автоматически передавать структурированные данные о группе в систему 112 при экстренном вызове. \end{itemize} \section{Описание основных процессов} Приложение поддерживает полный цикл семейного похода за грибами, от подготовки до подведения итогов. Ниже описаны ключевые процессы, которые автоматизируются или упрощаются с помощью приложения. \textbf{1. Планирование похода (Мария).} Мария за день до похода открывает приложение на домашнем компьютере или в смартфоне. Выбирает лесной массив из списка знакомых мест (Комарово, Зеленогорск) или находит новое место на карте. Приложение показывает прогноз погоды, время восхода и захода солнца, рекомендуемое время выезда с учётом расписания электричек. Мария строит маршрут: размещает стартовую точку у станции, добавляет 3--4 контрольные точки в лесу (места предполагаемого сбора грибов и встречи группы), указывает финальную точку возврата. Приложение автоматически рассчитывает примерное время прохождения между точками и общую длительность похода. Мария загружает офлайн-карты выбранного региона (приложение показывает объём: ~30--50 МБ) для работы без связи в лесу. Затем отправляет приглашения участникам: мужу, детям, отцу Ивану, указывая время и место сбора. Каждый получает уведомление с маршрутом и может подтвердить участие. \textbf{2. Подготовка снаряжения (Мария + семья).} После подтверждения участников Мария создаёт чек-лист снаряжения: выбирает готовый шаблон "Осенний поход на 4--5 часов" или создаёт свой список. В чек-лист входят: корзины для грибов, ножи, аптечка, вода, перекус, powerbank, дождевики, компас. Мария распределяет ответственность: муж берёт аптечку и воду, она — корзины и перекус, Иван — ножи. Каждый участник видит свои назначения в приложении и отмечает галочками выполнение. За 2 часа до выхода приложение отправляет напоминание всем участникам проверить список. Вечером накануне приходит напоминание зарядить телефоны и powerbank. \textbf{3. Навигация в походе (все участники).} В лесу все участники используют приложение для навигации. На экране отображается карта с текущим положением каждого (Мария видит всех, остальные видят маршрут и контрольные точки), направление к ближайшей контрольной точке (стрелка-компас), расстояние до неё и примерное время прибытия. Иван использует упрощённый режим "Проводник" с крупными элементами и голосовыми подсказками: "Поверните направо через 50 метров", "Вы отклонились от маршрута на 200 метров". Если участник отходит от группы дальше установленного радиуса (для детей — 150 метров, для взрослых — 250 метров, для пожилых — 200 метров), приложение автоматически отправляет уведомление Марии. При слабом GPS-сигнале приложение переключается на компасный режим с указанием направления к последней известной контрольной точке. \textbf{4. Фиксация находок (все участники).} Когда кто-то из семьи находит гриб, он фотографирует его через приложение. Приложение автоматически сохраняет координаты места находки и текущее время. Пользователь может добавить краткую заметку (текстовую или голосовую): "Белый гриб под сосной" или "Здесь много лисичек". Иван добавляет экспертные комментарии: "Это подосиновик, съедобный, лучше собирать молодые". Находка автоматически добавляется в общую семейную корзину с указанием автора. Все участники видят в реальном времени, кто и что нашёл, могут оставлять реакции (лайки, поздравления). Алиса получает баллы за каждую находку и выполнение квестов ("Найди 3 разных вида грибов"). Места с фотографиями сохраняются на карте как "грибные точки" для будущих походов. \textbf{5. Координация и безопасность (Мария + все).} В течение похода Мария периодически проверяет местоположение всех участников на карте. Если кто-то долго не движется, она отправляет сообщение в семейный чат: "Иван, всё в порядке?". При приближении к контрольной точке приложение напоминает о времени встречи. За час до установленного времени возврата (например, в 16:00 нужно быть на станции) приложение предупреждает: "Через час планируется возврат. Текущее расстояние до станции: 2,5 км, примерное время: 45 минут". Если группа отклоняется от графика, Мария корректирует маршрут: пропускает одну контрольную точку, выбирает более короткий путь обратно. Елена дома видит на веб-карте, где находится семья, и периодически получает автообновления: "Группа дошла до точки 2 из 4". \textbf{6. Экстренная ситуация (любой участник → МЧС, доверенные контакты).} Если возникает опасная ситуация (кто-то заблудился, травма, встреча с диким животным), любой участник может нажать крупную красную кнопку SOS в приложении. Приложение показывает таймер обратного отсчёта 5 секунд с возможностью отмены (чтобы избежать случайных нажатий). После подтверждения автоматически отправляется сигнал тревоги в службу спасения через систему 112 и всем участникам группы. Одновременно уведомления получают доверенные контакты (например, родственники дома). Сообщение содержит структурированные данные: точные GPS-координаты, состав группы, запас батареи на устройствах, историю передвижения, медицинскую информацию участников (если указана). Диспетчер службы 112 принимает вызов и передаёт информацию в поисково-спасательную службу МЧС. Спасатели получают через диспетчерскую систему полный пакет данных о группе, могут проанализировать маршрут, определить вероятное направление движения и спланировать зону поиска. При наличии связи диспетчер может связаться с организатором Марией для уточнения деталей ситуации. \textbf{7. Подведение итогов (Мария + семья).} После возвращения домой семья просматривает результаты похода. Мария открывает раздел "Архив" и видит: пройденный GPS-трек на карте, общее время похода (4 часа 20 минут), пройденное расстояние (8,3 км), количество собранных грибов (37 штук), авторство находок (Иван — 18, Мария — 10, Алиса — 9). Все фотографии грибов отображаются на карте как точки, можно кликнуть и увидеть, где именно был найден каждый гриб. Мария сохраняет маршрут как шаблон "Комарово осень 2025" для повторного использования. Экспортирует отчёт в PDF для семейного альбома с фотографиями, картой и статистикой. Елена просматривает результаты на планшете, комментирует фото: "Этот гриб лучше не брать, похож на ложный опёнок". Алиса делится красивыми фотографиями находок в соцсетях, получает новый значок "Грибной следопыт уровень 2". \section{Описание функций} Функции приложения организованы в соответствии с основными процессами похода и призваны автоматизировать рутинные операции, повысить безопасность и удобство использования для всех возрастных групп. \textbf{Функции планирования и подготовки:} \begin{itemize} \item \textbf{Конструктор маршрутов} с возможностью размещения контрольных точек на карте, автоматическим расчётом расстояний и времени прохождения между точками, сохранением маршрутов как шаблонов для повторного использования. \item \textbf{Интеграция с прогнозом погоды и расписанием транспорта}: автоматическое отображение погодных условий для выбранного дня, времени восхода и захода солнца, расписания электричек от ближайших станций. \item \textbf{Кеширование офлайн-карт} выбранного региона с отображением объёма памяти (обычно 30--50 МБ), автоматическим обновлением при изменении маршрута, возможностью предварительной загрузки нескольких регионов. \item \textbf{Совместный чек-лист снаряжения} с готовыми шаблонами ("Осенний поход", "Весенний поход", "С детьми"), распределением ответственности между участниками, отслеживанием выполнения в реальном времени, автоматическими напоминаниями перед выходом. \end{itemize} \textbf{Функции навигации и координации в походе:} \begin{itemize} \item \textbf{Режим реального времени} с отображением местоположения всех участников на карте, обновлением позиций каждые 30--60 секунд (в зависимости от заряда батареи), автоматическими уведомлениями при отклонении участника от группы более чем на заданное расстояние. \item \textbf{Адаптивная навигация}: основной режим с полной картой для уверенных пользователей, упрощённый режим "Проводник" для пожилых с крупными кнопками и увеличенным шрифтом, компасный режим при слабом GPS-сигнале. \item \textbf{Голосовые подсказки} с настраиваемой частотой оповещений: направление к контрольной точке, предупреждения об отклонении от маршрута, напоминания о времени встречи, уведомления о приближении к цели. \item \textbf{Семейный чат} с поддержкой текстовых и голосовых сообщений, быстрыми реакциями (эмодзи, лайки), отправкой фотографий, автоматическим прикреплением геолокации к сообщениям. \item \textbf{Мониторинг состояния группы} для организатора: панель с информацией о заряде батареи на устройствах всех участников, времени последнего обновления позиции, расстоянии до контрольных точек, прогнозируемом времени возврата. \end{itemize} \textbf{Функции фиксации находок:} \begin{itemize} \item \textbf{Камера с автоматическим геотегированием}: при фотографировании гриба автоматически сохраняются GPS-координаты, время находки, погодные условия, создаётся запись в семейной корзине. \item \textbf{Общая семейная корзина} с отображением всех находок в реальном времени, указанием автора, возможностью добавления текстовых или голосовых комментариев, системой реакций (одобрение, вопрос, предупреждение). \item \textbf{Справочник грибов} с описаниями распространённых видов, эталонными фотографиями, указанием съедобности, сезонов плодоношения, двойников, возможностью сравнения найденного гриба с базой. \item \textbf{Карта грибных мест}: автоматическое сохранение координат успешных находок, отображение "грибных точек" на карте с фильтрацией по видам и сезонам, возможность добавления заметок ("здесь было много белых в прошлом году"). \end{itemize} \textbf{Функции безопасности и экстренной связи:} \begin{itemize} \item \textbf{Кнопка SOS} с крупным размером и ярким цветом, доступная с любого экрана, таймером обратного отсчёта 5 секунд для предотвращения случайных нажатий, возможностью быстрой отмены. \item \textbf{Интеграция со службами спасения}: автоматическая передача структурированных данных в систему 112, экспорт координат и треков в стандартных форматах (GPX, KML) для профессионального оборудования МЧС. \end{itemize} \textbf{Функции подведения итогов и архивирования:} \begin{itemize} \item \textbf{Автоматическое формирование отчёта о походе}: сохранение пройденного GPS-трека, статистики (время, расстояние, количество находок), всех фотографий с привязкой к карте и времени. \end{itemize} \section{Описание структуры диалога и его обоснование} Структура диалога приложения построена на основе задач, решаемых пользователями. Приложение два основных состояния, соответствующих этапам планирования и непосредственно проведения похода. В состоянии планирования пользователю отображаются даты, время и место сбора, список участников, список снаряжения, карта с контрольными точками. Все участники похода видят эти данные, но только организатор может их редактировать. Состояние проведения похода разделено на несколько экранов: \begin{itemize} \item Маршрут --- экран с компасом и картой, на которой отображается местоположение других участников похода и контрольные точки. \item Корзина --- просмотр находок группы с фотографиями, координатами и указанием автора. \item Чат --- координация участников через текстовые сообщения. \item Справочник --- информация о видах грибов для идентификации находок. \item SOS --- режим экстренного вызова, доступный по кнопке SOS. Кнопка SOS находится на всех экранах, когда приложение находится в состоянии проведения похода. \end{itemize} Во время активного похода переключение между экранами <<Маршрут>>, <<Корзина>>, <<Чат>> и <<Справочник>> осуществляется через навигационную панель в нижней части экрана. \begin{figure}[h!] \centering \includegraphics[width=1\linewidth]{img/graph.png} \caption{Структура диалога.} \label{fig:graph} \end{figure} \newpage \phantom{text} \newpage \section{Описание структуры команд пользователей} \textbf{Тип 1} - команды без параметров: \begin{itemize} \item Открытие приложения. \item Переход между экранами с помощью навигационной панели. \item Закрытие приложения. \end{itemize} \textbf{Тип 2} - команды с одним оператором. \begin{itemize} \item Выбор участника похода. \item Выбор снаряжения. \item Выбор контрольных точек. \item Выбор даты и времени сбора. \item Выбор места сбора. \item Выбор контрольных точек. \item Фиксация находок. \end{itemize} \begin{figure}[h!] \centering \includegraphics[width=0.8\linewidth]{img/commands.png} \caption{Структура команд пользователей.} \label{fig:commands} \end{figure} \newpage \section{Технология ввода данных} Приложение поддерживает несколько технологий ввода данных, адаптированных под условия использования в лесу и разную цифровую грамотность пользователей. Основным методом взаимодействия являются жесты касания и свайпы по сенсорному экрану. Все формы спроектированы с минимальным количеством обязательных полей: геоданные (координаты, время) и метаданные фотографий подставляются автоматически при фиксации находок. Для упрощения работы пожилым пользователям предусмотрены увеличенные области нажатия (минимум 48×48 пикселей). При работе в перчатках или с мокрым экраном доступен упрощённый режим с крупными элементами и подтверждением критических действий. \section{Описание ошибок пользователей} При использовании приложения пользователи могут допускать ошибки. Ниже описаны основные типы ошибок и методы их смягчения. \textbf{1. Случайное нажатие кнопки SOS.} \textit{Описание:} Пользователь случайно активирует экстренный сигнал при доставании телефона из кармана, надевании перчаток или передаче устройства другому участнику, что приводит к ложной тревоге и необоснованному беспокойству доверенных контактов. \textit{Метод обработки:} Кнопка SOS имеет двухэтапную активацию: после нажатия запускается обратный отсчёт 5 секунд с кнопкой отмены. Вибрация и звуковое предупреждение при активации. \textbf{2. Неверное размещение контрольных точек на маршруте.} \textit{Описание:} Организатор при планировании похода ставит контрольные точки в недоступных местах (болото, густой кустарник, частная территория) или слишком далеко друг от друга, что делает маршрут опасным или невыполнимым. \textit{Метод обработки:} Приложение анализирует размещение точек и выдаёт предупреждения: <<Точка находится на расстоянии более N км от предыдущей>>, <<Участок может быть труднопроходимым>>, <<Рядом отмечена запретная зона>>. Используются данные топографических карт, отзывы других пользователей и информация от лесничих. \textbf{3. Закрытие приложения во время активной навигации.} \textit{Описание:} Пользователь случайно сворачивает или закрывает приложение, пытаясь очистить память телефона, принять звонок или сделать фотографию на основную камеру, теряя доступ к навигации и координатам группы. \textit{Метод обработки:} Приложение продолжает отслеживать местоположение в фоновом режиме и отправляет уведомление <<Навигация активна, вернуться в приложение>> с кнопкой быстрого доступа. При закрытии из режима активной навигации показывается диалог с предупреждением: <<Вы уверены? GPS-отслеживание будет остановлено>>. Для возврата достаточно нажать на постоянное уведомление в шторке. Критические события (отклонение от маршрута, SOS от других участников) вызывают полноэкранное уведомление даже при закрытом приложении. \textbf{4. Опоздание на контрольную точку.} \textit{Описание:} Участник увлекается поиском грибов, не следит за временем и опаздывает на запланированную встречу группы в контрольной точке, что вызывает беспокойство остальных участников и задержку всего похода. \textit{Метод обработки:} Приложение отправляет каскадные напоминания: за 30 минут до контрольного времени, за 15 минут с указанием расстояния до точки и времени в пути, за 5 минут с усиленным звуковым сигналом и вибрацией. При опоздании более чем на 10 минут уведомление получает организатор, который может скорректировать план или связаться с опаздывающим через чат. \textbf{5. Неправильное определение вида гриба.} \textit{Описание:} Неопытный пользователь ошибочно идентифицирует ядовитый гриб как съедобный, добавляет его в корзину с неверной меткой, что может привести к отравлению при употреблении. \textit{Метод обработки:} При добавлении находки приложение анализирует фотографию с помощью алгоритмов компьютерного зрения и предлагает наиболее вероятные виды с указанием уровня уверенности. Для потенциально опасных грибов (бледная поганка, мухомор, ложные опята) выводится красное предупреждение: <<ВНИМАНИЕ! Возможно ядовитый гриб>>. \textbf{6. Недостаточная зарядка батареи телефона.} \textit{Описание:} Пользователь активно использует камеру, экран и GPS, не следит за уровнем заряда, батарея разряжается в середине похода, связь с группой теряется. \textit{Метод обработки:} Приложение прогнозирует время автономной работы на основе текущего расхода энергии и предупреждает: <<При таком расходе заряда хватит на 2,5 часа. До конца похода 4 часа. Рекомендуется включить режим экономии>>. При достижении 30\%, 20\% и 10\% заряда отправляются напоминания с советами (уменьшить яркость, отключить фоновую синхронизацию, использовать режим <<Только навигация>>). Участники видят уровень заряда других членов группы. \textbf{7. Отклонение от запланированного маршрута.} \textit{Описание:} Участник случайно или намеренно уходит в сторону от маршрута, следуя за грибами или исследуя местность, не замечая отклонения, что может привести к потере ориентации и разделению группы. \textit{Метод обработки:} Приложение непрерывно отслеживает положение относительно маршрута и устанавливает <<коридор безопасности>> с дифференцированной шириной в зависимости от возраста участника: для детей — 150 метров, для взрослых — 250 метров, для пожилых участников — 200 метров. При выходе за пределы коридора срабатывает голосовое предупреждение: <<Вы отклонились от маршрута на 150 метров>> и отображается стрелка направления возврата. Организатор и все остальные участники получают уведомления. \section{Описание дизайна экранной формы} Дизайн экранных форм приложения разработан в соответствии с требованиями международного стандарта ISO 9241-161 (Эргономика взаимодействия человек-система. Часть 161: Руководство по элементам графического пользовательского интерфейса) и адаптирован под специфические условия использования: лесная местность, плохая освещённость, использование в перчатках, разный уровень цифровой грамотности пользователей. \subsection{Типографика и шрифты} В приложении используется шрифтовая система, обеспечивающая высокую читабельность в сложных условиях освещения и при быстром просмотре информации на ходу. \textbf{Основной шрифт:} Inter или Roboto --- современные гротескные шрифты без засечек, специально разработанные для экранов с высокой читабельностью при малых размерах. Эти шрифты имеют открытые апертуры (внутренние просветы букв), что улучшает различимость символов при плохом освещении. \textbf{Размеры шрифтов:} \begin{itemize} \item \textbf{Базовый размер текста:} 16--18pt для основного контента (описания, инструкции, названия грибов). Это на 2--4pt больше стандартных 14pt, что обусловлено необходимостью чтения на ходу и при плохой видимости. \item \textbf{Заголовки экранов:} 22--24pt, полужирное начертание, для быстрой идентификации текущего раздела. \item \textbf{Навигационные данные:} 18--20pt для расстояний, времени, направлений --- критически важная информация, которую нужно считывать мгновенно. \item \textbf{Минимальный размер:} не менее 14pt для второстепенной информации (метки времени, подписи к иконкам), что соответствует рекомендациям ISO 9241-161. \end{itemize} \textbf{Межстрочный интервал:} 1.4--1.5 от размера шрифта для улучшения читабельности блоков текста. Для коротких надписей (кнопки, метки) можно использовать 1.2--1.3. \textbf{Насыщенность:} основной текст использует regular (400) или medium (500) начертание, заголовки и активные элементы --- semibold (600) или bold (700). Тонкие начертания (light, thin) не используются из-за плохой видимости на солнце и в тумане. \subsection{Цветовая палитра} Цветовая схема построена на природных оттенках с учётом контрастности и психологического восприятия цветов в контексте лесной прогулки. \textbf{Основные цвета:} \begin{itemize} \item \textbf{Лесной зелёный \#2D5F3F} --- основной цвет бренда, используется для маршрутов на карте, пройденных участков пути, успешных действий. Ассоциируется с природой, безопасностью, спокойствием. \item \textbf{Янтарный оранжевый \#E67E22} --- акцентный цвет для активных элементов, кнопок действия, контрольных точек. Хорошо виден в лесу, привлекает внимание, ассоциируется с теплом и энергией. \item \textbf{Тревожный красный \#C0392B} --- используется исключительно для критических элементов: кнопка SOS, предупреждения об опасности, низкий заряд батареи. Сигнализирует о необходимости немедленных действий. \item \textbf{Небесный голубой \#3498DB} --- для информационных элементов, ссылок, текущего местоположения на карте. Нейтральный, не конфликтует с зелёным фоном карты. \end{itemize} \textbf{Нейтральная палитра (оттенки серого):} \begin{itemize} \item Тёмно-серый \#2C3E50 --- основной цвет текста на светлом фоне. \item Средний серый \#7F8C8D --- второстепенный текст, неактивные элементы. \item Светло-серый \#ECF0F1 --- фон карточек, разделители. \item Почти белый \#FAFAFA --- основной фон приложения. \end{itemize} \textbf{Контрастность:} все текстово-фоновые комбинации обеспечивают коэффициент контрастности не менее 4.5:1 для обычного текста и 3:1 для крупного текста (18pt+), что соответствует уровню AA стандарта WCAG 2.1. Для критических элементов (SOS, предупреждения) используется усиленный контраст 7:1 (уровень AAA). \textbf{Семантика цвета:} \begin{itemize} \item \textbf{Зелёный:} успех, завершение, безопасность (отметка на контрольной точке, подтверждение снаряжения). \item \textbf{Оранжевый:} действие, внимание, активность (кнопки "Начать поход", "Добавить гриб", контрольные точки). \item \textbf{Красный:} опасность, критическая ситуация, запрет (SOS, отклонение от маршрута, разрядка батареи <15\%). \item \textbf{Голубой:} информация, навигация, нейтральное состояние (текущая позиция, информационные подсказки). \item \textbf{Серый:} неактивное, второстепенное, фоновое (отключенные кнопки, пройденные точки). \end{itemize} \subsection{Размеры и отступы} Система размеров построена на модульной сетке с базовым шагом 8pt (пикселей), что обеспечивает визуальную согласованность и упрощает адаптацию под разные размеры экранов. \textbf{Размеры интерактивных элементов:} \begin{itemize} \item \textbf{Минимальный размер касания:} 48×48pt (примерно 9×9 мм на физическом экране) для стандартного режима, что соответствует рекомендациям ISO 9241-161 и позволяет уверенно нажимать пальцем в перчатке. \item \textbf{Основные кнопки действий:} 56×56pt, увеличенный размер для часто используемых элементов ("Добавить гриб", "Открыть чат"). \item \textbf{Кнопка SOS:} 80×80pt, максимальный размер для мгновенного доступа в критической ситуации, постоянно видна в углу экрана. \item \textbf{Расстояние между интерактивными элементами:} не менее 8pt, чтобы избежать случайных нажатий. \end{itemize} \textbf{Отступы и воздух:} \begin{itemize} \item Внутренние отступы кнопок: 12--16pt по вертикали, 20--24pt по горизонтали. \item Отступы между секциями экрана: 24--32pt для визуального разделения. \item Поля экрана от края: 16--20pt, чтобы контент не прижимался к границам. \item Расстояние между строками в списках: 16pt для комфортного чтения и случайных нажатий. \end{itemize} \subsection{Состояния элементов} В соответствии с ISO 9241-161, все интерактивные элементы должны иметь визуально различимые состояния. \textbf{Состояния кнопок:} \begin{itemize} \item \textbf{Обычное (default):} полный цвет заливки, чёткие границы. \item \textbf{Наведение/фокус (hover/focus):} лёгкое затемнение цвета на 10--15\%, появление обводки 3pt голубого цвета для фокуса. \item \textbf{Нажатие (pressed):} затемнение на 20--25\%, лёгкое уменьшение размера (scale 0.95) для тактильного отклика. \item \textbf{Неактивное (disabled):} полупрозрачность 40\%, серый цвет, курсор "not-allowed". \item \textbf{Загрузка (loading):} анимированный спиннер внутри кнопки, текст сохраняется. \end{itemize} \textbf{Индикация выбора:} для элементов списка, переключателей, чекбоксов используется изменение цвета фона (светло-зелёный \#E8F5E9 для выбранного), появление галочки-иконки, увеличение высоты элемента на 2--4pt. \newpage \section{Шаблон экранной формы} Шаблон экранной формы определяет единую структуру для всех основных экранов мобильного приложения. Он обеспечивает визуальную согласованность, предсказуемость навигации и соответствие принципам дизайна, описанным в предыдущем разделе. \subsection{Структура шаблона} Шаблон состоит из следующих обязательных компонентов: \begin{itemize} \item \textbf{Шапка приложения (Header)} --- содержит логотип и название приложения "По грибы". Фиксирована в верхней части экрана, имеет зелёный градиентный фон (\#2D5F3F → \#3A7A52), высоту 64pt. Логотип размером 36×36pt расположен слева, название выполнено белым шрифтом 24pt, полужирное начертание. \item \textbf{Основная область контента (Main)} --- прокручиваемая область для размещения содержимого конкретного экрана. Включает заголовок экрана (22pt, полужирный), описание при необходимости (16pt, серый цвет), карточки с информацией и элементы управления. Отступы от краёв 20pt, отступ снизу 80pt для навигационной панели. \item \textbf{Нижняя навигационная панель (Navigation)} --- фиксирована внизу экрана, высота 72pt, белый фон с тенью. Содержит 5 навигационных кнопок с иконками и подписями: "Маршрут", "Корзина", "Главная", "Чат", "Справочник". Активная вкладка выделяется зелёным цветом текста и подчёркиванием снизу. \item \textbf{Кнопка SOS} --- расположена в правом нижнем углу над навигацией, размер 80×80pt, красный цвет (\#C0392B), круглая форма с белой обводкой 4pt. Постоянно видима на всех экранах, имеет анимацию пульсации для привлечения внимания. \end{itemize} \subsection{Основные элементы интерфейса} Шаблон использует набор унифицированных элементов интерфейса, обеспечивающих визуальную согласованность и предсказуемость взаимодействия. \textbf{Кнопка SOS} --- критически важный элемент безопасности, доступный на всех экранах. Размер 80×80pt обеспечивает уверенное нажатие даже в стрессовой ситуации. Красный цвет \#C0392B мгновенно привлекает внимание, белая обводка 4pt создаёт контраст с любым фоном. \begin{figure}[h!] \centering \includegraphics[width=0.2\linewidth]{img/elements/sos-button.png} \caption{Кнопка SOS} \label{fig:sos-button} \end{figure} \newpage \textbf{Карточка (Card)} --- базовый контейнер для группировки связанного контента. Белый фон \#FFFFFF, радиус скругления 12pt, отступы 16pt. Тень средней интенсивности. Используется для информации о маршруте, участниках, находках. \begin{figure}[h!] \centering \includegraphics[width=0.35\linewidth]{img/elements/card.png} \caption{Карточка контента} \label{fig:card} \end{figure} \textbf{Основная кнопка} --- минимальная высота 48pt (стандарт ISO 9241-161 для сенсорных элементов), радиус 8pt, шрифт 16pt полужирный. Основная кнопка (primary) имеет оранжевый цвет \#E67E22, вторичная (secondary) --- светло-серый \#ECF0F1. При нажатии кнопка уменьшается до 97\% размера для тактильного отклика. \begin{figure}[h!] \centering \includegraphics[width=0.35\linewidth]{img/elements/button-primary.png} \caption{Основная и вторичная кнопки} \label{fig:button-primary} \end{figure} \textbf{Элемент списка} --- используется для участников, находок, контрольных точек. Иконка 40×40pt в скруглённом контейнере слева, заголовок 17pt полужирный, подзаголовок 14pt серый цвет. Отступы 14pt по вертикали, 16pt по горизонтали. Белый фон, радиус 12pt, лёгкая тень. \begin{figure}[h!] \centering \includegraphics[width=0.35\linewidth]{img/elements/list-item.png} \caption{Элемент списка} \label{fig:list-item} \end{figure} \newpage \textbf{Поисковое поле} --- высота 48pt, радиус 12pt, иконка лупы 20pt слева, текст 16pt. Фон белый с лёгкой тенью. Placeholder серого цвета \#7F8C8D. Используется в справочнике грибов для быстрого поиска по названию. \begin{figure}[h!] \centering \includegraphics[width=0.35\linewidth]{img/elements/search-bar.png} \caption{Поисковое поле} \label{fig:search-bar} \end{figure} \textbf{Навигационная панель} --- высота 72pt, 5 кнопок равной ширины. Иконки 24pt, подписи 11pt. Активная вкладка: зелёный цвет текста \#2D5F3F, полужирное начертание, подчёркивание снизу 3pt высотой. Неактивные: серый цвет \#7F8C8D, обычное начертание. \begin{figure}[h!] \centering \includegraphics[width=0.4\linewidth]{img/elements/navigation-bar.png} \caption{Навигационная панель} \label{fig:navigation-bar} \end{figure} \subsection{Визуальные особенности} Шаблон реализует описанную ранее цветовую палитру и типографику: \begin{itemize} \item Карточки контента имеют белый фон, радиус скругления 12pt, лёгкую тень для создания эффекта "слоя". \item Элементы списков включают иконку слева (40×40pt в скруглённом контейнере), заголовок (17pt, полужирный) и подзаголовок (14pt, серый). \item Все интерактивные элементы реагируют на нажатие визуальным эффектом (уменьшение до 95--98\% размера). \item Общий фон приложения --- светло-серый \#FAFAFA для снижения контрастности и уменьшения утомляемости глаз. \end{itemize} Шаблон рассчитан на стандартную ширину мобильного экрана 375pt (iPhone, большинство Android-устройств) и может адаптироваться по высоте от 667pt до 844pt. \begin{figure}[h!] \centering \includegraphics[width=0.4\linewidth]{img/template-screen.png} \caption{Шаблон экранной формы мобильного приложения "По грибы!"} \label{fig:template} \end{figure} \newpage \phantom{text} \newpage \section{Эскизы экранных форм} На основе разработанного шаблона созданы экранные формы для ключевых процессов приложения. Каждая форма реализует описанные ранее функции и соответствует принципам дизайна ISO 9241-161. \subsection{Экран планирования похода} Экран планирования реализует функции конструктора маршрутов и подготовки к походу. Пользователь (организатор) может выбрать маршрут на карте, установить дату и время, просмотреть прогноз погоды и пригласить участников. \textbf{Основные элементы экрана:} \begin{itemize} \item \textbf{Предварительный просмотр карты} --- интерактивная область высотой 200pt с наложенным маршрутом, кнопка "Выбрать на карте" для перехода к полноэкранной карте. \item \textbf{Информация о маршруте} --- карточка с основными параметрами: район (Токсово), расстояние (8.3 км), прогнозируемое время (4ч 30мин). \item \textbf{Селекторы даты и времени} --- крупные нажимаемые элементы с иконками календаря и часов, отображают выбранные значения. \item \textbf{Виджет погоды} --- показывает температуру, описание погоды, время восхода/заката, скорость ветра для выбранной даты. \item \textbf{Список участников} --- карточки с аватарами, именами, ролями и статусами подтверждения. Кнопка "Пригласить ещё" для добавления новых участников. \item \textbf{Кнопки действий} --- "Сохранить черновик" (вторичная) и "Создать поход" (основная, оранжевая). \end{itemize} Экран оптимизирован для быстрого планирования: все ключевые параметры видны без прокрутки, часто используемые действия доступны крупными кнопками. Прогноз погоды помогает организатору принять решение о целесообразности похода. \begin{figure}[h!] \centering \begin{subfigure}[b]{0.30\linewidth} \centering \includegraphics[width=\textwidth]{img/planning-screen.png} \caption{Карта} \label{fig:planning-screen} \end{subfigure} \hfill \begin{subfigure}[b]{0.30\linewidth} \centering \includegraphics[width=\textwidth]{img/planning-screen2.png} \caption{Когда идём?} \label{fig:planning-screen2} \end{subfigure} \hfill \begin{subfigure}[b]{0.30\linewidth} \centering \includegraphics[width=\textwidth]{img/planning-screen3.png} \caption{Участники похода} \label{fig:planning-screen3} \end{subfigure} \caption{Экран планирования похода} \label{fig:planning-screens} \end{figure} \newpage \subsection{Экран навигации в походе} Экран навигации --- основной экран во время активного похода. Занимает полноэкранный режим с картой, поверх которой размещены информационные панели и элементы управления. \textbf{Основные элементы экрана:} \begin{itemize} \item \textbf{Полноэкранная карта} --- отображает местность, маршрут, контрольные точки и местоположение всех участников группы в реальном времени. Текущая позиция пользователя выделена синей пульсирующей точкой с анимацией расширяющегося кольца. \item \textbf{Панель состояния} --- расположена сверху, показывает критически важную информацию: уровень сигнала сети (3G/4G), заряд батареи (78\%), время в пути (2:15). Полупрозрачный белый фон для видимости на любой карте. \item \textbf{Компас-навигатор} --- крупная карточка над группой участников, содержит визуальный компас с направлением движения (стрелка указывает на север), название целевой точки ("До точки встречи №2"), расстояние до неё (1.2 км) и прогнозируемое время прибытия (примерно 25 мин). Зелёный градиентный круг компаса выделяет элемент. \item \textbf{Маркеры на карте} --- визуальные метки: аватары участников (Иван, Алиса), оранжевый круг с иконкой (контрольная точка). \end{itemize} Экран оптимизирован для использования в движении: все элементы управления имеют увеличенный размер (56×56pt), информация сгруппирована в легко читаемые карточки с тенями для отделения от карты. Анимация пульсации текущей позиции помогает быстро найти себя на карте даже при беглом взгляде. \begin{figure}[h!] \centering \includegraphics[width=0.35\linewidth]{img/navigation-screen.png} \caption{Экран навигации в походе с картой и информационными панелями} \label{fig:navigation-screen} \end{figure} \newpage \subsection{Экран семейной корзины} Экран отображает все найденные грибы с возможностью фильтрации, статистику похода и вклад каждого участника. \textbf{Основные элементы:} \begin{itemize} \item \textbf{Статистика} --- карточка с градиентным фоном показывает общее количество грибов (37), количество видов (6) и время в пути (2:15). \item \textbf{Вклад участников} --- три карточки с аватарами и счётчиками находок для каждого члена семьи (Иван: 18, Мария: 10, Алиса: 9). \item \textbf{Карточки находок} --- каждая содержит фото гриба, название, количество экземпляров, автора находки, время и местоположение. Ядовитые грибы выделены предупреждающими бейджами и комментариями. \end{itemize} \begin{figure}[h!] \centering \begin{subfigure}[b]{0.34\linewidth} \centering \includegraphics[width=\textwidth]{img/basket-screen.png} % \caption{Общий вид} \label{fig:basket-screen} \end{subfigure} \hspace{1cm} \begin{subfigure}[b]{0.34\linewidth} \centering \includegraphics[width=\textwidth]{img/basket-screen2.png} % \caption{Детали} \label{fig:basket-screen2} \end{subfigure} \caption{Экран семейной корзины с находками} \label{fig:basket-screens} \end{figure} \newpage \subsection{Экран справочника грибов} Справочник содержит информацию о распространённых съедобных и ядовитых грибах с фотографиями и описаниями. \textbf{Основные элементы:} \begin{itemize} \item \textbf{Поисковая строка} --- быстрый поиск гриба по названию. \item \textbf{Фильтры} --- фильтрация по категориям: все, съедобные, ядовитые, условно-съедобные. \item \textbf{Карточки грибов} --- фотография, название (русское и латинское), бейдж съедобности, сезон сбора, описание признаков, метки мест обитания. Ядовитые грибы выделены красной рамкой и предупреждающим блоком о возможной путанице с похожими съедобными грибами. \end{itemize} \begin{figure}[h!] \centering \includegraphics[width=0.35\linewidth]{img/guide-screen.png} \caption{Экран справочника грибов} \label{fig:guide-screen} \end{figure} \newpage \subsection{Экран семейного чата} Чат обеспечивает оперативную коммуникацию между участниками похода с возможностью отправки текста, фотографий и геолокации. \textbf{Основные элементы:} \begin{itemize} \item \textbf{Область сообщений} --- прокручиваемый список с сообщениями участников, системными уведомлениями о достижении контрольных точек. Сообщения других участников слева с аватарами, свои сообщения справа в зелёных пузырях. \item \textbf{Типы сообщений} --- текстовые, фотографии грибов, карточки с геолокацией (показывают расстояние до отправителя), системные уведомления (начало похода, достижение точек). \item \textbf{Панель ввода} --- кнопки быстрых действий (камера, отправить геолокацию), поле ввода текста, кнопка отправки. Все элементы увеличенного размера для удобного использования в перчатках. \end{itemize} \begin{figure}[h!] \centering \begin{subfigure}[b]{0.34\linewidth} \centering \includegraphics[width=\textwidth]{img/chat-screen.png} \label{fig:chat-screen} \end{subfigure} \hspace{1cm} \begin{subfigure}[b]{0.34\linewidth} \centering \includegraphics[width=\textwidth]{img/chat-screen2.png} \label{fig:chat-screen2} \end{subfigure} \caption{Экран семейного чата} \label{fig:chat-screens} \end{figure} \newpage \section*{Заключение} \addcontentsline{toc}{section}{Заключение} В ходе работы выполнено проектирование интерфейса приложения для организации семейных походов за грибами. Описана предметная область и сформулированы цели приложения. Определены заинтересованные лица и их ожидания. Сформулированы требования к системе. Построена модель пользователей с описанием персонажей и их квалификации. Определены задачи приложения и описаны основные процессы. Перечислены функции приложения. Разработана структура диалога в виде графа состояний. Описаны технологии ввода данных и типичные ошибки пользователей. Разработан дизайн экранных форм: определены цветовая схема, типографика, иконки и элементы управления. Создан шаблон экранной формы и эскизы основных экранов приложения. \newpage \section*{Список литературы} \addcontentsline{toc}{section}{Список литературы} \vspace{-1.5cm} \begin{thebibliography}{0} \bibitem{novikov} Алан Купер. Об интерфейсе. Основы проектирования взаимодействия ИМВ, 2-е изд. Пер. с англ. — 2009. — 688 с. \end{thebibliography} \end{document}