ТЗ на ПО для сенсорного киоска: требования, структура и приемка
Хорошее техническое задание на ПО для сенсорного киоска описывает не набор экранов, а полный цикл работы: кто подходит к устройству, какую задачу выполняет, что происходит без интернета, как приложение восстанавливается после сбоя и по каким тестам заказчик принимает результат.
Короткий ответ: в ТЗ нужны семь обязательных частей: сценарии пользователей, оборудование и ОС, touch-интерфейс, данные и интеграции, offline-режим, kiosk mode с восстановлением, измеримые критерии приемки. Макетов без этих условий недостаточно для надежного публичного терминала.
Почему обычного ТЗ на сайт недостаточно
Сайт работает в браузере пользователя, а киоск - на конкретном устройстве в физической среде. У него есть экран заданного размера, корпус, способ установки, периферия и ограниченный доступ к обслуживанию. Посетитель может нажимать на экран несколько раз, прерывать сценарий или оставлять форму незавершенной.
Поэтому в проекте появляются требования, которых обычно нет у корпоративного сайта:
- автоматический запуск приложения после включения;
- запрет выхода в операционную систему;
- восстановление после потери сети и питания;
- локальное хранение критичных материалов;
- очистка данных между пользовательскими сессиями;
- управление подключенной периферией;
- удаленное обновление и диагностика;
- тестирование на точной модели оборудования.
Если эти условия выясняются после разработки интерфейса, приходится менять архитектуру, а не только верстку.
1. Паспорт проекта и границы системы
Начните ТЗ с короткой таблицы. Она защищает проект от разных трактовок слов «панель», «приложение» и «админка».
| Параметр | Что зафиксировать |
|---|---|
| Назначение | Навигация, каталог, регистрация, очередь, презентация, оплата или другой сценарий |
| Место работы | Выставка, улица, офис, торговый зал, аэропорт, медицинская организация |
| Пользователи | Посетитель, оператор, администратор контента, технический специалист |
| Оборудование | Модель, диагональ, разрешение, ориентация, тип сенсора, компьютер |
| ОС | Windows, Android, Linux, версия и политика обновлений |
| Сеть | Постоянная, нестабильная, закрытый контур или полное отсутствие интернета |
| Периферия | Принтер, камера, сканер, NFC, платежный терминал, датчики |
| Управление | Локальная админка, облачная панель, API или загрузка файлов |
Укажите, что не входит в первую версию. Например: онлайн-оплата, распознавание документов или централизованное управление парком устройств могут быть отдельными этапами. Это помогает не превращать пилот в бесконечный список возможностей.
2. Пользовательские сценарии
Для каждого типа пользователя опишите цель, точку входа и завершение. Вместо «пользователь смотрит каталог» нужна последовательность:
- Киоск показывает стартовый экран.
- Посетитель выбирает категорию.
- Открывает карточку объекта.
- Смотрит галерею или видео.
- Оставляет контакт либо возвращается к списку.
- После завершения или бездействия приложение очищает сессию и возвращается на старт.
Рядом опишите исключения: сеть пропала, видео не загрузилось, пользователь закрыл форму, сервер вернул ошибку, устройство перезапустилось. Для каждого исключения нужен ожидаемый результат, а не только текст ошибки.
Таблица сценария для ТЗ
| Поле | Пример формулировки |
|---|---|
| Триггер | Пользователь нажал «Найти объект» |
| Предусловие | Загружен локальный справочник объектов |
| Основной путь | Фильтр → список → карточка → маршрут |
| Ошибка | Сервер недоступен |
| Поведение | Показать локальные данные и отметить время последней синхронизации |
| Завершение | Возврат на старт через заданный период бездействия |
Такую таблицу можно проверять тестом. Фраза «интерфейс должен быть удобным» приемочного критерия не создает.
3. Требования к touch-интерфейсу
Сенсорный интерфейс проектируют для пальца, а не для курсора. В нем нельзя полагаться на hover, мелкие иконки или точное попадание в текстовую ссылку.
В WCAG 2.2 минимальная цель для веб-интерфейса описана как область 24 на 24 CSS-пикселя либо достаточное расстояние от соседних целей. Усиленный критерий использует 44 на 44 CSS-пикселя. Эти числа полезны как отправная точка, но не заменяют проверку на физическом устройстве: киоск может стоять под углом, использовать крупный экран или обслуживать людей с разными возможностями.
В ТЗ зафиксируйте:
- минимальный размер и расстояние между активными элементами;
- допустимые жесты: одиночное касание, прокрутка, масштабирование, перетаскивание;
- отсутствие функций, доступных только по наведению;
- положение основной навигации и кнопки возврата;
- экранную клавиатуру, маски и валидацию полей;
- тайм-аут бездействия и очистку сессии;
- доступность основных действий при выбранной высоте установки;
- поведение при нескольких одновременных касаниях.
Приемку проводите на целевой диагонали. Даже корректный макет может оказаться неудобным, если кнопка находится за пределами комфортной зоны руки.
4. Kiosk mode и восстановление
Kiosk mode должен ограничивать публичного пользователя приложением и обеспечивать предсказуемый запуск устройства.
Microsoft разделяет Windows-конфигурации на single-app kiosk и ограниченный multi-app сценарий. В single-app режиме назначенное приложение работает полноэкранно, а пользователь не получает обычный рабочий стол. Для desktop-приложений и UWP/Edge используются разные механизмы, поэтому режим выбирают после определения типа приложения и редакции Windows.
На Android для выделенных устройств применяется Lock Task Mode. Он требует управляемой конфигурации устройства и списка разрешенных приложений; простой полноэкранный режим не дает того же уровня ограничения.
В ТЗ ответьте на вопросы:
- кто и как входит в сервисный режим;
- запускается ли приложение автоматически;
- что происходит после аварийного завершения;
- можно ли открыть системные настройки;
- как устанавливаются обновления;
- где хранятся логи;
- кто получает уведомление о недоступности;
- как вернуть предыдущую версию.
Не привязывайте решение к слову «киоск» без проверки ОС и типа приложения. Настройка, доступная на одной редакции системы, может отсутствовать на другой.
5. Offline-режим и синхронизация
Требование «должно работать без интернета» нужно разложить на функции. Не все операции обязаны быть доступны офлайн.
| Функция | Возможный режим без сети | Что определить в ТЗ |
|---|---|---|
| Каталог и медиа | Локальная копия | Объем, формат и правила обновления |
| Поиск | Локальный индекс | Какие поля доступны, как часто обновляется |
| Форма заявки | Очередь на отправку | Шифрование, повторная отправка, удаление |
| Карта | Предзагруженные данные | Масштаб, маршруты, актуальность |
| Оплата | Обычно требует отдельного сценария | Поведение при недоступности провайдера |
| Аналитика | Локальный буфер событий | Лимит, дедупликация, время синхронизации |
Обязательно опишите конфликт данных. Если контент обновился на сервере, а киоск отправляет отложенную заявку, система должна понимать, что можно объединить, а что требует ручной проверки.
В кейсе интерактивной карты для аэропорта можно посмотреть пример проекта, где важны полноэкранный touch-интерфейс, карта, мультимедийный контент и управление данными. Для дорожного проекта мы использовали локальную и облачную логику приложения для сенсорной панели.
6. Интеграции и данные
Для каждой интеграции перечислите систему, протокол, направление обмена и ответственного владельца. Формулировка «интеграция с CRM» не объясняет, какие данные и в какой момент передаются.
Минимальное описание интеграции содержит:
- источник и получателя;
- метод авторизации;
- состав полей и обязательность;
- частоту или событие обмена;
- тайм-аут и повторные попытки;
- идентификатор для защиты от дублей;
- журнал ошибок;
- тестовый контур и контакты владельца API.
Если терминал собирает персональные данные, отдельно определите согласие, срок локального хранения, передачу, очистку после сессии и доступ технического персонала. Не оставляйте эти решения только на уровне текста политики: они влияют на архитектуру приложения.
7. Администрирование и обновления
Контент публичного киоска меняется после запуска. В ТЗ заранее укажите, кто сможет:
- менять тексты, изображения и видео;
- публиковать изменения на одно или несколько устройств;
- видеть статус синхронизации;
- откатывать ошибочную публикацию;
- управлять расписанием показа;
- получать логи и технические уведомления.
Для одного устройства может хватить локального импорта подготовленного пакета. Для сети киосков обычно требуется централизованное управление, версии контента и состояние каждого терминала.
8. Критерии приемки
Каждое важное требование превратите в наблюдаемый тест. Пример блока приемки:
- После подачи питания приложение открывается без действий оператора.
- Пользователь не может выйти на рабочий стол штатными жестами и клавишами.
- При отключении сети каталог и поиск продолжают работать на локальных данных.
- Заявка сохраняется в локальной очереди и отправляется после восстановления связи один раз.
- После периода бездействия приложение очищает введенные данные и возвращается на стартовый экран.
- После аварийного закрытия приложение автоматически восстанавливается.
- Администратор видит версию контента и время последней синхронизации.
Добавьте матрицу устройств, разрешений и периферии. Приложение, проверенное только в браузере разработчика, нельзя считать принятым для эксплуатации на конкретной панели.
Что передать разработчику до оценки
Для первичной оценки достаточно собрать:
- Описание задачи и места эксплуатации.
- Фото или точную модель оборудования.
- Один главный и несколько вторичных сценариев.
- Черновой список экранов.
- Требования к offline и kiosk mode.
- Список интеграций и контакты владельцев API.
- Форматы контента и пример объема данных.
- Срок пилота и критерии успешности.
После этого команда сможет оценить архитектуру, прототип и риски. Если оборудование еще не выбрано, разработку и подбор устройства лучше вести совместно. Для временного мероприятия отдельно доступна аренда интерактивных панелей.
Нужно оценить ПО для сенсорного киоска?
Проверим сценарии, оборудование, offline-режим и интеграции, затем предложим архитектуру и состав первой версии.
FAQ
Нужен ли прототип до разработки ПО для киоска
Да. Кликабельный прототип позволяет проверить последовательность экранов и расположение действий до программирования. Но финальный touch-UX все равно проверяют на устройстве нужного размера.
Что выбрать для киоска: веб-приложение или desktop-приложение
Веб-приложение удобно для обновления и интеграций, desktop-приложение дает больше контроля над устройством и локальными ресурсами. Выбор зависит от ОС, offline-требований, периферии и способа централизованного управления, а не от моды на стек.
Можно ли сделать киоск на обычном сайте
Можно для простого каталога, если сайт адаптирован под touch, полноэкранный режим и нестабильную сеть. Для периферии, локального хранения, надежного восстановления и закрытого контура обычно нужна отдельная программная оболочка или приложение.
Нужно ли описывать в ТЗ конкретную модель панели
Да, если она уже выбрана. Разрешение, ориентация, ОС, порты, способ передачи касания и периферия влияют на реализацию и приемку. Если модель неизвестна, задайте диапазон характеристик и обязательную проверку после выбора.
Как проверить offline-режим
Не имитируйте его только настройкой в браузере. Отключите реальную сеть на устройстве, пройдите все разрешенные сценарии, создайте отложенные данные, перезапустите терминал и затем проверьте корректную синхронизацию без дублей.
Что сильнее всего влияет на стоимость разработки
Количество сценариев, интеграции, offline-логика, периферия, централизованное управление и требования к отказоустойчивости. Одна витрина без интеграций и сеть терминалов с удаленным мониторингом - разные по архитектуре проекты.
Полезно по теме
- Разработка ПО для сенсорных панелей и киосков
- Как выбрать интерактивную панель для выставки
- Кейс: интерактивная карта для аэропорта
- Кейс: приложение для сенсорной панели дорожного проекта
