УДК 004

Сравнение мобильных и веб-приложений. Выбор технологий для клиент-серверного веб-приложения

Цыбезова Анастасия Семёновна – бакалавр Российского технологического университета – МИРЭА.

Аннотация: В данной статье проводится сравнительный анализ мобильных и веб-приложений, выделяются их основные преимущества и недостатки. Особое внимание уделяется выбору технологий для разработки клиент-серверного веб-приложения, рассматриваются технологии для клиентской и серверной частей. Предлагается рассмотрение стандартных и современных инструментов и технологий разработки, а также описываются возможности по использованию определенных технологий в выбранном архитектурном подходе. Описывается один из возможных вариантов стека технологий для создания адаптивного, надежного и мощного веб-приложения, способного решать широкий спектр пользовательских задач.

Ключевые слова: технологии, веб-приложение, мобильное приложение, анализ, клиент-серверная архитектура.

В современном мире интернет стал неотъемлемой частью жизни любого человека. Интернет позволяет быстро и просто выполнять рутинные действия, на которые раньше нужно было потратить много времени. Способом взаимодействия со всемирной сетью являются в том числе и приложения.

Часто под словом «приложение» многие понимают именно мобильное приложение. Такие приложения удобны, просты в использовании, популярны. Но так ли они универсальны? Сравним мобильные и веб-приложения, выявим преимущества и недостатки.

Мобильные приложения – программное обеспечение, разработанное специально для мобильных устройств с сенсорным экраном, оптимизированное под работу с ними. Мобильные приложения широко распространены и предоставляют широкий функционал в самых разных сферах жизни.

Рассматривая такие приложения с точки зрения разработки, заметим, что при создании мобильных приложений могут возникнуть трудности, связанные с особенностями каждого устройства. Так, разработку необходимо вести под разные операционные системы, например, Android или iOS. Данные операционные системы значительно отличаются, а, значит, и используемые технологии разработки разные [1]. На разработку одного мобильного приложения под разные операционные системы может уйти больше ресурсов, а также могут возникнуть проблемы с обновлением, контролем версий, реализацией функционала и корректного отображения для каждой из операционных систем.

Мобильные приложения обладают как преимуществами, так и недостатками. К преимуществам можно отнести:

  1. Адаптированность под использование на мобильных устройствах, удобство использования в целом;
  2. Наличие у приложения доступа к ресурсам устройства, таким как камера, микрофон, внутреннее хранилище, геолокация и др.;
  3. Отправка уведомлений пользователю.

К недостаткам же можно отнести:

  1. Ограничения операционной системы. Так, мобильное приложение может быть разработано только для одной операционной системы, например, только для iOS;
  2. Существует необходимость обновления на стороне пользователя. Пользователю необходимо часто вручную обновлять приложения;
  3. Зависимость от магазинов приложений. Нужное приложение может быть удалено из магазина приложений и у пользователя могут появиться проблемы в случае возникновения потребности в этом приложении.

Веб-приложения – интернет-ресурс, который используется посредством веб-браузера. Такие приложения позволяют пользователям решать более сложные задачи, нежели чем обычные сайты, обрабатывать данные и быстро получать результаты.

Если рассматривать создание веб-приложений, то можно отметить, что такие приложения не ориентированы на операционную систему, а, значит, код един для всех платформ, и нет необходимости разрабатывать одно и то же приложение несколько раз с разным стеком используемых технологий. На разработку веб-приложения уйдет меньшее количество ресурсов, возникнет меньше проблем с контролем версий и совместимостью, так как нет необходимости обновлять приложение на стороне пользователя.

Веб-приложения же сочетают в себе преимущества мобильных приложений и обычных интернет-ресурсов. Рассмотрим преимущества и недостатки веб-приложений. К преимуществам можно отнести:

  1. Не требуют установки. Пользователю не нужно скачивать приложение на свое устройство, потому что оно доступно через веб-браузер;
  2. Веб-приложения не ориентированы на операционную систему, значит, они более доступны для пользователей;
  3. Доступ к ресурсам. Современные технологии позволяют разрабатывать веб-приложения с возможностями мобильных, то есть веб-приложения могут иметь доступ к камере, микрофону, геолокации и другим аппаратным ресурсам устройства.

Но существуют и недостатки:

  1. Зависимость от интернет-соединения;
  2. Существование разных браузерных движков может вызвать проблемы с отображением контента, для решения необходимо использовать дополнительные технологии.

Разработка веб-приложений не ограничена требованиями операционной системы, а, значит, и стек технологий достаточно обширный. Какие же технологии используются для разработки веб-приложений?

Часто рассматривают следующие архитектурные решения для разработки веб-приложений: монолитная, микросервисная и клиент-серверная архитектуры. В контексте данной статьи рассматривается разработка веб-приложения с клиент-серверной архитектурой, так как этот вид архитектуры предлагает четкое разделение функциональности на клиентскую и серверную, а также обладает более высокой производительностью в сравнении с монолитной и менее перегружен в сравнении с микросервисной [2]. Также применяется архитектурный стиль REST.

Для разработки клиентской части существует обширный стек технологий. Так, стандартными технологиями являются HTML [3], CSS и JavaScript. Помимо них для создания пользовательского интерфейса также могут использоваться библиотеки JavaScript React.js, Angular, Vue.js. В данной статье предлагается рассмотреть определенный стек, который может быть использован в разработке клиентской части.

Для создания клиентской части, помимо HTML и CSS, необходимо использовать React.js для создания интерактивного пользовательского интерфейса в связке с серверным фреймворком Node.js, который поддерживает выполнение JavaScript и на клиентской стороне, и на серверной [4].

Ускорить разработку веб-приложения возможно с использованием Vite.js, так как этот инструмент предоставляет быструю среду сборки, предварительную сборку и функцию горячей перезагрузки для приложений с использованием JavaScript.

Для выполнения HTTP-запросов от клиентской части к серверной необходимо использовать библиотеку JavaScript Axios. Данная библиотека взаимодействует с внешними API, отправляет данные на серверную часть и получает ответы, также поддерживает асинхронную обработку запросов.

Mobx используется в качестве модели для управления состоянием, позволяет автоматически обновлять пользовательский интерфейс при смене состояния.

Стек, который может быть использован для разработки серверной части разнообразен и не ограничивается одним языком программирования или фреймворком. Так, используются технологии: JavaScript и Node.js; Python и Django, Flask, FastAPI; Java и Spring Framework; PHP и Laravel; C++ и Qt, Wt; Go и Revel, Beego, Gin. Перечисленные языки и технологии не охватывают весь стек, но являются часто используемыми [5].

В данной статье предлагается рассмотреть выбор Java и Spring Framework, а также других языков и технологий, которые могут быть использованы при создании клиент-серверного веб-приложения.

Преимущества Java и Spring Framework при выборе их как технологий для разработки серверной части заключаются в том, что этот стек предоставляет обширные возможности для создания веб-приложений, такие как контроллеры, обработчики представлений и интеграцию с другими веб-технологиями, такими как Thymeleaf, Spring Security, Spring Data. Это существенно упрощает и ускоряет разработку веб-приложения [6].

Данный стек также предоставляет возможности для работы с базами данных, поддерживая технологии доступа к данным. Так, в Spring Data существует JDBC – интерфейс для работы с реляционными базами данных и ORM – инструмент для преобразования данных между объектно-ориентированным представлением в приложении и реляционным представлением в базе данных, примером является Hibernate.

Для создания веб-приложения с использованием данного стека также необходима часть Spring Framework – Spring Web. Он предоставляет инструменты и абстракции для обработки HTTP-запросов и создания RESTful-сервисов, также он поддерживает маршрутизацию URL, взаимодействие с формами и др.

Для реализации авторизации существует также встроенный в Spring Framework модуль Spring Security. Он необходим для обеспечения безопасности в веб-приложении, предоставляет механизмы для авторизации, аутентификации пользователя, а также инструменты для защиты от атак и управления доступом к ресурсам приложения.

Для авторизации и аутентификации пользователей часто используется стандарт JSON Web Token, который позволяет безопасно передавать токен доступа между клиентом и сервером.

В заключение, необходимо отметить, что веб-приложения обладают преимуществами как мобильных приложений, так и обычных сайтов, что делает их достаточно универсальным решением. Стек разработки обширен и не ограничивается платформой, что позволяет создавать приложения для решения самых разных пользовательских задач. Предложенный в данной статье стек технологий является одним из возможных вариантов реализации приложения, тем не менее, с применением вышеописанных технологий возможно создать адаптивное, надежное и мощное веб-приложение.

Список литературы

  1. Бысшыкызы Д. Разработка мобильного приложения [Электронный ресурс]. – URL: https://cyberleninka.ru/article/n/razrabotka-mobilnogo-prilozheniya (дата обращения: 29.03.2024).
  2. Горюнова М.П. Архитектурные стили в разработке приложений и область их применения [Электронный ресурс]. – URL: https://cyberleninka.ru/article/n/arhitekturnye-stili-v-razrabotke-web-prilozheniy-i-oblast-ih-primeneniya/viewer (дата обращения 29.03.2024).
  3. HTML Spec [Электронный ресурс]: HTML спецификация – URL: https://html.spec.whatwg.org/multipage/ (дата обращения 30.03.2024).
  4. Двуреченский И.О., Симонов И.Н., Гаев Л.В. Веб-приложения: основы, технологии и разработка [Электронный ресурс]. – URL: https://cyberleninka.ru/article/n/veb-prilozheniya-osnovy-tehnologii-i-razrabotka/viewer (дата обращения 30.03.2024).
  5. Appetiser Apps [Электронный ресурс]: The Most Loved and Hated Programming Languages According to Developers – URL: https://appetiser.com.au/blog/the-most-loved-and-hated-programming-languages-according-to-developers/ (дата обращения 31.03.2024).
  6. Чиганов Д.Р. Spring: мощный фреймворк для разработки java-приложений [Электронный ресурс]. – URL: https://cyberleninka.ru/article/n/spring-moschnyy-freymvork-dlya-razrabotki-java-prilozheniy/viewer (дата обращения: 31.03.2024).