We provide a ready-made architecture, services and APIs that are built on top of a data model, and developers are already building this data model (JPA) and writing business logic (Spring Boot). Everything else is provided out of the box or can be easily connected: security and audit subsystems, automatic REST API creation, multi-tenancy and other system services. In addition, a toolkit has been developed for more efficient work with the framework.
Jmix 0.9 is the latest pre-release, “near-stable” branch of the framework. Along with this release, we also update the tool for Jmix developers – Jmix Studio: 0.9.1-202.
In this release, we have “frozen” all the main APIs: the definition of the data model, the database access layer, and the security system. With a high degree of probability, all this will be carried over unchanged to version 1.0. This means Jmix 0.9 can be considered a great option for MVP development. The 1.0 migration is expected to be virtually invisible.
Let’s take a look at the most notable changes in different parts of the framework.
The first thing worth mentioning is that you can now create different kinds of projects on Jmix. In version 0.9, when creating a project, you can choose three types of templates:
- Application – to create a “regular” Jmix application.
- Theme – to create a CSS theme for the application. The theme can be installed in the Jmix application as a component.
- Widget – This type of project makes it easy to develop your own user interface element.
To make your work easier, Studio provides separate window for working with the project… With it, you can view application configuration files, explore the data model, configure data sources, and do many more Jmix-specific things.
The core of the framework is currently based on Spring Boot 2.4.2 and we plan to update it to the latest version 2.4.4 in Jmix 1.0. And, of course, the update process will not stop there, but will continue with the release of new versions of Spring Boot.
As already announced, Liquibase becomes the main means of updating the database in Jmix. As it was in CUBA, when the data model is updated in the application, the database creation scripts are also updated. But unlike its predecessor, in Jmix, these scripts are now created in XML format and, thanks to the Liquibase engine, can be executed on different DBMS.
Experienced CUBA developers will surely notice an unusual detail: now a class has appeared in the code of an “empty” application
User, which used to be hiding in the bowels of the framework. This is a deliberate move: we decided to generate key classes of the user management subsystem directly for each application. This should make it much easier to change the user and privilege functionality if the need arises.
At the moment, all components have been redone to use the Jmix API and are ready for release. Reminder: in Jmix, the Backoffice UI is located in the same module as the business logic. No more modularity
webas it was in CUBA.
At the moment, Backoffice UI is added to the Jmix project by default. But this is just another entry in the list of dependencies in the build script. So you can easily remove the UI from the application if needed. And of course, screen generators are included in Jmix Studio, so adding CRUD functionality to your application is done in a couple of clicks.
The client’s React generator has been greatly improved. We continue to develop libraries to simplify development in ReactJS for Jmix. At the moment, two libraries have already been created: Jmix React Core to work with Jmix entities and services, and Jmix React UI – a set of UI components for fast user interface development.
And now it is possible to apply custom themes for the React client, similar to how it is done for the Backoffice UI. An entire documentation section…
There are currently six components available for download:
- REST API
- Dynamic Attributes
- Entity Log
- Entity Inspector
We continue to actively work on adapting components for Jmix, and BPM and Charts components will be released for version 0.9. For 1.0 we will try to adapt most of the most commonly used components.
If you’ve had any thoughts about using Jmix, now is a very good time to start doing it. The API is stabilized, so nothing will need to be redone when migrating an MVP to a stable version in the future.
And at the same time, when working with the framework, you can already try adding Spring Boot components, try to deploy the application in the clouds using built-in Docker image generation, all while maintaining the unrivaled development speed, so familiar to those who started with CUBA.