Col-E / Recaf

The modern Java bytecode editor
https://recaf.coley.software
MIT License
6.04k stars 467 forks source link

Add web UI support via Vaadin Flow #523

Open rucko24 opened 2 years ago

rucko24 commented 2 years ago

Migrate to Vaadin Flow ?

have followed the recaf project for a long time, I know that at first it was based on javax swing, then javaFX.

Well, it turns out that the Vaadin Flow framework allows you to build a web app with pure java code, as well as include code for the front such as js, typescript etc.

Vaadin stands out because initially, a back programmer can build a web UI with java, and the learning curve is short.

Right now I see it as viable, although there are things that recaf does in the background, that I don't know if it's necessary, interacting in a forced way at a low level always.

win32kbase commented 2 years ago

I think you're a little too focused on if you can do it rather than if you should do it. A web version has almost no benefit and it would just be additional overhead and junk to bundle into our desktop builds.

rucko24 commented 2 years ago

Honestly, I don't think more crap needs to be included in desktop builds, I'm sure all of that will depend, partner. xD

smallshen commented 2 years ago

Java Applet 👍

Col-E commented 2 years ago

I think it'd be neat, but its not something I have high on the priority list. The way Recaf 3X is designed would allow an additional web UI implementation. Though, making a complete UI front end is a large undertaking. Its not something I personally am going to invest time into since my attention is on the JFX presentation layer and core library features.

If anyone wanted to do this:

Each UI needs to listen to callbacks from: https://github.com/Col-E/Recaf/blob/dev3/recaf-core/src/main/java/me/coley/recaf/presentation Then provide some means of viewing / updating class files. With the callback system, most things should automatically update throughout the UI once a change is pushed from anywhere.

As an example here is the JFX GuiPresentation.java

Col-E commented 2 years ago

Renaming the issue to more clearly indicate this could be done as an addition rather than a replacement

rucko24 commented 1 year ago

Java Applet +1

Hyper obsolete, that's no good.