-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(Discussion) Path moving forward for UI/UX redesign #4398
Comments
Adding on to option 2, here's a comment from @michaelgregorius on this thread. I hadn't read it until now, but it lines up very well with what I was thinking.
I would be willing to take on a project lead role, regardless of what path we choose moving forward. I would also certainly be open to someone more qualified stepping up to the plate. |
This week I'm going to be giving a talk at LAC on the MRuby-Zest framework and several parts of that presentation (and to a lesser extent the details on the rtosc talk also being given at this LAC by myself) are quite relevant for this sort of planning discussion. Rather than just saying "Watch the talk and/or show up at LAC if you're in the area" (which you should do anyhow since LAC is pretty darn cool) I'll provide a preview based upon my current quasi-script I have for myself:
So, that's something like the first half of the presentation, I'd recommend watching live to see the rest. |
@SecondFlight I will just observe this because I am not programmer, I don't have any power here, but just want to say keep going with anything you want to make, even if nobody want to contribute please do not be discouraged and do whatever you can, but I hope many of active developers will involve into this. Good luck with this! |
I think for the time being I'll work on the various low-level widgets. Even if none of it is useful based on where this project goes, I'm sure I'll learn a lot and be better equipped to help out. |
PR #4367 suggests that option 2 (build upon the existing toolkit) is the accepted approach for now. I'm pervy to the fact that a private rewrite was started but never shared publicly. If that makes it to fruition (or if anyone disagrees with the closing of this thread) we can reopen. |
For some background, read the discussion on this PR: #4367. If you have no idea what I'm talking about, see this issue: #1911.
I have become very interested in the UI redesign as of late. I would like to see it happen, and I am personally willing to put in the grunt work to make it happen. Things may get more chaotic for me in a few months when school starts back up again, but for the time being I'm in a very stable position with a great work-life balance, and I have plenty of free time to work on projects like this.
As I've thought about it, and as I've talked to various people, I've realized that doing this the right way will involve some major changes to the internals of the software. There are multiple paths forward that we could take, but I believe it is crucial that we take the right one, or at least that we take one that is carefully thought out by all those involved. This is not a project that should be hacked together.
As I see it, the paths we have are as follows. Please add your own ideas if you see more options, and I will add them here.
1. Rewrite the entire software.
This option has its advantages and disadvantages, but as I see it the disadvantages outweigh the advantages. If we had a smaller codebase and a larger team this might be feasible, but a rewrite of a codebase this large would be a monstrous undertaking. In addition, we would need a lot of organization and planning to keep this from making the software worse. I don't believe this is the right way forward, but I'd be happy to be convinced otherwise.
2. Build upon the existing toolkit.
This is the option that I'm currently leaning towards. It means that anyone can start right now with making new widgets based on @budislav's design and make meaningful progress in smaller increments. We will need to put some thought towards some of the core, and we will need to enforce uniformity as well as good design patterns, but that will be very doable. We will also want to put some thought towards things like high DPI displays, as well as how we're going to deal with the core code, but these are all things that can be handled in isolation from one another to some degree.
I think it's crucial that we create a framework for GUI design instead of just a few widgets. We should be able to add various panels by adding a widget instead of forcing each plugin to do the work themselves. This will make compliance to the new UI much easier in the future. I also think we should avoid images as much as possible, but that's a potential debate that I'm not qualified to participate in.
3. Rewrite the UI system.
This is somewhere between options 1 and 2. In the PR I linked above, @fundamental mentioned that his rewrite for Zyn used a custom layout engine and metadata to connect everything together. I don't see an easy way to break this down into smaller projects, but I could be wrong.
Please share your thoughts! There are important decisions to be made here which will affect much of the current codebase, and as a consequence, almost all future development. These are decisions that I canont and should not make on my own.
The text was updated successfully, but these errors were encountered: