quiverproject / quiver

Live reload QML & design for multiple platforms simultaneously
MIT License
2 stars 0 forks source link

GUI app #4

Open ggamel opened 10 years ago

ggamel commented 10 years ago

When using a modern UI asset design application, such as Sketch, the ability to easily engage a series of helper GUI is a simple hotkey press away.

See a screenshot & GIF:

Sketch - example of helper GUI

Sketch - helper GUI GIF

The purpose of this UI is to allow a designer to quickly, and briefly, view pixel-perfect spacing between elements. A simple bit of UI for a simple task.

Some questions:

@JoshuaKolden, what are your thoughts?

mrjoshuak commented 10 years ago

Yes this is along the lines of what I was thinking. However, I think we can do better. These tools often have a limited selection of pre-made widgets but QML doesn't have such limitations. You can pretty much draw whatever you want and make it into whatever kind of ui element you want. So an interactive GUI editor would need to be pretty feature filled to be able to encompass that.

I think the right approach is to start with monitoring text files and updating the UI as the files are changed, than add some basic interactive alignment tools that write UI adjustments made graphically back into the text file (most text editors will notice the external change to the file you're working on and reload).

Then we can move incrementally from there adding features. I just want to make sure that one way of interacting with QMLKit doesn't block the other.

I'm not so sure about a hot key, since that would block the app from using that hot key. I was, however, thinking that we should have a separate control panel from the app itself that could provide mode selection, widget library etc.

Also, not to get too ambitious, but I think this can be setup to build c++ objects too. Perhaps something a little like this:

https://www.youtube.com/watch?v=rbAj7hn24vo

ggamel commented 10 years ago

Yes this is along the lines of what I was thinking.

Perfect. I also agree, now, regarding the hotkey; your argument makes sense.

A separate QMLKit control panel app would be far more useful, too. This is a very cool idea to move forward with, especially if we could include the following:

Final note: let's stay ambitious with QMLKit's roadmap, especially the idea of building C++ objects. I'll note it would be pretty swell to have something similar for scaffolding out QML objects, as well.

ggamel commented 10 years ago

I've chatted with @nathanjahnke about this, but not for any considerable amount of time. We were totally focused on getting the core functionality in place, first.

Nathan and I discussed two paths the project should pursue: CLI & GUI.

Since this issue is related to the GUi, it's helpful to mention @JoshuaKolden pointed out QML offers enormous flexibility in terms of drawing any sort of helper GUI. If implemented correctly, the most hardcore devs that are 'CLI-only" could even benefit from this wok.

My preference would be to start with custom QML components that help provide interactive guides for alignment purposes.

These can be interactive, of course, in order to help us start our UI in code, then make adjustments interactively that are instantly written to code.

I'm imagining this scenario:

  1. Quiver features custom, core QML components that provide tremendous value
  2. Every helper can get out of your way and is optional
  3. The helpers really have to help developers and designers move quickly in prototyping, then in producing real work; see point 1.
  4. The code written after interactive adjustments can't be ugly.

Now, this solution is not necessarily without potential faults, especially because experienced developers and designers are trained to distrust layout code generated for them. BUT, this ability to make alignment tweaks could be very useful if implemented correctly.

Thoughts, everyone?