Лет десять назад сайт был продуктом, источником информации. В современном мире сайт всё больше становится похож на приложение, с помощью которого мы, пользователи, получаем не просто информацию, а конкретный результат.
Изначально веб-сайты представляли собой набор страниц, каждая из которых была доступна с помощью браузера. Добавление элементов интерактивности позволило создать такие сервисы как почта, новостная лента, поисковая машина и другие. На некоторых сайтах можно выполнить специализированные расчёты (например, если у вас 3d-принтер Delta, калибровка его потребует использования одного из онлайн-калькуляторов), на других можно подобрать к выбранному цвету дополнительные. В чём же тогда отличие сайта от приложения?
- Уровень интерактива. Обычный сайт имеет навигацию по страницам, прокрутку и гиперссылки, может содержать формы, заполнение которых позволяет собирать данные пользователя для их дальнейшей обработки. Приложение может содержать всё то же самое, но уровень взаимодействия с пользователем будет иной — приложение должно иметь не просто дизайн, но пользовательский интерфейс, подчинённый определённой логике взаимодействий. У приложения возможна более широкая гамма самих взаимодействий (упорядочивание элементов может быть реализовано через перетаскивание, ввод данных — не только через поля формы, но и через ползунки, и т.п.).
- Сайт выполняет простую задачу: предоставляет информацию (иногда — по запросу). Формы для ввода текста и прочие взаимодействия второстепенны. Приложения же «заточены» на помощь пользователю в выполнении конкретной задачи (или нескольких). Даже если приложение работает с контентом, оно будет отличаться от веб-страницы способом взаимодействия с ним.
- Если логины и пароли нужны сайту для систематизации пользователей по уровням доступа (то, что позволено администратору сайта, должно быть недоступно для гостя), то приложения собирают и хранят гораздо больше информации о своих пользователях, поскольку это необходимо для обеспечения их взаимодействия.
- Сайт не «лезет» на ваше устройство, не пытается взаимодействовать с ним, так что проблема отображения страницы на экране решается с помощью масштабирования всей страницы или её прокрутки. Приложение же запросто может изменить вид информации на экране, подстраиваясь к устройству и его особенностям, запросить доступ к камере, данным геолокации или файловой системе устройства.
- Сайт не умеет жить своей жизнью в режиме офлайн — если вы зайдёте в лифт или спуститесь в подвал, любое нажатие кнопки на сайте неизбежно приводит к вызову сервера, и если тот недоступен, введённые данные теряются, а вместо страницы появляется предупреждение об обрыве соединения. Веб-приложение может быть активным и даже выполнять ряд своих функций даже в режиме офлайн, используя онлайн-подключения для синхронизации там, где это доступно и возможно.
- Сайт может содержать вставку информации с другого сайта или просто ссылку на другой сайт, тогда как приложение само запрашивает необходимые ему данные сторонних сервисов и интегрирует их. Например, нажав одну лишь кнопку в приложении, вы можете подключиться к сторонним сервисам, определяющим ваше местоположение, и поделиться им в социальной сети.
Веб-приложениями очень удобно пользоваться, они включают в себя функции, для реализации которых обычным способом требуется наличие нескольких приложений и их активное взаимодействие с пользователем (здесь нажми, чтобы скопировать, потом в этом приложении это нажми, чтобы вставить, ну и так далее). Веб-приложения легко создавать, поскольку они не зависят от конфигурации устройства, на котором будут запущены (ну, почти не зависят). Из минусов — пожалуй, только требовательность к наличию и качеству связи с интернетом, а также ограниченность в плане использования вычислительных мощностей самого устройства (но это не точно). Возможно, именно поэтому мы видим определённую специализацию веб-приложений — ввод данных (а также их сбор с других сервисов), их несложная обработка (преимущественно на сервере), представление результата и сохранение всех промежуточных действий.