Все статьи ↓
Jmix
платформа для разработки приложений с открытым кодом.
Попробовать Jmix
6 месяцев назад

Jmix 2021: итоги и планы

Начало года – традиционное время подвести итоги и поделиться планами команды Jmix.

2021

Прошедший год был самым насыщенным за всю историю Jmix/CUBA Platform. Мы много экспериментировали, запустили несколько новых направлений. Команда выросла до 60+ человек. Адаптация новых сотрудников создала дополнительную нагрузку в начале года, но зато сейчас наши возможности кратно выросли. Отмечу, что это стало возможным в том числе благодаря грантовой поддержке РФРИТ. Радует, что государство поддерживает развитие open-source технологий.

Главной задачей года, конечно, было выпустить стабильную версию Jmix. Версия 1.0 была опубликована в июне, хотя, честно говоря, я думаю, окончательно стабильным Jmix стал только в ноябрьской версии 1.1. В ней появилось огромное количество улучшений по юзабилити, увеличилось покрытие документацией, были мигрированы основные аддоны CUBA Platform. Так как корпоративное ПО живет и развивается десятилетиями, поддержка миграции на новые версии фреймворка всегда была нашим приоритетом. В Jmix 1.1 мы реализовали механизм миграции для проектов на CUBA и надеемся, что со временем большинство проектов воспользуется этой возможностью.

Яркое событие прошедшего года – выпуск командой совершенно нового продукта, JPA Buddy. Мы переосмыслили опыт работы с моделью данных в Jmix Studio и адаптировали его в виде плагина IntelliJ IDEA к любым Java или Kotlin проектам, использующим JPA. Успех JPA Buddy превзошел самые смелые ожидания – за год плагин скачали более 500 000 уникальных пользователей! Это подтвердило гипотезу, что наши подходы к ускорению разработки, представленные в виде простых, неинвазивных инструментов, востребованы среди большого числа разработчиков.

Можно подумать, что JPA Buddy не имеет отношения к сообществу Jmix. Однако он привнес интересный «побочный эффект». Такой небольшой и популярный инструмент имеет очень короткие релизные циклы и моментальную обратную связь. В свою очередь это помогает сделать качественный и удобный для разработчика продукт. И далее мы копируем множество идей и возможностей JPA Buddy обратно в Jmix. Например, так мы перешли от собственного механизма генерации скриптов миграции БД к индустриальному стандарту в виде Liquibase.

Важным новым направлением стал проект CloudControl, расширяющий возможности Jmix автоматизацией DevOps и развертыванием в облаке. После его релиза Jmix будет поддерживать весь жизненный цикл приложения – от прототипирования до эксплуатации. Будет поддерживаться два основных сценария:

  • Развертывание «в один клик» из Studio непосредственно в публичные облака, такие как AWS и Yandex.Cloud – идеальный вариант для прототипов, мини-проектов и демо.
  • Предоставление полноценной инфраструктуры и совместной среды разработки для управления и развертывания проектов без требования глубоких знаний DevOps.

Остановлюсь подробнее на последнем пункте. В соответствии с нашим принципом «не изобретать колесо», CloudControl основан на GitLab, так что вы получаете готовый к использованию багтрекер, поддержку CI/CD, репозитории git и бинарных артефактов. Кстати, если вы уже используете GitLab, CloudControl может работать с ним. Поверх возможностей GitLab CloudControl добавляет:

  • Генерацию кода и визуальные редакторы для конфигурации Terraform, Docker Compose и Kubernetes, что позволяет легко описывать требуемую инфраструктуру.
  • Создание и управление средами развертывания для вашего проекта в публичном облаке или приватном Kubernetes.
  • Автоматическую настройку типовых CI/CD процессов.
  • Политики управления доступом к проектам и средам.
  • Упрощенный, сфокусированный веб-интерфейс, интегрированный с Jmix Studio.

По сути, CloudControl является мостиком между инструментами разработки, DevOps и инфраструктурой развертывания.

Большая работа была проведена по направлению фронтенд технологий. Изначально мы планировали, что новый React клиент поверх универсального GraphQL API станет полноценной альтернативой для Vaadin. Но в процессе разработки поняли, что поддержка двух равноправных и при этом разнородных UI клиентов кратно увеличивает сложность фреймворка: двойной объем документации, разные API, инструменты и т.д. К тому же, универсальный API Jmix не всегда встречает понимание среди веб-разработчиков, привыкших к работе с набором определенных серверных методов.

Это привело к переосмыслению нашей стратегии. Jmix сохранит Vaadin как основной UI клиент, как и фокус на бесшовной разработке всего приложения на одном языке – Java или Kotlin. Кроме того, Jmix Studio автоматизирует создание кастомных REST/GraphQL методов (в дополнение или в качестве альтернативы универсальному API), чтобы упростить использование Jmix приложения в качестве бэкенда. Из этих соображений мы начали работу над обновлением до последней LTS версии Vaadin 23.

Тем не менее, огромная работа по поддержке React клиента не была потеряна. Недавно мы выпустили бета-версию React Buddy – плагина для IntelliJ IDEA/Webstorm, который добавляет удобные визуальные редакторы для работы с React проектами. Как и в случае JPA Buddy, мы надеемся, что он станет популярным и также принесет пользу сообществу Jmix. С некоторыми доработками React Buddy может обеспечить Jmix разработчикам возможность создавать интерфейсы на React поверх GraphQL сервисов Jmix в привычном RAD стиле. При этом, будучи отдельным инструментом, он не будет переусложнять код Jmix.




Как и планировалось, мы начали работу над прототипом кроссплатформенного мобильного клиента на Flutter поверх того же GraphQL API. Кроме того, мы работали над визуальным редактором JPQL запросов, поддержкой расширяемой палитры типовых шаблонов кода, а также поддержкой BPM дизайнера непосредственно в Studio. По всем направлениям мы добились хороших результатов. Единственное, что мы не успели – реализовать поддержку дизайнера печатных форм в Studio.

Наконец, в декабре мы запустили новый сайт. Это стало первым шагом к корректировке маркетинговой стратегии Jmix. Мы видим большой интерес к Jmix среди тех, кто в первую очередь заинтересован в эффективности разработки и практическом результате: технических менеджеров, фрилансеров, сотрудников небольших IT компаний. Поэтому мы делаем больший акцент на преимуществах для бизнеса. Мы позиционируем Jmix как более гибкую и дружелюбную для разработчика альтернативу распиаренным Low Code платформам, которая к тому же предоставляет полный контроль над кодом и не вынуждает бесконечно платить за использование вашего же продукта. Я надеюсь, что вместе с новыми возможностями Jmix это поможет нам нарастить продажи и ускорить рост сообщества. Кстати, в этом году мы выросли более чем на 20% практически без активного продвижения, что лишь укрепляет нашу уверенность.

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

2022

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

  • Q1. Визуальные редакторы JPQL запросов и бизнес процессов в Studio, аддоны “Бизнес-календарь” и “Пользовательские уведомления”
  • Q2. Бета версии CloudControl и UI клиента на Vaadin 23
  • Q3. Стабильные версии CloudControl и UI клиента на Vaadin 23

Работа по Flutter пока приостановлена, чтобы у нас хватило ресурсов довести остальные направления. Конечно, мы планируем выпустить еще много интересного. Более того, у нас есть «секретное» направление, о котором я обязательно расскажу позже.

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

Андрей Глащенко
Jmix
платформа для разработки приложений с открытым кодом.
Попробовать Jmix