Ckan: [Discussion] GUI Redesign Mock Up

Created on 20 Aug 2019  路  23Comments  路  Source: KSP-CKAN/CKAN

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.

Discussion needed Enhancement GUI macOS

Most helpful comment

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.

All 23 comments

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

Ahh there we go, mod list:

image

Searching:

image

Mod info:

image

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.

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

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

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??)

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

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

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.

What about Flutter? I'm pretty sure we can remake CKAN with Flutter.

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.

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

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.

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.

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.

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?

That鈥檚 a good point! I鈥檒l have a look tonight and see where I can bring myself in!

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#.

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

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?

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

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 :)

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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jupiterbjy picture jupiterbjy  路  3Comments

Unhunter picture Unhunter  路  3Comments

davidgiven picture davidgiven  路  6Comments

core-code picture core-code  路  5Comments

mynameis1234 picture mynameis1234  路  7Comments