Обложка: Почему вам стоит выбрать фреймворк/технологию Vaadin для своего следующего проекта

Почему вам стоит выбрать фреймворк/технологию Vaadin для своего следующего проекта

Всем привет. Я занимаюсь разработкой более семи лет. В основном это написание серверов/сервисов на backend. И исходя из опыта, могу заметить, что часто бэкендеру приходится сталкиваться с фронтом. Многие спокойно относятся к этому, кого-то это невероятно бесит. А кто-то может быть в восторге, ведь он становится fullstack девелопером.

Мне, к счастью или сожалению, приходилось сталкиваться с фронтовой частью достаточно много. В подавляющем большинстве проектов использовался JS и тысячи его различных библиотек и фрэймворков. Каждый раз знакомство с фронтом было, как в первый — как-то внутренне мой организм отталкивал JS. Хотя я и успешно выполнял фронтовые задачи, это не приносило мне настоящего удовольствия.

В один прекрасный момент на горизонте начала появляться задача по написанию админского модуля для всей системы. И конечно же, там просто была необходима огромная фронтовая часть. Нанимать отдельного фронтона никто бы не стал, да и я был бы против, пришлось думать, как быстро и удобно реализовать фронт часть для нашей будущей админки. Я мог написать stand-alone приложение на C# и Unity.

Использовать преимущества этого чудесного движка и быстро накидать необходимые формы. Можно было пойти более классическим путём и использовать JS + сервер. Был шанс использовать шаблоны типа Thymeleaf или Freemarker , но это совсем извращение, как по мне.

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

Что такое Vaadin?

Фреймворк Vaadin специально ориентирован на доступность UX. Он позволяет программисту создавать настраиваемые веб-приложения. А пользователям — получать доступ к DOM непосредственно с виртуальной машины Java. Приложение на Vaadin запускается как обычное Spring Boot приложение, без каких либо дополнительных действий.

Как Java, так и HTML, можно использовать для построения представлений во фреймворке Vaadin. У него интуитивно понятный пользовательский интерфейс с поддержкой взаимодействий перетаскивания. Это значительно упрощает весь процесс веб-разработки для программистов любого уровня подготовки.

Также Vaadin — платформа с открытым исходным кодом, которая включает в себя веб-фреймворк Java, набор веб-компонентов, средства запуска приложений и инструменты.

Vaadin Flow — это фактическая часть инфраструктуры Java платформы Vaadin, которая заботится о взаимодействии клиент-сервер, и маршрутизации. С помощью Vaadin flow вы можете полностью написать веб-приложение на Java без суеты JS или CSS. Компоненты пользовательского интерфейса заботятся о действиях пользователя в браузере, используя автоматическую связь с браузером и сервером. Вы можете легко интегрировать компоненты Vaadin в любую IDE, которую используете. Плюс это кроссплатформенный фреймворк, поэтому не нужно беспокоиться о переносе кода на другую платформу.

Данные могут быть связаны с использованием как MVC, так и MVP через платформу Vaadin. К тому же фреймворк поставляется со встроенной поддержкой инфраструктуры Spring и поддерживает языки JVM, такие как Scala и Kotlin. Ещё у него есть поддержка WebSocket, которая обеспечивает автоматическую связь между сервером и клиентом.

Также существует платная поддержка и расширенные возможности. И, если не ошибаюсь, в IntelliJ был платный плагин, позволяющий перетаскивать компоненты на лайаут и отрисовывать то, что вы хотите (как в Android Studio).

Особенности фреймворка Vaadin

  • Java API для всех веб-компонентов;
  • безопасная веб-разработка только для Java;
  • две встроенные темы: Lumo и Material;
  • переключение между темным или светлым режимом;
  • альтернативы стилей из Java;
  • поддержка кнопки «Назад» и ссылок на контент;
  • навигация без перезагрузки всей страницы;
  • существенным преимуществом Vaadin является поддержка JVM;
  • по умолчанию Vaadin получает встроенную поддержку Spring Framework;
  • Vaadin может автоматически устанавливать связь клиент-сервер с помощью веб-сокета;
  • у Vaadin есть маршрутизатор с вложенным маршрутом, а также поддержка параметров;
  • Vaadin поддерживает привязку данных через MVC и MVP.

Звучит круто, не правда ли? Это не реклама фреймворка, это моя радость от того, что я могу теперь писать фронтовую часть на Java, и она будет получаться достаточно красивой и приятной. Несомненным плюсом является комьюнити и ответы на большинство вопросов, которые могут появляться первое время.

Было бы очень интересно услышать ваше мнение по поводу Vaadin и его использования. С какими сложностями и трудностями вы столкнулись при использовании Vaadin ?