Migration steps for the new Vaadin 23 UI

Hello,

when the new Vaadin 23 UI is available, will there be any required manual migration steps for the application code? Or can we expect a somewhat seamless transition?

2 Likes

Hi Klaus,

That’s a good question.

Our research and first design steps so far lead us to the conclusion that the new UI based on Vaadin Flow will be very different from the current one. Many aspects will be different: the set of components and their properties, components and screens API (types of events, base classes, builders, etc.), routing, screens working area.

Why is that? First of all, Vaadin Flow is very different from Vaadin 8 and there is no any automatic migration between them at all. Second, the current UI components in Jmix were designed long time ago to support both Vaadin and Swing (desktop) implementations, so now they look too heavyweight and superfluous. In the new UI, we would like to make integration of custom or third-party frontend components much simpler, so we need to make our own layer as thin as possible. If we focus on compatibility with the current UI, we’ll lose the advantages of the new Vaadin and limit the future opportunities.

So we cannot promise any compatibility or automatic migration. Of course, a lot of current UI features will stay the same, at least in principle: descriptors / controllers duality, data components, event handlers, Studio screen designer. The developer experience will be similar, but the API will change significantly.

This is our current understanding, of course it may change down the road.

Regards,
Konstantin

1 Like

Thank you for your thorough answer @krivopustov .

Do you think it will be possible to use both in a project, so a slow transition to the new UI can be done?

Yes, I hope so.

1 Like

Technically it seems to be possible, since for plain vaadin apps there is a feature called multiplatform runtime.

But it is only present for paid vaadin customers. See: https://vaadin.com/docs/v14/tools/mpr/overview

Cheers
Mario

1 Like

Hi Konstantin (@krivopustov)
I guess you have made some progress on Vaadin 23 by now, I am curious about where do we stand in terms of automatic migration from current to the upcoming version of Jmix with Vaadin 23.

Another related question. I have a large project originally built on CUBA v. 6x and later migrated to v7x and I still have some screens based on v6.x and many of them are modified to v7.x. Since we are moving to Vaadin 23 from 8 in Jmix later this year, what would be the most effective steps to move ultimately to vaadin 23 Jmix. which of the following scenarios will be more applicable?

  1. CUBA v 6.x and v7.x → Future version of Jmix 2 Vaadin 23) directly. In any case there will be a lot of changes in code
  2. First I migrate all v6.x and v7.x → JMIX 1.x to make the migration to Jmix 2 relatively simpler

Thank you for your suggestion, this will help a lot.

The set of UI components and containers will be different, including their Java APIs, so I don’t think an automatic migration will be possible.

I would suggest to wait until Jmix with the new UI is ready and stable, then migrate CUBA → Jmix, and rewrite your screens. For simple CRUD screens, perhaps the best strategy will be just re-generate them from scratch.

1 Like

Thank you Konstantin for your suggestion. I’ll then wait for the new version to migrate from CUBA so that I don’t have to deal with such impact management twice.

Hi @krivopustov ,

Hope everything about next version of Studio and Framework goes well .
I have two questions about Vaadin Flow:

  • I know the UI components of Vaadin Flow are mobile-friendly. Is there any supports for mobile UI in Studio, what can I expected ?
  • Is there a conclusion for possibility of using both UI in a project?

Regards,
Ray

Hi Ray,

Yes, we are going to deliver the preview version of Flow UI (it’s now official name of the new UI module) in Jmix 1.3 this June.

Do you mean choosing different canvas dimensions in Studio visual designer? It’s on our todo list.

Unfortunately it turned out to be very difficult, so we postponed further investigation to a later stage.

Regards,
Konstantin

2 Likes

Hi Konstantin,

Tanks for your answers.

Yes, exactly! Looking forward to next version.

Regards,
Ray

Can’t see any tickets for vaadin 23 here: Release 1.3 · GitHub - does that mean delivery of preview version of Flow UI has been delayed?

Hello @klaus, I see that it’s included in the backlog.

image

Oh right, thank you! :slight_smile:

EDIT: But my question from before is actually still valid, because it’s still in the backlog and 1.3 is scheduled for June - so, this month. :wink:

This issue is actually in progress, you can find quite a lot of linked commits inside. The backlog status is a little fluctuation in our dev process.

So you will definitely see the Flow UI preview in v.1.3 this month.

3 Likes

Ok, awesome, I’m super excited. :slight_smile: So is it already possible to start migrating to Vaadin 23 with Jmix 1.3?

1 Like

https://docs.jmix.io/jmix/1.3/whats-new/index.html#flow-ui

Alright! :slight_smile:

2 Likes

Not so fast, please :slight_smile:
There is a lot to be done to make the Flow UI comparable in features with the current Vaadin 8 UI and stable enough.

In the upcoming months, we are going to improve the Flow UI module and its support in Studio with each 1.3.x patch release. There will be a lot of backward incompatible changes in this module.

The purpose of the preview is to give an idea of how it will look, and to start getting feedback to prioritize the further development. It’s also an important milestone for the Jmix team.

We’ll be happy to hear your thoughts about what should be implemeted/fixed first!

2 Likes

@krivopustov I think the most important features missing right now are:

image

:wink: Without those, it’s really hard to customize (or try to customize) the view.

I learned a lot of the CUBA framework by just exploring what I can inject and what I can generate a handler for.

1 Like

Sure, it’s on the way.

1 Like