Все статьи

Jmix 2023: Итоги и планы на 2024

Обзор 2023 года

Пришло время подвести итоги основных достижений команды Jmix в 2023 году и поделиться нашими мыслями о будущем продукта. Безусловно, главным достижением 2023 года стало то, что мы наконец завершили переход на последние версии Vaadin 24 и Spring Boot 3 в Jmix 2.0. Откровенно говоря, это оказалось сложнее, чем мы ожидали. В начале 2023 года мы также рассчитывали сохранить для разработчиков возможность использовать оба варианта – Classic UI и Flow UI – в своих проектах Jmix. К сожалению, переход с Spring Boot 2.7 на Spring Boot 3, который повлек за собой смену пространства имен с javax на jakarta, повлиял на наши планы. Мы отказались от идеи поддержать два варианта пользовательского интерфейса в в одном проекте Jmix. Чтобы поддержать членов сообщества, которые уже запустили проекты с Jmix 1.X, мы объявили, что это будет версия с долгосрочной поддержкой (LTS), с обещанием переноса совместимых нововведений из последующих выпусков Jmix 2.X. Подробности можно найти в специальном блог-посте.

Из хороших новостей – с новым интерфейсом Vaadin 24 мы внедрили много улучшений. К концу 2023 года нам удалось воплотить в жизнь большинство востребованных UI компонентов и сохранить привычный для разработчиков процесс создания интерфейсов и управления событиями.

Мы усердно работали над внедрением Charts и улучшением функциональности Maps, чтобы успеть выпустить к концу февраля 2024 года. Также мы перешли на новый Flow UI, благодаря чему в маркетплейсе теперь представлены популярные дополнения, включая Reports, BPM, WebDAV, Business Calendar, Notifications, Quartz Scheduler, Search и Dynamic Attributes. Flow UI предоставляет разработчикам Jmix возможность использовать современные и гибко настраиваемые решения для разработки пользовательских интерфейсов на основе веб-компонентов с дополнительными возможностями стилизации через CSS. Теперь нет необходимости выполнять утомительные операции по интеграции внешних JS-компонентов в экраны приложений. Примеры с кодом можно найти в UI Samples. Все экраны Jmix по умолчанию адаптивны, с возможностью определения визуального стиля макета экрана на основе размера контейнера, используя специальный тег responsiveSteps в дескрипторе.

Несмотря на обещания, мы остановили работу над мобильными интерфейсами в Jmix. Изучив Flutter, мы решили, что дальше инвестировать в разработку довольно рискованно. Общаясь с разработчиками в 2022-2023 годах мы увидели, что они используют много других технологий для мобильных проектов, и Flutter пока не стал очевидным выбором. В то же время, для серверной разработки на Java чаще всего выбирают Spring Boot и JPA, и здесь Jmix показывает себя отлично, особенно когда разработка на Java кажется лучшим выбором, чем на JavaScript. Большим плюсом стало добавление в Jmix поддержки PWA (прогрессивных веб-приложений), благодаря чему веб-приложения хорошо работают на мобильных устройствах. К сожалению, автономный режим не поддерживается.

В 2023 году мы много работали над улучшением поддержки разработки приложений для управления бизнес-процессами (BPM) в Jmix Studio. Разработчики получили удобную платформу на базе IntelliJ IDEA, которая помогает на всех этапах: от создания диаграмм до запуска процессов. Теперь легко создавать формы для задач, подключать задачи к проекту и запускать процессы, не нуждаясь в дополнительных инструментах. Мы получили отличные отзывы на эту функциональность от пользователей и BPM экспертов.

Мы также добавили функцию быстрого развертывания в облаке. С её помощью можно легко запустить приложение Jmix на AWS, всего за несколько кликов. Это экономит время и усилия на начальных этапах проекта и делает разработку проще.

2023 год в цифрах

Мы рады сообщить, что улучшения, внесенные в Jmix в 2023 году, значительно повысили популярность технологии на различных рынках.

  • Посетители сайта в 2023 году: 111 585, рост на 1,5% ↑
  • Посетители форума в 2023 году: 59 300, рост на 104% ↑
  • Посетители документации в 2023 году: 43 900, рост на 49% ↑
  • Подписчики в телеграме: 317, рост в 5 раз ↑
  • Активные пользователи увеличились на 27% ↑

Кроме того, с гордостью объявляем, что в 2023 году почти 85% наших активных коммерческих подписок были продлены. Это достижение стало новым рекордом для Jmix, демонстрируя высокий уровень доверия наших клиентов к технологии, а также значительно помогает дальнейшим планам развития Jmix.

Планы на продукт в 2024 году

Завершив переход на обновленный стек технологий, наша команда сосредоточится на разработке новых функций для Jmix 2.X и улучшении учебных ресурсов для разработчиков. В 2024 году мы решили приоритезировать следующие направления разработки:

— Реализация инструментов и поддержки фреймворка для работы с внешними источниками данных. Наша цель - обеспечить поддержку Jmix для автоматической генерации Java-клиента на основе спецификации OpenAPI и маппинга API на DTO. Ожидается, что это упростит работу с данными из внешних источников в бизнес-логике и интерфейсе Jmix.

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

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

— Обогатить библиотеку компонентов интерфейса для лучшего UX конечных пользователей, поддерживая декларативный подход к дизайну макетов. Мы планируем создать компоненты интерфейса GroupTable, Pagination и Calendar в рамках технологии Flow UI. Кроме того, мы намерены внедрить расширенную поддержку декларативной конфигурации компонента VirtualList в дескрипторе представления.

— Ввести дополнения для бизнес-аналитики - Dashboard и Pivot Table. Конфигурируемые инструменты для бизнес-анализа важны для B2B-приложений, и мы стремимся усилить эту функциональность с помощью популярной открытой технологии – Apache Superset. Наше исследование и разработка были завершены в 2023 году, и результаты выглядят очень многообещающими.

— Позиционировать Jmix как полнофункциональную платформу автоматизации бизнес-процессов (BPA), отвечающую современным требованиям компаний:

  • Поддержка разработки приложений с использованием как встроенного, так и автономного open-source BPM движка: Flowable в 2024 году и поддержка Camunda в 2025 году.
  • Создание нового настраиваемого дополнения для списка задач процесса, которое позволит взаимодействовать пользователям со списком задач для обоих типов BPM движков – встроенного и автономного.
  • Создание нового инструмента мониторинга процессов, предоставляющего административный интерфейс для управления экземплярами процессов, работающих на обоих типах BPM движков – встроенном и автономном.

Java-разработчики, желающие использовать open-source BPM движок для своего следующего проекта по автоматизации процессов, найдут готовую к использованию бэкенд платформу и инструменты для автоматизации бизнес-процессов - дизайнер бизнес-процессов, управление задачами и панель мониторинга.

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

Планы работы с коммьюнити на 2024 год

Ещё один важный аспект, который мы собираемся усилить, - это процесс онбординга разработчиков. Мы понимаем, что это ключ к распространению технологии Jmix и расширению сообщества. В 2024 году мы планируем существенно упростить процесс обучения для новичков. Вот основные моменты:

Jmix AI Assistant – веб-чатбот на базе LLM поможет найти ответы за секунды. Поддерживает несколько языков. Мы обучили AI Assistant, используя базу знаний документации, форума и примеров UI, и результаты выглядят очень многообещающе. Программа раннего доступа (EAP) будет запущена во II квартале. Надеемся сделать его доступным для всех в III квартале.

Учебный курс Jmix BPM. В 2023 году мы уже запустили бесплатный курс на Stepik "Знакомство с Jmix", и на этом не собираемся останавливаться. Наша учебная команда команда уже провела бета-запуск открытого курса по BPM и улучшает программу, чтобы сделать ее доступной для всех.

Бесплатная подписка на Jmix Studio RAD. Начиная с выпуска Jmix 2.2 в марте 2024 года, каждый разработчик сможет бесплатно пользоваться функциями Studio RAD навсегда, но с ограничениями на размер проекта:

  • Максимум сущностей – 10;
  • Максимум ролей – 10;
  • Максимум экранов – Неограниченно :)

Если в вашем проекте будет больше 10 сущностей и ролей, то Jmix Studio автоматически переключится на тариф Jmix Free, и вы сможете продолжить разработку без ограничений, но функциональность Jmix RAD станет недоступна.

— Улучшение документации. Мы планируем раскрыть основные концепции платформы Jmix в специальном разделе и обогатить описание дополнений конкретными гайдами, демонстрирующими примеры использования. Вы можете изучить первые результаты обновления в документации в описании аддона Maps.

Больше примеров приложений и видеоуроков. Мы планируем мигрировать Jmix Bookstore на Jmix 2.X и создать больше видеоконтента, демонстрирующего популярные советы для разработчиков.

И последний пункт, но не менее важный. С момента запуска платформы CUBA мы мечтали открыть Jmix Marketplace для коммерческих сторонних дополнений и решений. В 2023 году мы обнаружили множество полезных приложений, созданных нашими партнерами, и это выглядит как перспективная область роста. Во II квартале мы планируем запустить наше первое готовое решение – Timesheets. Это относительно небольшое, но очень важное приложение для отслеживания времени, проведенного над разными проектами в командах. Мы верим, что это побудит наших партнеров делиться своими аддонами и решениями, расширяя сеть контактов в коммьюнити Jmix.

Поддержка Jmix 1.X и CUBA Platform

Платформа Jmix 1.X готовит обновления с выходом Jmix 1.6 к середине 2024 года, как и планировалось.

Согласно нашей политике поддержки, мы будем предоставлять CUBA platform обновления сторонних зависимостей и исправления ошибок. Пожалуйста, имейте в виду, что в марте 2025 года заканчивается период бесплатного обслуживания CUBA platform. Чтобы помочь сообществу с миграцией на Jmix с платформы CUBA, наша команда готовит дополнительные ресурсы по существующим успешным кейсам перехода. Мы планируем подготовить вебинар и гайд по этой теме во II квартале 2024 года. Недавно мы получили вопросы, касающиеся дальнейшей поддержки Jmix 1.X и CUBA platform. Ответы на большинство из них вы можете найти в FAQ.

На этом пока всё. Надеюсь сообщить, что почти все из списка было выполнено в соответствии с планом в начале 2025 года! До скорой встречи.

Оставайтесь с Jmix и будьте продуктивны.

FAQ о поддержке CUBA Platform и Jmix 1.X

Что делать, если у нас все еще есть приложения, разработанные на CUBA Platform?

Планируйте обновление до последней версии Jmix. Если вы не можете обновиться, убедитесь, что ваше приложение работает в безопасной среде за брандмауэром.

Как получить поддержку для приложений на CUBA Platform после 2025 года?

Свяжитесь с нами.

Как вы будете исправлять проблемы уязвимостей CUBA Platform и Jmix 1.X в течение бесплатного периода поддержки LTS?

Бесплатный период поддержки для версий CUBA и Jmix LTS предполагает, что мы исправляем критические уязвимости безопасности и ошибки, приводящие к потере данных, путем предоставления новых патч-релизов. Если проблема в нашем собственном коде, мы полностью контролируем ситуацию и можем быстро решить проблему. Но если проблема связана с зависимостью от сторонних разработчиков, все становится гораздо сложнее. Мы должны дождаться, пока поставщик зависимости выпустит новую версию с исправлением, а затем пытаться интегрировать эту версию в Jmix. Это не всегда возможно, потому что иногда проблемы исправляются в новой основной версии, несовместимой с версией Jmix LTS.
Например, Jmix 1.5 использует Spring Web 5.3, в котором есть серьезная уязвимость, связанная с десериализацией ненадежных данных в Java. Команда Spring исправила ее в версии 6.0, просто удалив уязвимый код. Но Jmix 1.x не может использовать Spring 6.x, потому что последний требует пространства имен jakarta и влечет за собой множество других значительных изменений. Таким образом, с одной стороны, эта уязвимость всегда будет присутствовать в Jmix 1.x, но с другой стороны, ее нельзя использовать в приложениях Jmix, потому что уязвимый код Spring на самом деле никогда не используется.
В целом, наш подход к уязвимостям безопасности следующий:

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

Как будет осуществляться бесплатная поддержка платформы LTS?

Смотрите Обратите внимание на политику версионирования релизов Jmix в специальном разделе на сайте: «После активной фазы поддержки релиз переходит в фазу обслуживания. Под обслуживанием понимается исправление критических уязвимостей безопасности и ошибок, приводящих к потере данных. Исправления предоставляются в новом патч-релизе поддерживаемой версии». «Если критическая уязвимость безопасности или ошибка, приводящая к потере данных, вызвана внешней зависимостью от сторонних разработчиков, мы обновляем зависимость, если есть новая исправленная версия. Могут быть случаи, когда мы не можем включить новую версию зависимости, если архитектурные изменения для этой версии препятствуют ее использованию в Jmix или усилия, необходимые для интеграции новой версии, превышают разумные коммерческие усилия».

Что делать, если мы уже начали проект с Jmix 1.X?

Вы должны планировать обновление до последней версии Jmix.

Jmix - это open-source платфора быстрой разработки бизнес-приложений на Java