Skip to content
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] GUI Redesign Mock Up #2848

Open
jbrot opened this issue Aug 20, 2019 · 32 comments
Open

[Discussion] GUI Redesign Mock Up #2848

jbrot opened this issue Aug 20, 2019 · 32 comments
Labels
Discussion needed Enhancement New features or functionality GUI Issues affecting the interactive GUI macOS Issues specific for macOS

Comments

@jbrot
Copy link
Contributor

jbrot commented Aug 20, 2019

As I mentioned in #2799, I am planning on creating a new GUI for Mac OS X that better integrates with the system. Right now, my plan is to write a new GUI in Xamarin, which will provide a native UI instead of using mono's implementation of Winforms.

Since I will be writing an entire UI either way, this seems like a good opportunity to redesign how the CKAN UI looks. Since Xamarin also supports Windows and Linux (via GTK), I could bring this UI to Windows and Linux if it is received well. This is my first mock up for what a redesigned UI could look like:

mock

I would love to hear any feedback. Is this a reasonable direction to take CKAN? If this seems like a reasonable approach, I will then mock up the rest of the UI to make sure the new UI has feature parity with the old. Then, after further discussion, I will actually implement the UI per the mock-ups.

@HebaruSan HebaruSan added Discussion needed Enhancement New features or functionality GUI Issues affecting the interactive GUI macOS Issues specific for macOS labels Aug 20, 2019
@HebaruSan
Copy link
Member

For comparison, this was what I came up with for an ElectronUI rewrite (@DasSkelett, an old build on Windows was still working, so finally a screenshot!):

image

The left drawer slides in and out to allow game instance selection.

image

Can't show the modules list because fails to load due to file format changes, but it's similar to what you have there.

image

@HebaruSan
Copy link
Member

Ahh there we go, mod list:

image

Searching:

image

Mod info:

image

@jbrot
Copy link
Contributor Author

jbrot commented Aug 20, 2019

Very cool! I didn't know there was an Electron UI. Are you still developing it? An Electron UI would solve all the issues I'm setting out to solve with the Xamarin UI.

@HebaruSan
Copy link
Member

I got a certain distance with it and ran out of steam, then recently when I tried to get it working again on Ubuntu the node-js tools wouldn't play nice. So far I'm having more luck on Windows.

The code is here if you'd like to take a look. I'm working on rebasing it on current master, so there may be a force push on this branch in the near future:

https://github.com/HebaruSan/CKAN/tree/feature/electron-ui

@jbrot
Copy link
Contributor Author

jbrot commented Aug 20, 2019

Interesting. Do you think it's still worthwhile to pursue a Xamarin based UI?

@HebaruSan
Copy link
Member

HebaruSan commented Aug 20, 2019

Interesting. Do you think it's still worthwhile to pursue a Xamarin based UI?

I don't know. Maybe? I don't want to discourage your idea, but if you'd rather take that ElectronUI branch across the finish line, I'd obviously be delighted to see it completed. To be clear, this was a private experimental skunk-works project that I was trying just to see how far I could get, not an official team-planned project, so it's not any more officially-endorsed than a Xamarin UI.

Anticipated/encountered challenges with it:

  • Integrating it into CKAN's existing build system
  • 100+ MB downloads (as compared to 3.5 MB today)
  • Very painfully long build times
  • Surprisingly non-cross-platform build process (MacOSX VM required??)

@HebaruSan
Copy link
Member

HebaruSan commented Aug 20, 2019

Rebase and force-push completed. If you check out the branch, try this to build:

./build --configuration=Release
./build electron-ui

@HebaruSan
Copy link
Member

HebaruSan commented Aug 20, 2019

Oops, that build won't generate a working package, because the net-core PR changed the path to the CKAN.dll that it was using. I need to go shopping for a bit, but I'll try to push a commit to fix that afterwards...

EDIT: All clear, should work after the latest force-push.

@nosmirck

This comment has been minimized.

@techman83
Copy link
Member

KSP is written using the unity engine, which is C#. Most of the mods are also written in C#, so it was decided early on that tapping into the same mind-share made sense.

Flutter appears to be written in Dart. Though the architecture is built to accommodate different front-ends, so someone could potentially write a Flutter UI if they wanted to.

@HebaruSan
Copy link
Member

I just stumbled upon this alternate Mac client that apparently uses CKAN's metadata but none of its code (it's written in Swift):

It uses a two-pane layout with a mod list on the left and mod details on the right:

screenshot

@willwill2will54
Copy link

Given the current situation with Catalina, it might be prudent to link to this client on the Readme or on releases, at least as an interim measure until the official client works on Catalina.

@techman83
Copy link
Member

The only problem I see is the lack of re-use of the CKAN core. CKAN is a lot more than just a gui, in fact the core was written before the GUI. I think it's wonderful other projects are getting use of our metadata (it's licensed to allow this freely), but the team are already spread thin support wise and short of being a front end for the strong guarantees the core makes about how mods are managed it would have to remain a separate unofficial client for CKAN metadata.

@HebaruSan
Copy link
Member

I don't think we could officially endorse that client to users, as it's missing a lot of core features (e.g., it doesn't support upgrading mods or find_regexp or find_matches_files or filter or any_of). Since it doesn't use the CKAN core, it has to re-implement everything we do. But in exchange, it doesn't require installing Mono.

I was mainly sharing it here to make others aware and to show the UI.

@HebaruSan
Copy link
Member

HebaruSan commented Mar 28, 2020

@HebaruSan
Copy link
Member

Mac developers! @winsmith @WowbaggersLiquidLunch

Mac development has lagged behind primarily because we do not have Mac developers on the team. You can change that. Join! Help! At the very least if all of the lone wolf Mac developers who want to write a Swift client were to collaborate, there would be a better chance of finishing something and maintaining it over the long term.

Or, @jbrot has been continuing to make updates to his Xamarin branch, maybe he could use some assistance?

@winsmith
Copy link

That’s a good point! I’ll have a look tonight and see where I can bring myself in!

@WowbaggersLiquidLunch
Copy link

Thanks for tagging my project here @HebaruSan !

I completely agree that mac developers need to collaborate, so we can get a proper Swift/Cocoa client out.

Personally, I don't think I will be able to contribute to the Xamarin branch tho. I have practically zero knowledge in C#.

@WowbaggersLiquidLunch
Copy link

@winsmith I took a lot of inspiration from your Launch Pad, during my initial development of neuCKAN. We should definitely collaborate.

@winsmith
Copy link

winsmith commented Apr 15, 2020

So I have a question about the Xamarin thing. Is it a requirement to develop the UI in Xamarin? I'd vastly prefer working on a standalone OSX user interface with some kind of bindings to the CKAN core. It'd look better, it'd be more future-proof because it's not dependent on Xamarin updating their libraries to the newest MacOS, it'd be way more accessible for vision impaired users, and it'd be more Mac-like. Is there a way forward in this direction?

@XanatosX
Copy link

XanatosX commented Jun 2, 2020

I did play around with https://avaloniaui.net/ this weekend. The library is .NET core based and is cross platform as well. The UI works like the WPF forms for windows.

Maybe this is an idea as well?

Edit: Correcting typos and grammar issues

@nosmirck
Copy link

nosmirck commented Jun 2, 2020

If you really want to maintain using .Net, then, go with Xamarin Forms and later migrate to MAUI, but I believe a Flutter port would be nicer :)

@techman83
Copy link
Member

I did play around with https://avaloniaui.net/ this weekend. The libary is .net core based and should is cross platform aswell. The UI is like the WPF forms for windows.

That's neat @XanatosX. Cross platform and license compatible with the project!

If you really want to maintain using .Net, then, go with Xamarin Forms and later migrate to MAUI, but I believe a Flutter port would be nicer :)

@nosmirck my last comment still applies. You'd be more than welcome to write a frontend in whatever framework you desire.

@TV4Fun
Copy link

TV4Fun commented Sep 21, 2022

Is there any update on efforts to make the GUI cross-platform? How complex is the current WinForms GUI code? My thought would be to rewrite the UI in something with cross-platform support that would still look basically the same like Tk. Is anyone actively working on this?

@TV4Fun
Copy link

TV4Fun commented Sep 21, 2022

Also not sure if this is redundant with #1840.

@HebaruSan
Copy link
Member

HebaruSan commented Sep 21, 2022

So far the way it has worked is that a few times a year, somebody does a drive-by with a new suggestion for a language/platform/library/whatever, then disappears without actually writing any code. Hi! 😉

I still have my ElectronUI branch and spent some time recently getting it working again on Linux and updating all the dependencies. So many things had changed or broken (gotta love the Node.js chaos ecosystem) that it was a near-rewrite, and getting it back to where it was 3 years ago used up most of the energy I had to spend on it. I didn't get to the point of adding new functionality.

https://github.com/HebaruSan/CKAN/tree/feature/electron-ui/ElectronUI

@TV4Fun
Copy link

TV4Fun commented Sep 21, 2022

Well you have just managed to talk me out of using Electron. Or anything else JavaScript-based for that matter. I might try to do something with Python in tkinter, but others (i.e. #1840) have been talking about using GTK#, and I'm not sure where their progress is on that

@TV4Fun
Copy link

TV4Fun commented Sep 21, 2022

Okay, I just looked at the source code for one class in the GUI namespace, and I'm beginning to understand why this happens. May I suggest nuking the whole GUI from orbit?

@HebaruSan
Copy link
Member

I'm guessing there would be a few complaints from Windows and Linux users if we did that. :)

@Teslamax
Copy link

Teslamax commented Sep 21, 2022 via email

@Teslamax
Copy link

Please pardon my bumping this…

Any updates?

I am playing KSP on Windows again, so a GUI for Linux or Mac is less of a priority for me. In any case it’d be nice to have all of CKAN be cross-platform.

@HebaruSan
Copy link
Member

HebaruSan commented Nov 25, 2023

Any updates?

No.

a GUI for Linux

The current GUI works fine on Linux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Discussion needed Enhancement New features or functionality GUI Issues affecting the interactive GUI macOS Issues specific for macOS
Projects
None yet
Development

No branches or pull requests

10 participants