HTML — язык разметки, на котором строятся сайты. Он сообщает браузеру, что должно появиться на экране: заголовки, абзацы, ссылки, списки — любые блоки, из которых состоит страница. Это не язык программирования, он не содержит исполняемые команды, функции, операторы и так далее. HTML содержит только теги, которые позволяют сформировать каркас страницы и определить, как расположен текст, есть ли в нём ссылки, как расположены иллюстрации, таблицы.
Предположим, что нужно создать онлайн-магазин и протестировать, как пользователи будут работать с электронным каталогом. Создадим обычную таблицу с перечнем товаров из каталога. Для каждого товара укажем минимальный набор информации:
- артикул товара (SKU);
- название товара;
- цену.
Чтобы создать HTML-прототип, который позволит переходить по страницам каталога, нужно сделать несколько HTML-страниц, связанных между собой ссылками или кнопками.
В общем виде HTML позволяет определить структуру документа следующим образом:
- текст (абзацы, заголовки, выравнивание, спецсимволы, начертание);
- ссылки;
- изображения (вставка оригинальных изображений или ссылка на сторонние);
- списки;
- таблицы.
Такого прототипа достаточно, чтобы протестировать логичность экранных переходов.
Language-прототип
У HTML-прототипа есть ограничения: такой прототип подходит только для веб-сервисов. Если задача команды разработки — разработать приложение под конкретную мобильную платформу, для отдельного устройства или десктопа, HTML (достаточно простой вариант разработки прототипа) может не подойти. И тогда нужно выбрать другой способ разработки и разработать language-прототип.
Language-прототип (language — «язык») — это функциональный прототип, который написан с помощью соответствующего выбранной платформе языка программирования (например, JavaScript, C++, Java и других). Он так же, как HTML-прототип, позволяет отобразить внешний вид и поведение будущего ПО, но не только в веб-браузере, а, например, в конкретной операционной системе, на определённой мобильной платформе или устройстве. Кроме того, функциональность language-прототипа может быть гораздо шире.
Например, Apple поддерживает язык программирования Swift, с помощью которого можно разрабатывать приложения для iOS, macOS и tvOS (Apple TV). Поэтому если речь идёт о приложении для iPhone, то логичнее разрабатывать его прототип с использованием языка Swift.
Другой пример — разработка прототипа UI для станков с числовым программным управлением (сложных производственных механизмов). Как правило, они разрабатываются при помощи языков программирования Java или C++.
Language-прототип следует разрабатывать, если:
- Требуемый функционал нельзя реализовать с помощью HTML.
Например, для многопользовательской игры, доступной только на платформе iOS.
- Language-прототип создать дешевле и быстрее, чем HTML.
Например, если задача команды — разработать приложение для iPhone, прототип лучше сразу создавать на языке программирования Swift.
Решение о том, какую в итоге технологию использовать при создании прототипа, принимает команда разработки.
Разберём подробнее два подхода к реализации language-прототипов. Первый подход — связка технологий CSS и JavaScript, которые вместе с HTML позволяют создать сложные функциональные прототипы, применяемые для большинства случаев. Второй подход — использование других языков программирования для реализации прототипа, например, под конкретные мобильные платформы.
Первый способ
HTML + CSS
CSS — язык стилей. Основная задача CSS — сформировать стиль страницы, её визуальную часть. CSS позволяет централизованно задавать цвет, тип и размер шрифтов, ширину абзацев, границы и многое другое в пределах одной или нескольких HTML-страниц.
В таблице стилей, которая создаётся с помощью CSS, определяются правила оформления страницы. Чтобы HTML-страница отображалась с использованием заданных в CSS стилей, на эту страницу, используя HTML-теги, добавляют ссылку, которая ведёт на CSS-файл.
Возможность ссылаться на файл со стилем с любой страницы сайта позволяет сократить объём повторяющихся данных на многостраничных сайтах, обеспечивает гибкость и скорость управления стилями.
Вспомните прототип каталога товаров онлайн-магазина, о котором мы говорили выше.
Представьте, что нужно «приукрасить» таблицу, добавить больше визуализации:
- Изменить шрифт и указать его размеры.
- Указать цвета, которые используются при оформлении таблицы.
- Отцентровать заголовки.
- Указать отступы от краёв.
Чтобы не повторять оформление на каждой созданной HTML-странице, можно вынести его в CSS-файл, задав стили для всех HTML-страниц, и указать на каждой странице, откуда использовать стили.
HTML + JavaScript
JavaScript (или сокращённо JS) — это скриптовый язык программирования, который описывает поведение элементов веб-страницы или браузера. Когда пользователь нажимает на кнопки в интерфейсе и что-то происходит, отвечает за это JavaScript.
JS определяет действия, которые выполняются при загрузке страницы, с помощью написания скриптов. Скрипты можно прописать прямо внутри кода HTML-страницы или подключить их к HTML отдельным файлом.
Благодаря JS интерфейс может реагировать на действия пользователя (клики мыши, нажатия клавиш) и будет открывать всплывающие окна, уведомлять об использовании cookie, а также многое другое.
Вернёмся к прототипу электронного каталога и с помощью JavaScript добавим в него поиск по страницам и возможность перехода между ними. Это поможет пользователю найти в таблице нужный товар быстрее, особенно если в каталоге много позиций.
HTML + CSS + JavaScript
Таким образом, соединив наполнение прототипа (HTML) со стилями (CSS), к которым добавились интерактивные элементы (JS), мы получим полноценный функциональный прототип.