Виды веб-приложений
Разбираем основные способы организации веб-приложения и чем они отличаются.
Время чтения: 9 мин
Открыть/закрыть навигацию по статье
- Кратко
- Многостраничные приложения
- Готовые веб-страницы
- Динамическая генерация HTML
- Client Side Rendering (CSR)
- Server side rendering (SSR)
- Static site generation (SSG)
Обновлено 14 октября 2022
Кратко
Все веб-приложения делаются с помощью одних и тех же технологий: HTML, CSS и JavaScript. Однако есть много способов организации работы приложения. Выбор способа зависит от цели приложения и пользовательского опыта, которого мы хотим добиться. Хотя основных подхода всего два: многостраничные приложения и Single Page Applications, каждый из них делится на подвиды.
Статические многостраничные приложения состоят из набора статичных страниц. Их просто разрабатывать, но если страниц становится много (сотни и тысячи), или данные на странице меняются, то придётся генерировать их на лету. Для этого нужно подключать сервер и писать дополнительный код. На каждый переход нужно генерировать и загружать новую страницу, а это занимает время.
Одностраничные приложения (SPA) дают возможность разрабатывать клиентские приложения со сложной логикой с помощью JavaScript. В этом подходе отрисовкой содержимого на странице управляет JavaScript. Переходы между экранами будут мгновенными, и пользователь сразу увидит результат своих действий. Однако такой подход создаёт новые проблемы. Как не загружать в браузер слишком много кода? Как обеспечить хорошую производительность? Где рендерить приложение: только на клиенте или на сервере?
Разработка таких приложений часто сложнее, так как может потребовать знания различных инструментов и фреймворков.Многостраничные приложения
Многостраничные приложения – это набор статичных веб-страниц, которые связаны между собой с помощью ссылок. При клике на ссылки происходит переход между страницами, что ведёт к полному обновлению страницы в браузере. Это одно из наиболее значимых отличий от SPA, о нем поговорим отдельно.
Для начала выделим два основных вида многостраничных приложений:
- Набор готовых свёрстанных страниц, которые лежат на сервере и вместе с ними находятся и другие статичные файлы (CSS, JavaScript и картинки). Сервер отдаёт эти файлы по заранее настроенным путям.
- Динамическая генерация HTML на сервере. Чаще всего такое решение можно встретить на языках программирования PHP, Python и Ruby. При каждом запросе сервер запускает скрипт генерации HTML-страницы. Скрипт может взять данные из базы данных, произвести вычисления и собрать готовый HTML-код страницы.
Готовые веб-страницы
Подходят, если нужно собрать несколько связанных страниц, которые, по большей части, будут содержать статичную информацию, с которой пользователь может мало взаимодействовать. Например, лендинг – это веб-сайт, который представляет информацию о компании, товарах или продукте.
Разработка при таком подходе обычно самая простая. Рядом складываются несколько html-файлов, в которых содержится вся необходимая вёрстка и дополнительные CSS/JavaScript файлы, подключённые к странице. В продвинутом варианте можно переиспользовать части кода с помощью шаблонизаторов (например, Pug) и собрать сайт по кусочкам используя сборщики (Gulp, Rollup, Webpack и др.). В результате на сервер попадёт набор статичных файлов, которые будут раздаваться с помощью веб-сервера (Nginx, Apache).
Преимущество такого подхода — это отличная производительность. Статичные страницы и файлы легко кэшировать с помощью браузера, CDN или Service Worker.

Динамическая генерация HTML
Динамическая генерация HTML страницы часто использовалась до изобретения Single Page подхода. Так до сих пор работает большинство форумов, интернет-магазинов, а так же большие приложения, как Facebook или ВКонтакте.
Особенность этого подхода в использовании серверных языков программирования (например, PHP или Ruby), чтобы генерировать итоговый HTML страницы, собирая его из разных частей и обогащая данными.
Например, пользователь перешёл на страничку со списком друзей:
- Сервер получает запрос.
- Идёт в базу данных, выбирает список друзей и вспомогательные данные.
- По шаблону собирает HTML.
- Отправляет HTML в виде ответа на запрос.
Пользователь сразу получает сгенерированную страницу со списком друзей. Если добавить новых друзей и зайти на страничку ещё раз, то результат будет другой, ведь список друзей изменился.
Использование сервера для генерации содержимого позволяет не нагружать клиентский код сложной логикой, а значит итоговый размер страницы будет меньше. При этом статичные части приложения и целые куски страниц можно так же легко кэшировать.

При всех плюсах многостраничных приложений, все они страдают от одного главного недостатка: при переходе между страницами браузер полностью обновляет содержимое, из-за чего нельзя создать полноценный опыт взаимодействия «как в приложении»: незакэшированным страницам нужно время для загрузки, а значит не будет мгновенного перехода; будет сбиваться положение полосы прокрутки и т.д.
В стремлении решить эти проблемы и создать полноценный опыт приложений веб-разработчики изобрели одностраничные приложения.
Single page applications (SPA)
Одностраничные приложения (сокращённо SPA) состоят из одной страницы, а всю остальную работу (создание содержимого, переход между экранами и получение данных) выполняет JavaScript. Такой подход позволяет создать полноценный опыт приложения: переходы между экранами происходят мгновенно, можно давать пользователю визуальный ответ, пока данные загружаются асинхронно с помощью API.
Разработка одностраничных приложений имеет богатую экосистему: фреймворки и библиотеки для создания интерфейсов, подходы к разработке, архитектурные паттерны. Одностраничные приложения делятся по месту начальной отрисовки страницы: в браузере (client side rendering) или на сервере (server side rendering).
Client Side Rendering (CSR)
В таком приложении вся отрисовка содержимого страницы, включая первую, происходит в браузере. Пользователь должен сначала загрузить весь JavaScript, и только после этого что-то сможет отрисоваться. До этого момента страница будет либо пустой, либо будет содержать статическую заглушку-лоадер.
Это самым простой способ отображения SPA. Он подходит для небольших приложений, так как оно быстро загружается и запускается. Если кода много и приложение получается большим, пользователи со слабыми устройствами или медленным интернетом могут не дождаться загрузки и уйти.
SPA не работает без JavaScript. Если по какой-то причине пользователь отключил его в своём браузере, то одностраничное приложение не запустится вовсе.
Это требование особенно важно в контексте того, как поисковые сервисы индексируют SPA. Раньше поисковики не умели выполнять JavaScript и потому одностраничные приложения не попадали в результаты поиска. Сейчас ситуация изменилась, поисковые сервисы умеют исполнять JavaScript, но статические сайты до сих пор индексируются лучше.

Server side rendering (SSR)
Чтобы пользователь не смотрел на пустую страницу в ожидании загрузки приложения, можно отдавать ему сгенерированный сервером HTML. Таким образом пользователь сразу получит ожидаемую страничку и начнёт её просматривать, пока основное приложение загружается и запускается.
Такой подход называется серверным рендерингом. Он помогает улучшить и пользовательский опыт, и позицию сайта в поисковиках. Поиск Google и Яндекса умеет исполнять JavaScript, но сайтам со статическим контентом отдаётся предпочтение.
Главное отличие такого подхода от рендеринга на клиенте — это сервер, который занимается рендерингом. Чаще всего это готовое решение на базе Node.js. Многие SPA-фреймворки имеют проверенные решения для быстрого старта приложения с серверным рендерингом. Например, Next.js для React или Nuxt для Vue.
Своё решение для SSR — непростая задача. Приходится учитывать множество факторов: как и куда сходить за данными, как правильно отрисовать приложение и много других деталей.
Дополнительная серверная часть может потребовать и дополнительной инфраструктуры, из-за чего разработка приложения с server side rendering будет сложнее.

Static site generation (SSG)
Статические генераторы сайтов позволяют создать приложение, используя статические данные и шаблонизатор. На выходе получается многостраничный сайт. Отличие от классического многостраничного сайта в том, что большинство инструментов для статической генерации поддерживают SPA-фреймворки. Это позволяет объединить плюсы статического и SPA мира.
Самый распространённый пример SSG — это персональный блог. У нас есть тексты статей, а с помощью шаблонизатора эти статьи превращаются в готовые html-странички. Эта страничка и сама Дока, которую вы сейчас читаете, разработана с помощью статической генерации.
Когда говорят об SSG, то часто упоминают Jamstack. Слово Jamstack — это объединение первых букв от слов JavaScript, API, Markdown и слова stack, что в данном случае означает «набор технологий». Технически Jamstack это подход к разработке сайтов и приложений основанный на перечисленных технологиях. Источником данных выступает Markdown (например текст статей блога), JavaScript вместе с React «оживляет» приложение, а с помощью API можно запрашивать наши данные.
Jamstack хорошо подходит для создания сайтов, наполненных статичным контентом, а SPA-фреймворки помогают создать хороший пользовательский опыт, получая при этом плюсы статических сайтов.

Progressive Web Applications (PWA)
PWA это набор технологий, который позволяет превратить сайт в полноценное приложение. Такое приложение можно установить из браузера себе на компьютер или на телефон. Эта трансформация позволяет веб-приложениям функционировать почти как нативные, например, работать в офлайне или присылать уведомления.
В PWA можно превратить практически любой сайт, главное чтобы он соответствовал требованиям и поддерживал необходимые технологии (Service Worker, HTTPS и так далее).
Конечно такое приложение нельзя считать полноценно нативным, здесь имеются все те же ограничения в веб-технологиях, но это отличная возможность превратить свой сайт в устанавливаемое приложение.
Заключение
Мы рассмотрели самые распространённые виды веб-приложений, не углубляясь в детали их реализации. Каждый из описанных подходов имеет свои особенности, и потому выбор стоит делать исходя из целей, которые хочется достичь.
Например, переход между многостраничным может быть затруднён если есть проблемы с сетью, при этом одностраничное приложение может продолжать работать и переходить по страницам. Но одностраничные приложения так же могут страдать от проблем с производительностью.
Эти знания должны стать хорошим путеводителем в выборе подходящего типа приложения.
Как создать веб-приложение

Разработка веб-приложения — процесс, требующий тщательного планирования, определения целей и задач. Правильно поставленные цели и задачи помогут создать продукт, который будет эффективно решать проблемы бизнеса и способствовать его развитию.
Определение бизнес-целей
Первым шагом является определение целей и задач проекта. Цели – это долгосрочные результаты, которые вы хотите достичь с помощью вашего проекта. Например, увеличение продаж, привлечение новых клиентов, улучшение обслуживания и т.д. Задачи – это конкретные шаги, которые нужно выполнить для достижения этих целей. Например, создание определенного продукта в виде веб-приложения для определенного рынка.
Формулирование продуктовой гипотезы
Сначала важно сформулировать четкую продуктовую гипотезу. Она представляет собой предположение о том, как ваш продукт может решить проблему или удовлетворить потребность пользователей. Шаг 1: Определение проблемы. Сначала нужно понять, какую проблему вы пытаетесь решить. Это может быть упрощение процесса заказа товара, улучшение коммуникации между сотрудниками или повышение эффективности работы с документами. Важно выбрать проблему, которая действительно актуальна для вашей целевой аудитории и которую ваше решение может решить. Пример: Предположим, что вы разрабатываете продукт для малого бизнеса. Одной из проблем, с которыми сталкиваются малые предприниматели, является сложность управления заказами и отслеживания продаж. Вы решаете сосредоточиться на этой проблеме, чтобы упростить процесс управления заказами для малых предприятий. Шаг 2: Изучение рынка Изучите рынок, чтобы понять, есть ли уже решения для выбранной вами проблемы. Если да, то что именно они делают хорошо, а что можно улучшить? Какие функции уже реализованы в существующих решениях, а каких не хватает? Это поможет вам оценить конкуренцию и понять, какие возможности для улучшения существуют. Пример: После изучения рынка вы обнаруживаете, что уже существует несколько предложений для управления заказами, но они либо слишком дорогие, либо имеют ограниченный функционал. Вы понимаете, что есть возможность создать более удобное и доступное решение, которое покроет все основные потребности малого бизнеса в управлении заказами. Шаг 3: Формулировка гипотезы Теперь вы готовы сформулировать продуктовую гипотезу, которая описывает, как ваше веб-приложение решит выбранную проблему. Гипотеза должна быть четкой, конкретной и измеримой. Она должна отражать, что именно вы предполагаете улучшить в существующем решении. Пример гипотезы: “Наш продукт улучшит процесс управления заказами малого бизнеса, сократив время на обработку заказов на 20% и повысив удовлетворенность пользователей на 10% по сравнению с существующими решениями.” Шаг 4: Тестирование гипотезы Прежде чем начать работы, протестируйте свою продуктовую гипотезу на реальных пользователях. Это поможет убедиться, что ваша гипотеза верна и что пользователи действительно нуждаются в таком продукте. Пример: Вы проводите небольшое исследование и обнаруживаете, что многие малые предприниматели действительно испытывают трудности с управлением заказами и хотели бы иметь более удобное решение. Это подтверждает вашу продуктовую гипотезу и доказывает, что затея имеет смысл. Сформулировав четкую продуктовую гипотезу, вы сможете успешно разработать веб-приложение, решающее актуальную проблему и удовлетворяющее реальные потребности пользователей. Постоянное тестирование и корректировка гипотезы помогут сделать ваш продукт максимально эффективным и востребованным на рынке.
Выбор подрядчика
- гибкость,
- низкая стоимость услуг,
- возможность работы на проекте в любое время.
- отсутствие стабильности,
- невозможность предоставления полного спектра услуг (например, дизайна или тестирования),
- возможные проблемы с коммуникацией и управлением проектом.
Студии
Студии — компании, которые специализируются на веб-разработке и предоставлении других IT-услуг.
- Опыт работы
- Широкий спектр услуг
- Надежность
- Стоимость услуг выше, чем у фрилансеров
- Ограниченная гибкость в организационных вопросах
Внутренние команды
Многие компании имеют свои собственные команды. Это может быть более дорогим вариантом, так как требует инвестиций в обучение, управление и оборудование, но может обеспечить более тесную связь с командой и лучший контроль над проектом.
Преимущества внутренних команд:
- более тесная связь с командой;
- лучший контроль над проектом;
- возможность обучения и развития команды.
Недостатки внутренних команд:
- высокие затраты на обучение, организацию, оборудование;
- ограничения по масштабируемости и гибкости;
- возможное отсутствие опыта в создании веб-приложений.
Выбор между фрилансерами, агентствами и внутренними командами зависит от ваших потребностей и бюджета. Важно провести исследование и обсудить свои требования с каждым подрядчиком, чтобы выбрать наиболее подходящий вариант.
Этапы создания веб-приложений
Этап 1: выбор проектно-технологического решения
Технологии не стоят на месте, и технологии постоянно развиваются. Сегодня у разработчиков есть множество вариантов создания веб-сайтов и приложений, начиная от традиционных веб-страниц и заканчивая прогрессивными веб-приложениями (PWA).
SPA (Single-Page Application). Это одностраничное приложение, которое загружает все необходимые ресурсы на одной странице. Это позволяет ускорить загрузку страницы, так как пользователю не нужно ждать, пока загрузятся все компоненты системы. Кроме того, SPA могут использовать AJAX-запросы для взаимодействия с сервером, что делает интерфейс более отзывчивым.
MPA (Multi-Page Application). Это многостраничное приложение, состоящее из нескольких HTML-страниц. Каждая страница загружается отдельно, что может замедлить работу программы. Однако MPA проще в реализации и поддержке, чем SPA.
PWA (Progressive Web Application). Это веб-приложение, которое может работать как нативное мобильное. Оно имеет такие возможности, как установка на рабочий стол, работа в оффлайне и push-уведомления. PWA также могут использовать Service Workers для кэширования данных и улучшения производительности.
Пример: Google Maps
Этап 2: спецификация требований и прототипирование
Спецификация — это документ, описывающий требования к проекту. Она включает в себя описание функциональности, пользовательского интерфейса, архитектуры и других аспектов. Спецификация помогает разработчикам понять, что именно нужно сделать, а заказчику – убедиться, что все требования учтены и выполнены.
Следует описать требования к функциональности и пользовательскому интерфейсу. Важно учесть все возможные сценарии использования и определить, какие функции должны быть доступны пользователям.
Также стоит уделить внимание архитектуре системы. Необходимо выбрать подходящий стек технологий и определить, какие инструменты и библиотеки будут использоваться. Это поможет избежать проблем с совместимостью и обеспечит гибкость в будущем.
Наконец, в спецификации указываются требования к тестированию и контролю качества. Это поможет убедиться, что система соответствует всем требованиям и работает корректно.
Проработка спецификации — важный этап, который помогает обеспечить его успешность и соответствие требованиям заказчика. Учитывайте все аспекты и не забывайте о тестировании и контроле качества, чтобы ваше решение стало эффективным для бизнеса или пользователей.
Этап 3: выбор технологического подхода
На основе сформулированных требований нужно выбрать технологический подход: Low-code, No-code и обычное программирование.
Low-code. Это подход, который позволяет создавать приложения с помощью визуального интерфейса, а не написания кода. Это облегчает процесс и снижает порог входа для разработчиков.
- Простота использования: Визуальный интерфейс делает процесс понятным и доступным даже для тех, кто не имеет опыта программирования.
- Быстрое создание прототипов: С помощью Low-code можно быстро создать прототип, что может быть полезно для тестирования идеи или демонстрации заказчику.
- Снижение затрат: Использование Low-code может снизить затраты, так как требует меньше времени и ресурсов по сравнению с традиционным программированием.
Примеры Low-code инструментов:
- OutSystems — платформа для создания веб-приложений с использованием Low-code подхода. Позволяет создавать приложения для различных платформ, таких как веб, мобильные устройства и IoT.
- Bubble — платформа для разработки веб- и мобильных приложений с использованием только браузера. Поддерживает множество функций, включая базы данных, интеграцию с API и пользовательские интерфейсы.
No-code. Еще один подход к созданию интернет-приложений, который исключает написание кода полностью. Вместо этого, разработчики используют готовые блоки и элементы, выбирая их из библиотеки и настраивая их.
- Максимально доступный процесс: No-code не требует знания языков программирования и может быть выполнено любым человеком.
- Высокая скорость: Благодаря готовым блокам и элементам, процесс разработки может быть выполнен быстрее, чем при использовании других подходов.
Однако, есть и недостатки:
- Ограничения: No-code платформы имеют ограничения по функциональности и возможностям, которые могут быть недостаточными для сложных проектов.
- Качество кода: Хотя код не пишется вручную, он все равно генерируется, и его качество может быть ниже, чем у кода, написанного профессиональным разработчиком.
Пример инструмента no-code — Webflow, платформа для создания профессиональных веб-сайтов без написания кода. Имеет обширную библиотеку готовых элементов и возможность настройки стилей и поведения сайта.
Традиционное программирование. Разработка веб-приложения с нуля может быть выполнена и с помощью традиционного программирования, написания кода на одном из языков, таких как JavaScript, Python, Java или C#.
Преимущества традиционного программирования:
- Гибкость и масштабируемость: Традиционное программирование позволяет создавать сложные и специализированные системы, которые могут удовлетворить любые потребности бизнеса.
- Контроль над кодом: Разработчик полностью контролирует код и может вносить изменения или добавлять новые функции по мере необходимости.
Недостатки традиционного программирования:
- Высокие требования к навыкам: Чтобы создать качественное приложение, разработчик должен обладать знаниями в области программирования и уметь писать хороший код.
- Время: работы могут занять много времени и требуют значительных ресурсов, особенно если требуются сложные функции.
Выбор между Low-code, No-code или традиционным программированием зависит от множества факторов, включая:
- Требования к веб-приложению: Если приложение должно выполнять сложные функции, требующие гибкости и масштабируемости, то традиционное программирование может быть лучшим выбором.
- Бюджет и сроки: Если необходимо быстро создать прототип или приложение с минимальными затратами, Low-code или No-code могут быть предпочтительнее.
- Экспертиза команды: Если команда имеет опыт работы с определенными технологиями, то выбор может быть сделан в пользу этих технологий.
В любом случае, перед тем как выбрать технологию, необходимо провести анализ требований и возможностей команды. Важно помнить, что нет единого подхода, который подойдет всем, и каждый из них имеет свои преимущества и недостатки.
Этап 4: дизайн
На этапе дизайна создается внешний вид веб-приложения. Это включает в себя создание макетов страниц, выбор цветовой гаммы и шрифтов, а также создание логотипа и иконок.
Этап 5: программирование
На этапе программирования пишется код. Программисты используют языки программирования, такие как JavaScript, Python или PHP, для создания структуры и его функциональности.
Этап 6: тестирование
Перед тем как развернуть проект, нужно провести тестирование. Это помогает выявить и исправить ошибки в коде, а также убедиться в том, что система работает корректно.
Этап 7: развертывание (публикация)
После успешного тестирования продукт разворачивается на публичном сервере, где становится доступным для пользователей.
Этап 8: поддержка
Техническая поддержка: После развертывания команда поддержки обеспечивает работоспособность продукта и решает возникающие проблемы.
Стоимость
Важным аспектом является определение стоимости проекта. От этого зависит бюджет проекта и возможность его реализации. В данной статье рассмотрим, какие факторы влияют на стоимость и каковы средние цены при использовании разных подходов.
При традиционном программировании
Основным подходом является традиционное программирование, когда разработчик пишет код с нуля. В этом случае стоимость зависит от следующих факторов:
- Сложность проекта: чем больше функциональных возможностей предусмотрено, тем больше требуется времени и тем выше будет стоимость.
- Технологии и инструменты: использование современных технологий и инструментов увеличивает стоимость проекта.
- Команда разработчиков: количество и квалификация специалистов влияют на стоимость.
- Местонахождение команды: стоимость может зависеть от региона, в котором работают разработчики.
Пример: создание простого веб-сайта с базовым функционалом обойдется в среднем от $5 000 до 15 000. Веб-приложение со сложной интеграцией, использованием передовых технологий и искусственным интеллектом может стоить от 100 000 $ до 500 000 $.
При подходе low-code
Low-code подход предполагает использование готовых инструментов и шаблонов для минимальных затрат на написание кода. Благодаря этому стоимость снижается за счет уменьшения времени и уменьшения требований к квалификации специалистов.
Однако следует учесть, что использование low-code инструментов может быть дороже, чем традиционное программирование. К тому же, сложные проекты могут требовать доработки и модификации, что может увеличить стоимость.
Пример: простой веб-сайт на low-code платформе может стоить от $3 000 до 8 000, а средней сложности — от $15 000 до 30 000.
При подходе no-code
No-code подход позволяет создавать веб-приложения без написания кода. Вместо этого используются визуальные инструменты, которые позволяют собирать систему из готовых блоков. Это самый доступный способ создания веб-сервисов, однако его возможности ограничены.
Стоимость в этом случае определяется в основном сложностью проекта и используемыми инструментами.
Пример: создать простой веб-лендинг на no-code платформе можно за несколько часов и обойдется это примерно в $1 000 – 3 000.
Создание более сложного решения займет больше времени, и стоимость может составить от $5 000 до 10 000.
Заключение
Создание веб-приложения может показаться сложной задачей, но с пониманием основных этапов процесса и использованием соответствующих инструментов, это может быть достигнуто даже начинающими разработчиками.
Главное — начать с четкого планирования и определения требований, затем переходить к дизайну, кодированию, тестированию и, наконец, развертыванию и поддержке. Следуя этим шагам, вы сможете успешно разработать продукт и внедрить его для удовлетворения потребностей вашего бизнеса или пользователей.
Разработка веб-приложений: основные этапы
В обиходе всё, что мы открываем в браузере, называют сайтами, но это не совсем корректно. Сайт — это место, где люди получают информацию: читают, слушают и смотрят. Но есть еще веб-приложения: с ними человек взаимодействует — скажем, вносит оплату, оформляет бронь или играет в игру. То, что появляется в веб-приложении, зависит от запроса пользователя.
Разберемся, как проходит разработка веб-приложений, для чего такие приложения нужны бизнесу и как их создают.
Время чтения: 8 минут

Зачем нужны веб-приложения
Интернет-магазины, социальные сети, образовательные продукты, фото-, видео- и текстовые редакторы, игры, системы бронирования — все это и есть веб-приложения. Они устроены сложнее, чем обычные информационные сайты. Пользователь — не пассивный читатель, а участник бизнес-процесса, он взаимодействует с компанией. Информационные сайты без интерактивности бизнесу, конечно, тоже нужны, но их возможности ограничены. Например, это просто сайт-визитка.
Веб-приложения могут пригодиться, чтобы:
- Оказывать услуги пользователю в режиме онлайн: продавать товар, записывать на мероприятие, проводить курсы и вебинары.
- Решать внутренние задачи компании. Большим организациям веб-приложение может понадобиться, чтобы координировать сотрудников, выстраивать внутреннюю логистику. Например, с помощью веб-приложений можно проводить онбординг новых сотрудников и налаживать рабочие процессы с подрядчиками.
Разработка сайта для компании без интерактивности не дает всего этого спектра возможностей. Кроме того, именно интерактивность позволяет добавить геймификацию, делать опции для комментирования и общения пользователей. Все это помогает растить комьюнити вокруг бренда и повышать лояльность к компании. Через сайт можно рассказать пользователю о своей компании, но нельзя получить фидбек или оказать полезную услугу. Поскольку бизнес за последние годы стремительно переходит в онлайн-формат, веб-приложения становятся все более популярными. Для многих компаний именно цифровой сервис — основной источник монетизации.
Веб-приложения, которые человек открывает с браузера, как сайты, конкурируют с мобильными приложениями. Возможности и там, и там схожие. Какой вариант выбрать — нужно смотреть в каждом отдельном случае. Например, корпоративным таск-трекером удобнее пользоваться в вебе, а для сервиса доставки еды более актуальна будет разработка мобильного приложения . Есть и технология, которая совмещает два варианта: человек скачивает приложение на телефон, а работает оно из окна браузера — подробнее мы рассмотрим такую архитектуру в следующем разделе.
Виды веб-приложений
Способов разработки приложений много. От выбранного типа приложения будет зависеть цена, сроки и функциональность. Давайте рассмотрим каждый вид и определим, для каких задач будет оптимальна та или иная архитектура.
Прежде всего, приложения можно разделить на кастомные (написанные кодом) и ноукод (собранные в конструкторах). Современные ноукод-редакторы, скажем, Webflow или Bubble позволяют создавать интерактивные решения — к ним можно подключить платежную систему и сделать работающий интернет-магазин. Ноукод выбирают, потому что это быстро и дешево. Но такие решения подходят разве что для MVP или простых задач — например, лендингов или джоб-бордов с информацией о вакансиях и контактами рекрутёра. Функциональность получается очень ограниченной, потому что ноукод-инструменты — это конструктор с фиксированным набором элементов. Производительность таких приложений тоже ниже, чем у кастомных — большой трафик они не выдержат. Поэтому если вам нужен полноценный сервис, с прицелом на большую аудиторию, стоит остановиться на кастомных решениях.
Хотите больше узнать о специфике ноукод-решений и их отличия от классической разработки? Можете прочитать нашу статью: мы подробно разобрали специфику работы с конструкторами.
READ MORE Что такое «No-code»: простой способ сделать MVP или пустая трата времени и денег?
Приложения, написанные кодом, тоже различаются между собой — по своей архитектуре или системе организации программы. Давайте рассмотрим, какие они бывают.
Single Page Application — это одностраничное приложение. Для разработки таких приложений используют HTML и JavaScript. По сути, это разработка лендинга , только интерактивного. Но SPA могут быть достаточно сложными. Суть одностраничных приложений в том, что на сервере хранится одна HTML-страница, контент на которой обновляется по мере прокрутки или переходов по ссылкам. То есть когда вы нажимаете на кнопку, вы не переходите на новую страницу — элементы добавляются к уже загруженной. Например, по этому принципу работает Gmail.
- Разрабатывать такие приложения проще, чем многостраничные.
- Приложения работают быстро: контент на странице просто меняется по мере движения пользователя, его загрузка не требует много ресурсов.
- На одной странице проще сделать однообразный дизайн, а пользователь точно не потеряется и не запутается.
- Настройка SEO-оптимизации для SPA будет более трудоемкой, чем для других вариантов.
- Трудно гарантировать безопасность таких страниц: они больше подвержены взломам и утечкам, чем MPA и PWA, которые мы рассмотрим ниже.
Multi Page Application — это многостраничные приложения. Они позволяют пользователю не просто скроллить окно браузера, а переходить между отдельными страницами. И загрузка контента в таких приложениях происходит целыми страницами. Это значит, например, что если пользователь совершил оплату, в SPA подгрузится окошко с подтверждением, а в MPA страница оплаты полностью обновится. Пример многостраничного приложения — интернет-магазин Amazon.
- Простая SEO-оптимизация.
- Более привычный вариант для большинства пользователей, которые привыкли переходить между страницами.
- Если приложение сложное, с большим количеством функций, оно точно должно быть многостраничным. Переход по страницам позволяет пользователю легко попадать на нужные разделы. Скроллить огромное одностраничное приложение в начало, когда внезапно потребовалась какая-то информация оттуда, никому не захочется.
- Сложная и более дорогостоящая разработка и дизайн, чем для SPA.
Progressive Web Application — прогрессивные веб-приложения. Это что-то среднее между разработкой мобильного приложения и вебсайта. PWA можно сразу из браузера установить на главный экран смартфона в обход магазинов приложений. А ещё такие приложения работают офлайн и отправляют push-уведомления, но при этом открываются в браузере. Это возможно благодаря технологии Service Worker — скрипту, через который проходят все взаимодействия между фронтэндом и бэкендом. У этого скрипта есть доступ к кэшу и данным. По сути к большинству сайтов можно дописать Service Worker — и получится PWA. Поэтому часто на эту технологию переходят СМИ — например, The Washington Post.
- Сочетание офлайн- и онлайн- режима удобно для пользователя.
- Такие приложения можно сравнительно быстро разработать.
— Приложение быстро работает
Мы работаем на платформе Node.js для разработки бэкенда и React — для фронтенда.
С помощью такого стека можно реализовать любой вид архитектуры, который мы рассмотрели: от разработки лендингов до многостраничных и прогрессивных приложений. Дальнейшая работа зависит от конкретных бизнес-задач.
Кто занимается разработкой
Нанимать свою команду для разработки приложения — долго и дорого. По данным Indeed.com , расходы на найм одного сотрудника начинаются от $4000 без учёта зарплат. Чтобы сэкономить, можно обратиться за веб-приложениями к фрилансерам. Но зачастую это не лучшее решение. Для полноценного приложения нужна команда из аналитиков, дизайнеров и программистов, и вряд ли один человек будет обладать всеми знаниями сразу. А если вы нанимаете нескольких фрилансеров, вам придётся брать на себя работу менеджера проектов. Так что самый простой способ разработать сайт для компании — обратиться в студию, где над проектом будет работать опытная и слаженная команда.
В процессе создания веб-приложения участвуют:
- Аналитики — они помогают лучше изучить нишу, определить целевую аудиторию и понять, какая функциональность необходима для успеха на рынке.
- UX/UI-дизайнеры. Продумывают пользовательский путь и создают прототипы. Потом отрисовывают непосредственно дизайн сайта : кнопки, иконки и другие элементы интерфейса.
- Фронтенд-разработчики. Превращают дизайн сайта (макет) в работающий сайт: оживляют кнопки и блоки с помощью кода.
- Бэкенд-разработчики. Отвечают за функциональность: подключают базы данных, платежные системы, выстраивают внутреннюю логику приложения.
- Тестировщики. Проверяют приложение на баги и помогают выпустить на рынок продукт, который работает без ошибок.
Этапы разработки
Каждый специалист отвечает за свой этап в разработке веб-приложения. Тем не менее, этапы и их последовательность в разных студиях могут незначительно различаться. Мы расскажем о том, как устроен процесс в Purrweb и какое участие владельцу бизнеса нужно будет принимать в процессе.
В студию стоит идти, когда у вас уже есть готовая идея приложения и примерное понимание того, как оно будет функционировать. Для этого у предпринимателя должна быть экспертиза в выбранной отрасли. А вот изучение рынка можно делегировать специалистам. Аналитики разберутся, какую нишу может занять ваш продукт на рынке, на какую целевую аудиторию выгоднее ориентироваться, какая функциональность нужна этим людям и какую модель монетизации выбрать.
Результат: после работы с аналитиком вы будете четко понимать, для кого делаете приложение, какие задачи пользователей оно будет решать и как на этом зарабатывать.
Современные пользователи привыкли к продуманным и качественным интерфейсам. В условиях высокой конкуренции брендов, если что-то в приложении покажется человеку неудобным или непонятным, он просто перейдет по другой ссылке в поисковике. Поэтому важно продумать путь пользователя: какую последовательность действий он будет совершать и как элементы сайта будут отзываться на эти действия. UX-дизайнер создает прототип — на нем обозначены основные блоки и элементы, показано взаимодействие между ними.
Результат: Готовая схема приложения, в которой показаны блоки интерфейса и взаимосвязи между ними. По прототипу вы сможете оценить функциональность приложения и его доступность.

Задача дизайнера интерфейса — визуализировать блоки, которые придумал UX-дизайнер. UI-дизайн — это отрисовка иконок и кнопок, вёрстка экранов, подбор цветов и шрифтов и подготовка руководства по стилю UI для дальнейшей разработки. Если вы хотите узнать больше о работе UI-дизайнера, прочитайте наши статьи — о дизайн-процессе и о том, как мы делаем руководства по стилю для наших проектов.
Результат: вы увидите почти готовое приложение, только еще не работающее. Именно после этапа дизайна сайта можно утверждать точную стоимость и сроки разработки. Они будут зависеть от сложности проекта и пожеланий клиента по функциям и дизайну.

Разработчик фронтенда отвечает за внешнюю часть сайта, которую видят пользователи. Но фронтенд — это не только вёрстка макетов. Фронтенд-разработчик отвечает за адаптивный и отзывчивый дизайн — то есть чтобы сайт корректно отображался на разных устройствах и в браузерах разных версий. На этом этапе определяется процесс загрузки элементов, их кликабельность, анимация и другие микровзаимодействия.
Результат: дизайн становится интерактивным: можно нажимать кнопки, переходить по ссылкам. Но свои функции приложение ещё не выполняет.
Следующий этап — это разработка внутренней части: как приложение будет работать с базами данных, каким образом будет происходить оплата, бронь и другие процессы. Бэкенд-разработчик отвечает за корректную работу сайта, связь между компонентами приложения, хранение и структуру данных, логику алгоритмов и вычислений, и интеграцию с внешними сервисами — например, с платёжными системами и социальными сетями.
Результат: полностью работающее приложение.
Тестирование
Это необходимый этап, чтобы финальное приложение работало так, как было задумано. Главная задача тестировщика — проверить работу приложения перед релизом, чтобы команда вышла на рынок с качественным продуктом. Тестировщики изучают документацию продукта и составляют тест-кейсы — список функций, которые надо проверить, и их последовательность. Затем они вручную имитируют действия пользователя в разных сценариях или пишут скрипты для автоматического тестирования. После этого разработчики получают отчёт со списком ошибок и рекомендациями по исправлению.
Результат: приложение работает без ошибок, риск их появления сведён к минимуму.
После этого приложение можно запускать для пользователей. Но команда не прекращает над ним работать — она выходит на этап поддержки . После релиза разработчики обеспечивают стабильную работу приложения и чинят баги, найденные пользователями. А ещё на поддержке команда может специально собирать обратную связь от пользователей и улучшать качество продукта — например, добавлять новые фичи или менять дизайн уже готовых разделов приложения.
Стоимость разработки
Стоимость разработки веб-приложения зависит от его функциональности. Давайте рассмотрим самые популярные типы веб-приложений. В конце мы приведем подробную оценку этапов работы над каждым из них.
☝Разумеется, мы приводим только приблизительные цифры: итоговая цена приложения зависит от множества нюансов. Если нужно будет больше или, наоборот, меньше функций, то и стоимость изменится. Обычно финальную сумму можно назвать, когда готов дизайн: тогда уже точно понятно, как будет выглядеть приложение и что в нем будет.
Социальная сеть, в которой реализованы:
- чат;
- лента новостей с комментариями;
- публичные страницы или форумы;
- профиль пользователя.
Это приложение будет стоить у нас около 10 182 000 рублей.
Сервис-агрегатор для путешественников: с бронированием отелей, ж/д или авиабилетов. В нем должны быть:
- личный кабинет;
- поиск с фильтрами;
- блог с рекомендациями по турам;
- оплата
- рассылка.
Такое веб-приложение будет стоить примерно 7 845 000 рублей.
Вот подробная таблица, в которой расписаны все этапы разработки с количеством часов и стоимостью:
Вид работы Стоимость для соцсети Стоимость для агрегатора Аналитика 120 часов / 300.000 р. 120 часов / 300.000 р. UX-дизайн 260 часов / 910.000 р. 150 часов / 525.000 р. UI-дизайн Фронтенд 1600 часов / 5.600.000 р. 1200 часов / 4.200.000 р. Бэкенд 800 часов / 2.800.000 р. 600 часов / 2.100.000 Тестирование 540 часов / 972.000 р. 400 часов / 720.000 р. Создание веб-приложения — комплексный процесс, который требует сотрудничества с профессиональной командой. У нас в Purrweb есть большой опыт создания интернет-магазинов и других видов приложений в разных сферах. Например, недавно мы разрабатывали маркетплейс видеоконтента и веб-приложение для фитнеса .
Есть бизнес-идея? Обращайтесь к нам за консультацией!
Насколько публикация полезна?
Оцени эту статью!
13 оценок, среднее 4.8 из 5.
Оценок пока нет. Поставьте оценку первым.
Так как вы нашли эту публикацию полезной.
Подписывайтесь на нас в соцсетях!
Разработка WEB-приложений

Web-приложение (Web Application) — программа c двухуровневой архитектурой «клиент-сервер». Клиент полноценно взаимодействует с пользовательским интерфейсом (UI/UX) через страницы web-браузера. Все данные хранятся на сервере, обмен происходит через сеть по протоколам HTTP/HTTPS.
Web Application работает, как кроссплатформенная программа независимо от операционной системы в мобильной версии (Android или iOS) и десктопной (Mac OS, Windows, Linux). Запуск и использование программы не нагружает устройство, а для работы нужен только браузер в интернете.
При создании веб-приложений программисты создают сложную архитектуру, с которой взаимодействует пользователь после аутентификации. Используются технологии программирования JavaScript, HTML5, CSS, а также фреймворки в качестве каркаса или пишут код вручную.
Языки создания веб-приложений
Языки и фреймворки основных частей в Web App:
- Backend.
Настраивается «подкапотная», не видимая клиенту часть — система, базы данных, архитектура, логика. Программисты разрабатывают веб-приложения на языке Python, Java, PHP, Go, C#, Ruby, Node.JS, а также используют серверные технологии (Apache, Nginx, AJAX). - Frontend (клиентская часть).
Фронтенд разработчик реализует часть программы видимую в браузере, с которой взаимодействует клиент, чтобы вводить данные или получать обратную связь. Чаще всего используется язык программирования HTML — размечает гипертекст, CSS — работа со стилями, JavaScript — создает интерактивную страницу, а также связанные с ними фреймворки. - DevOps программирование (автоматизация).
Команда DevOps или хостинг-провайдер настраивает инфраструктуру хостинга программы.
Виды web-приложений

Вид Веб-сайта зависит от распределения логики между клиентом и сервером. Программу создают под конкретные функции и бизнес-задачи. Например, у компании Infoshell заказывают разработку веб-сервисов следующих видов:
- Portal Web App (порталы повышенного уровня сложности).
Многофункциональный проект для эффективной оптимизации бизнес-процессов.Задачи:- улучшить качество работы с клиентами,
- повысить результативность сотрудников,
- улучшить связь между подразделениями компании,
- обеспечить мобильность сотрудников,
- сделать проще работу с документами,
- дают возможность провести PR-мероприятий любой сложности.
- Индивидуально разработанные системы.
CRM — мощный инструмент автоматизации работы с покупателями, эффективно решает задачи контроля, планирования для развития бизнеса.Задачи:- сохранить целостность клиентской базы,
- предоставить аналитику по продажам,
- повысить объем продаж,
- оптимизировать работу персонала,
- сократить бумажный документооборот.
ERP системы выбирают крупные предприятия. Это программное обеспечение помогает автоматизировать многие процессы, открывает новые возможности бизнесу.
- стандартизировать формы отчетности и информационные системы,
- улучшить взаимодействие между отделами,
- синхронизировать процессы,
- наладить интеграцию с контрагентами.
- получать подробную информацию о запросах индивидуальных потребителей,
- продвигать новый продукт на рынке,
- уменьшить затраты на совершение сделки,
- сократить путь товара к потребителю.
Преимущества web-разработки
Web Apps динамично прогрессируют, что позволяет разрабатывать на заказ мобильные приложения и сложные веб-сервисы. Эти программы нетребовательны к загрузке, просты в создании и экономически эффективны благодаря этим преимуществам:
- Кроссплатформенная совместимость, не нужно разрабатывать отдельную платформу. Программа доступна в браузере смартфона или компьютера (Safari, Google Chrome, FireFox, Opera), в любой операционной системе.
- Сетевая безопасность. Программы обрабатывают запросы через безопасный протокол передачи данных HTTPS. Точка входа защищена централизованной настройкой. Данные пользователя хранятся на облачном хранилище, защищены от потерь даже при повреждении жесткого диска.
- Не задействуют клиентское ПО. Устанавливается независимо от характеристик «железа». Установка не затратная, а обновление загружается автоматически на сервере. Клиентский интерфейс обновляется автоматически при очередной загрузке страницы.
- Сокращение расходов, потому что не требуется разрабатывать платформу под Android и iOS. Функционально не уступает по производительности десктопным аналогам.
- Масштабируемость. Большой объем данных обрабатывается аппаратными ресурсами без переписывания кода, а также смены архитектуры.
Этапы и основы разработки веб-приложений
-
- Создание дизайна UI/UX.
Создается интуитивно понятный интерфейс (прототип) рабочего вида программы без этапов программирования.Продумываются:- переходы между экранами,
- графика изображений,
- элементы брендинга,
- кнопки и формы.
Визуальные элементы создают в дизайне веб-приложения, чтобы включить процесс регистрации пользователя, вход в систему, поиск/размещение/заказ товара, навигацию, создание профиля, осуществление платежей.
Во время внутренней разработки выполняют:
-
-
- обслуживание запросов внешнего интерфейса,
- авторизацию с аутентификацией клиента при входе,
- создание, чтение, обновление данных.
Работа с архитектурой back-end.
Группируется бизнес-логика бэкенда:
-
-
- Монолитная архитектура — простые программы, не требующие масштабируемости и гибкости. Пользовательский интерфейс остается на стороне клиента, а приложение с базой данных на сервере.
- Микросервисы — каждый компонент системы реализован в отдельных независимых блоках. Подходит для крупных проектов (портал, интернет-магазин).
-

-
- Frontend разработка.
Внешняя интерфейсная часть (контент) создается на языках программирования HTML, CSS, JavaScript, AJAX. Также применяются наиболее популярный фреймворк Angular, React JS, Vue JS — эти закодированные модули экономят время создания.На этом этапе программисты проверяют отзывчивость и удобство интерфейса на разных типах устройств, чтобы взаимодействие с пользователем было согласованным. Скорость работы не должна зависеть от размера или разрешения экрана.
- Frontend разработка.

- Тестирование ПО.
Проводится всех этапов создания для развертывания к использованию. Модульное тестирование сборки включает поиск и исправление ошибок. Наиболее частые тесты:- Юзабилити-тестирование интерфейса (количественное + качественное исследование). Проверяют связь, подключение к базе данных, работу ссылок между страницами, а также общий пользовательский опыт.
- Проверка производительности — скорость передачи данных, рендеринг, обработку пользовательского ввода. Проверяется работа под большой нагрузкой, а также при разной скорости интернета.
- Тестирование интерфейса (UI Testing) — определяется удобство пользовательского интерфейса, а также работа сервера с внутренней частью системы.
- Совместимость — тестируется работа продукта на разных браузерах и устройствах.
- Безопасность — проверяют слабые места и уязвимость.
- Размещение и развертывание web-приложения.
После покупки домена и выбора облачного хранилища хостинг-провайдер запускает веб-приложение. Для развертывания необходим:- репозиторий исходного кода,
- веб-сервер с настройкой ключа развертывания SSH,
- SSH-доступ к веб сайту.
После релиза важно обеспечить техническую поддержку приложения. Она обязательна, если хотите, чтобы ваше собственное приложение оставалось в тренде, приносило пользу и удерживало ЦА, а также улучшало пользовательский опыт.
Наша компания создает многостраничные и одностраничные быстрые веб-сайты и мобильные приложения любого уровня сложности и функциональности.
Узнайте стоимость создания веб приложения или сайта! Выберите в калькуляторе нужный функционал и набор опций. Меняя эти настройки, вы поймете от чего зависит итоговая цена приложения.
-
- Создание дизайна UI/UX.