Веб приложение - это программа, которая работает в браузере: ее не нужно скачивать из магазина приложений, достаточно открыть адрес. Почта, онлайн-банк, таблицы в облаке, личный кабинет интернет-магазина, CRM - все это веб-приложения, которые открывают через браузер. Пользователь в нем работает с данными: создает, редактирует, отправляет и сразу получает ответ сервера.
Для бизнеса веб-приложение часто оказывается самым быстрым способом дать клиентам и сотрудникам рабочий инструмент. Оно открывается на компьютере и телефоне, обновляется у всех сразу и не проходит модерацию в сторах.
Web приложение: что это простыми словами
Если объяснять простыми словами, что такое веб приложение, удобно сравнить его с сайтом-визиткой. Визитка показывает одну и ту же информацию всем: о компании, услуги, контакты. Веб-приложение показывает каждому свое. После входа пользователь видит свои заказы, документы, баланс и может с ними что-то делать.
Внутри у любого веб-приложения две части. Клиентская часть (frontend) работает в браузере: кнопки, формы, таблицы, графики. Серверная часть (backend) живет на сервере: хранит данные в базе данных, проверяет права, считает, отправляет письма и связывается с другими системами через API (программный интерфейс для обмена данными между программами). Когда пользователь нажимает кнопку, браузер отправляет запрос на сервер, сервер отвечает, и интерфейс обновляется.
Что веб приложение позволяет сделать бизнесу:
- дать клиентам личный кабинет с заказами, оплатами и документами;
- перевести внутренние процессы из таблиц и почты в одну систему;
- запустить онлайн-сервис с подпиской или оплатой за действие;
- открыть доступ партнерам и подрядчикам без установки программ;
- собрать данные из разных систем на одном экране.
Веб приложение: примеры
Примеры окружают нас каждый день. Онлайн-банк в браузере, облачные документы и таблицы, почтовый клиент, видеосвязь без установки, интернет-магазин с корзиной и историей заказов, система записи к врачу. В B2B это CRM, складской учет, портал для дилеров, корпоративный портал для сотрудников, панели аналитики.
На демо-проектах студии это выглядело бы так. Трассер - веб-кабинет диспетчера, где видны рейсы, машины и статусы грузов. Капиталика - учет личных финансов с графиками расходов и планами накоплений. Умникум - онлайн-школа, где ученик смотрит уроки и сдает задания, а преподаватель проверяет работы и ведет журнал.
Чем веб-приложение отличается от сайта и нативного приложения
Веб приложение - это сайт или нет? Вопрос возникает постоянно, потому что снаружи они выглядят одинаково: адрес, браузер, страницы. Граница проходит по тому, что делает пользователь. Сайт в основном информирует, веб-приложение дает работать с данными. Интернет-магазин сочетает оба варианта: каталог ближе к сайту, а корзина, оформление заказа и личный кабинет уже приложение.
С нативным приложением (программой, которую ставят из App Store или Google Play) разница другая:
- установка: веб-приложение открывается по ссылке, нативное нужно скачать;
- обновления: веб обновляется у всех сразу, нативное проходит проверку стора и ждет, пока пользователь обновит его у себя;
- доступ к устройству: нативное полнее работает с камерой, датчиками, фоновыми задачами и уведомлениями;
- плавность: у нативного она выше на сложных интерфейсах и анимациях;
- разработка: одно веб-приложение работает на всех платформах, нативное пишут под iOS и Android отдельно или на кроссплатформенном фреймворке.
Мобильное веб приложение с адаптивной версткой часто закрывает задачу без магазина приложений. Нативное нужно, когда важны офлайн-работа, глубокий доступ к функциям телефона или присутствие в сторах как канал привлечения.
Мобильное веб-приложение: удобство на телефоне
Мобильное веб приложение открывают на небольшом экране, часто одной рукой и на нестабильном интернете. Под эти условия проектируем интерфейс с самого начала.
- Основные кнопки размещаем в нижней части экрана, до которой дотягивается большой палец.
- Таблицы с десятком колонок на телефоне превращаем в карточки, а редкие поля прячем в раскрывающийся блок.
- Формы укорачиваем: подставляем данные из профиля, для телефона и суммы показываем цифровую клавиатуру.
- Проверяем скорость на медленном мобильном интернете и сокращаем объем кода, который браузер загружает при первом входе.
- Сохраняем черновик формы, чтобы потеря связи в лифте не стирала введенные данные.
Тестируем на реальных смартфонах с разными размерами экрана и в популярных мобильных браузерах. Встроенный браузер мессенджера иногда ведет себя иначе, чем обычный, и это лучше узнать до запуска. Если пользователи открывают приложение каждый день, добавляем возможности PWA: иконку на главном экране и push-уведомления. Так веб-приложение по ощущениям приближается к нативному, а выпуск обновлений остается таким же быстрым.
Архитектура web приложений
Современное веб приложение собирают из нескольких слоев: интерфейс в браузере, сервер с бизнес-логикой, база данных, файловое хранилище, очереди задач и интеграции с внешними сервисами. Способ, которым интерфейс получает и показывает данные, определяет тип приложения.
MPA, multi page application (многостраничное приложение). Классическая схема: каждый переход по ссылке загружает с сервера новую страницу целиком. Так устроены многие интернет-магазины и порталы. Плюсы - простая индексация поисковиками и понятная структура. Минус - перезагрузка страницы при каждом действии, интерфейс ощущается медленнее.
SPA, single page application (одностраничное приложение). Браузер загружает приложение один раз, а дальше получает только данные через API и перерисовывает нужную часть экрана на стороне клиента. Интерфейс отзывается быстро, как у программы. Так делают личные кабинеты, CRM, редакторы, панели управления. Популярные фреймворки для SPA: React, Vue, Angular.
SSR, server side rendering (отрисовка на сервере). Гибрид: первая страница приходит с сервера уже готовой, поисковик ее видит, а дальше приложение работает как SPA. Такой подход дают Next.js для React и Nuxt для Vue. Его выбирают, когда нужны и скорость интерфейса, и SEO.
PWA, progressive web application (прогрессивное веб-приложение). Веб-приложение, которое можно установить на главный экран телефона, получать push-уведомления и частично работать без сети. Технически это обычный сайт плюс файл-манифест и service worker (скрипт, который кэширует данные в браузере).
На серверной стороне выбор тоже широкий: Node.js, Python, PHP, Go, Java. Данные чаще всего хранят в PostgreSQL или MySQL, кэш в Redis. Стек подбираем под нагрузку, под команду, которая будет поддерживать проект, и под готовые библиотеки для задачи.
Разработка бэкенда: что это и зачем она веб-приложению
Разработка бэкенда - это создание серверной части, которую пользователь не видит, но от которой зависит почти все, что он делает в приложении. Интерфейс в браузере показывает данные и отправляет запросы на сервер. Решения принимает бэкенд: можно ли этому пользователю открыть документ, хватает ли товара на складе, какую скидку дать клиенту.
Типичные задачи серверной части:
- хранить данные в базе данных и отдавать их интерфейсу через API;
- проверять вход и права: менеджер видит свои сделки, руководитель - все сделки отдела;
- считать стоимость заказа, остатки, начисления, собирать отчеты;
- выполнять фоновые задачи, например ночную выгрузку в 1С или рассылку писем;
- обмениваться данными с внешними сервисами: платежами, доставкой, CRM.
Правило, которое мы соблюдаем в каждом проекте: все проверки дублируются на сервере. Спрятанная в интерфейсе кнопка ничего не защищает, потому что запрос к серверу можно отправить в обход браузера. Права доступа и расчеты живут в серверной части, клиентская часть отвечает за удобство.
Демо-проект Трассер хорошо показывает роль сервера. Диспетчер видит на карте десятки машин, координаты с трекеров приходят каждую минуту. Прием, хранение и раздачу этих данных выполняет бэкенд, интерфейс только рисует точки на карте.
Качество бэкенда проявляется со временем. Пока пользователей десятки, работает почти любой код. Когда их становятся тысячи, медленные запросы к базе, отсутствие кэша и очередей начинают тормозить весь сервис. Поэтому на этапе архитектуры мы заранее решаем, какие данные кэшировать, какие операции вынести в фон и как приложение будет расти вместе с нагрузкой.
Как создать веб приложение?
Создание веб приложения начинается не с кода, а с ответа на вопрос, какую работу пользователь будет в нем делать. Отсюда вытекают роли, экраны, данные и интеграции. Дальше есть три пути, и выбор зависит от задачи и бюджета.
- No-code конструкторы. Подходят для прототипа или простого внутреннего инструмента: форма, таблица, пара статусов. Быстро, но при росте упираются в ограничения платформы и тарифы.
- Готовая коробка с доработкой. CMS или CRM, к которой пишут модули. Выгодно, если процесс близок к типовому.
- Своя разработка. Нужна, когда процесс уникальный, пользователей много, важны интеграции и контроль над данными.
Если выбран третий путь, сразу договоритесь о составе первой версии. Хорошая практика - запустить MVP (минимальную рабочую версию) с одной ключевой функцией, получить реальных пользователей и по их поведению решать, что делать дальше. Так бюджет уходит на то, чем люди действительно пользуются.
Как сделать web приложение?
Технически разработка веб приложения выглядит так. Дизайнер рисует интерфейс в Figma, фронтенд-разработчик верстает его и оживляет на React или Vue, бэкенд-разработчик пишет API и логику на сервере, проектирует базу данных. Тестировщик проверяет сценарии в разных браузерах и на разных экранах. DevOps-инженер настраивает серверы, автоматическую выкладку и мониторинг.
Одному человеку сделать все это можно, если приложение небольшое. Для коммерческого продукта с оплатами, ролями и интеграциями нужна команда, и за этим обычно идут в студию. Как устроена работа у нас, описано на странице разработка веб приложений.
Создание сайта: этапы
Этапы разработки веб-приложения и сайта с логикой одинаковые, разница в глубине каждого шага.
- Аналитика. Выясняем цели, роли пользователей, сценарии, интеграции. Результат - техническое задание и карта экранов.
- Прототип и дизайн. Собираем кликабельный прототип, проверяем логику, затем рисуем интерфейс.
- Архитектура. Выбираем тип приложения (SPA, MPA или SSR), стек, схему базы данных и API.
- Разработка. Параллельно делаем клиентскую и серверную части, подключаем внешние сервисы.
- Тестирование. Проверяем функции, нагрузку, безопасность, работу в разных браузерах.
- Запуск. Выкладываем на сервер, настраиваем домен, SSL-сертификат, резервное копирование и мониторинг.
- Поддержка и развитие. Исправляем ошибки, обновляем библиотеки, добавляем функции по обратной связи.
Самые дорогие ошибки случаются на первом этапе. Если на аналитике не учли роль или интеграцию, на разработке придется переделывать уже написанное.
Со стороны заказчика на каждом этапе нужен человек, который принимает решения: утверждает ТЗ, прототип и дизайн, принимает работу на тестовом сервере. Чем быстрее приходят ответы, тем меньше простоев у команды.
Создание сайтов с нуля
Создание сайтов с нуля означает, что проект пишут без готового движка или шаблона: свой дизайн, своя структура данных, свой код. Для сайта-визитки это лишнее, там справляется конструктор или CMS. Но для веб-приложения с личными кабинетами, сложными правами и интеграциями готовая платформа часто мешает больше, чем помогает: приходится ломать ее логику под свой процесс.
Разработка веб-проекта с нуля оправдана, когда:
- процесс не укладывается в стандартные модули;
- ожидается рост нагрузки и числа пользователей;
- данные нужно хранить у себя или на серверах в России;
- продукт планируется продавать другим компаниям;
- нужна полная свобода в интерфейсе.
С нуля не значит все руками. Разработчики используют фреймворки, библиотеки и готовые сервисы для авторизации, платежей и уведомлений. Своим пишется только то, что отличает продукт.
Как написать сайт на телефоне?
Технически можно. Для Android и iOS есть редакторы кода, а в мобильном браузере открываются онлайн-песочницы вроде CodePen, где пишут HTML, CSS и JavaScript и сразу видят результат. Для учебы и мелких правок этого хватает. Полноценное веб-приложение с сервером, базой данных и сборкой проекта на телефоне делать неудобно: маленький экран, нет нормального терминала, сложно тестировать. Для работы нужен компьютер.
Как сделать сайт в Telegram?
Под сайтом в Telegram обычно понимают одно из двух. Первое - статья в Telegraph: простая страница с текстом и картинками, которую можно опубликовать быстро и без регистрации. Подходит для инструкции или анонса, но интерактивности там нет.
Второе, и для бизнеса куда более полезное, - Telegram Mini App: веб-приложение, которое открывается прямо внутри мессенджера по кнопке бота. Пользователю не нужно ничего устанавливать и регистрироваться, Telegram сам передает приложению данные профиля.
Веб приложение Telegram
Mini App - обычное веб-приложение на HTML, CSS и JavaScript, которое подключают к боту. Порядок такой:
- Создать бота через BotFather и получить токен.
- Разработать веб-приложение и разместить его на сервере с HTTPS.
- Подключить библиотеку Telegram Web Apps, чтобы получать данные пользователя, управлять кнопками и темой оформления.
- Привязать адрес приложения к кнопке меню или к кнопке в сообщении бота.
- На сервере проверять подпись данных, которые передает Telegram, чтобы никто не подделал пользователя.
В Mini App делают магазины, запись на услуги, программы лояльности, игры, внутренние инструменты для сотрудников. Для аудитории, которая живет в Telegram, это короткий путь: не нужно уговаривать человека скачать приложение из стора. Ограничения тоже есть - приложение работает внутри окна мессенджера, и сложному интерфейсу там тесно.
Услуга студии
Разработка веб-приложений на заказ
Разработка веб-приложений на заказ: личные кабинеты, внутренние системы, SaaS и мини-приложения в Telegram на React и Vue с бэкендом, который держит нагрузку.