-
Notifications
You must be signed in to change notification settings - Fork 152
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
Version 0.1 Roadmap #31
Comments
I feel like animations/transitions are pretty important in modern software as well. Add it to the list? |
This might be solved automatically by implementing everything as generic streams. |
For the lay out manager of components, please consider also looking at the imperative programming style of MigLayout API. It's small easy-to-read tutorial/manual is enough to give you an overview of its entire API. |
Does this have advantages over just using flexbox? |
|
We already have |
Good job! Can you give an approximate completion time? I insterest in v lang and I want dev cnc controll software using vui. |
@origel No ETAs please. |
@thecodrr you can put me on animations, transitions are already merged |
I’m also looking at implementing a scrollview but no guarantee that I’ll be able to pull it off |
@memeone I will move on to ScrollView after the new API is merged. If you want to take it, I will look at something else. |
@thecodrr you can take it, maybe I’ll look at styling or hover feedback instead 🤔 |
@memeone okay awesome. |
@thecodrr I want implment some layout just like FillLayout,FormLayout, RowLayout and GridLayout in SWT, if vui is added layout function, vui can be used to develope actual software. But I have no idea if it is needed. and the layout description in 0.1 roadmap I don't know what does it mean, can you give me some suggestion? What can I do to make this project move faster? |
@origel I have already implemented 2 layouts: ColumnLayout & RowLayout. You should try it out. |
is the codebase of V in C? how can i write my own custom widgets and contribute? |
V is written in V, the main repo can be found at https://github.com/vlang/v Creating new widgets is quite easy, you can look at rectangle.v and label.v in this repo for some simple reference implementations. |
Will the lambda expression be added? Hope to be like kotlin anko's ui dsl |
Add MDI (Multiple Document Interface) |
Years ago I implemented in a Java UI framework the ability to disable animations and transitions, sometimes (on old/poor hardware and some kind on users) they are not needed ... maybe you could add here even a similar feature, but of course by default enabled :-) . Bye |
A navigator widget could be nice |
@lampato don’t really know what you mean by “navigator widget”. Do you have any examples? I’m gonna start trying to implement a few more widgets soon :) |
file dialogue probably |
@leahlundqvist a widget to navigator to/for a page with twists!! |
webview webview!!! |
It would also be nice to have a |
Proved to be worse according to who? |
E.g. Apple. But you don't need to seek only "proof by giants". I mean ask designers you have around and you'll find out yourself easily - they laugh at how low level constraints are and how much tedious work it is. It doesn't scale at all in the current state of being. That's why I said I'm not against inventing something new encompassing the whole thing and not just one tiny subset as current Cassowary solutions do. |
The exact opposite is true. Design tools like Figma let you set constraints, and those are a joy to work with; designers love that "auto-layout" feature. By contrast, trying to get CSS to do what you want is a gigantic pain every single day, as CSS is dramatically lower level than simply saying The performance penalty of the constraint solvers I've seen so far is real indeed; hopefully more efficient ones exist and can be implemented, because CSS is the single worst-designed technology I have ever touched. |
Are we talking about the same thing? Designers love Figma (as I wrote above) because it doesn't do Cassowary-like constraints, but a negligible subset of similar functionality. If designers needed to use Cassowary-like constraints for most of their work, they'd go crazy (I meant it literally when I said go ask them - or at least read some blog posts about advanced layouting using constraints and everybody will tell you they need something much more high level otherwise they'll rather stick with the braindead CSS because despite all its enormous downsides it still comes as the winner from this match 😢). Let me paraphrase - if programmers were forced to use assembly nowadays for most of their work, they'd lough at me proposing this. They'll rather use PHP or Visual Basic or Delphi instead despite all the enormous downsides these languages have today. Assembly has the maximum expresiveness our machines offer - same goes for the Cassowary technology (I'm deliberately not saying Cassowary implementations here because of them being rather "PHP"-like instead of "V"-like when it comes to usability and friendliness and overall usefulness). But there is no implementation with high level API which even approaches practical usefulness due to different shortcomings (find most of them outlined in my previous posts).
Here we univocally agree 😉. |
For 0.1, we need to review and complete the basics such as tab stops, event handling issues, and so on first. Then next step for widgets. |
Also moving to a non *GPL license should be considered. |
Some background :
Questions : |
|
Why? |
Because it's copyleft. Meaning it can only be used by open-source projects. So if I use V UI, my app also has to use GPL. |
Or you have to pay for a license, which is the intent here, I believe. Finding ways to monetize V is really important for the sustainability and longevity of the project! Paying a bit in order to be able to create one graphical app in V + V UI and have it run everywhere would be an amazing deal. |
It would be the beginning of the end to start pulling that and trying to force licenses, because there is already highly developed open-source competition. Look at the many Go GUI projects, for example. It would also be against the spirit and perception of how V is viewed, thus sending people away. The rest of V is MIT, so people expect for V UI to go that direction too (and has promised to do so). Debatably better to stay open source and go the donation route. |
The plan was to use MIT later. This current one is temporary. |
There are many projects under V umbrella which is *GPL which is irksome. |
I am assuming that many of these are temporary as well. |
Maybe we want to create another issue or thread to discuss this topic. My personal feeling is that :
|
I agree that GPL is like Pandora's box. When going that direction, it looks to just as easily destroy or confuse, as it can also help and preserve. It's a matter of people knowing what they are doing, and the full consequences and ramifications that go along with it. GPL isn't always bad, per se. For example in the case of V's Gitly, it's not likely anybody would be or want to be using it as a whole commercially or professionally. Rather, they use it to do tasks, not necessarily wanting to re-package it into anything. So there isn't as much concern that it's GPL, other than consistency with other V projects which are MIT (which how it looks is a concern). For example, a person may use a GPL project like NotePad++ to create files, but likely not need or want to use it directly for anything. However, things like programming languages and UIs have a different usage. People would be very much incorporating them into their projects. People very much want to use them professionally or commercially. If TCC (which V uses) was GPL, it would create absolute havoc and confusion, thus they had enough sense to put it under at least LGPL. A comparable project to V UI, would be one of Go's cluster of UI projects such as Fyne (github.com/fyne-io/fyne), which they smartly put under BSD, and not GPL. Most other open source programming language UI projects are under more permissive licenses such as LGPL, BSD, Apache, or MIT. Often in these days of open source competition, if they were or are commercial, they started that way (not switch up on their users). In various cases many commercial projects have ended up as free open source anyway, as were defeated by all the strong and free open source competitors that exist now. Another aspect of this is the expectation of users. There is the perceived promise by V UI, "At some point in the future the library will be relicensed under MIT." So clearly people are going to feel some kind of way if that promise is broken. Seems like better moves for projects which are and have started open source, would be to:
Quite sure supporters and interested people would buy a V UI ebook or training video. Very much liked "Getting Started with V Programming" from Packt. |
Textbox adds copy-paste support for mouse or keyboard |
For WebView, you might look into the C Bindings for webview I don't know exactly how you will be able to embed it into the UI framework, but it's probably the right starting point. A weakness of this solution is that it adds a dependency to the build output, but you would likely have that for any implementation of webview unless you built your own HTML/JS/CSS engine. An alternative that may be more difficult is Mozilla's Servo browser. This could potentially have rust libraries that could be exported as C Shared libraries and imported by V. I'm not loving that idea, but it might be an option. |
Please update to show the completed features so we know what to focus on. |
For WebView, maybe a V based https://tauri.app/ instead of Rust? |
Any update for web views? |
@Bellisario What do you think of Wailes ? I think it's fine, until vui is ready |
Thanks @bashery! I definitely need to give it a try... |
Hello all, Thank you for your effort thus far. My question is this, is there ANY .... any way at all ...... to track this roadmap in some more detail? I'm faced with the decision whether it is feasible to choose V as the right platform for our stack, and I really really want to choose V. Can we have this roadmap put in as Projects? I could help with that. I know that I can make it go faster by contributing with code, and thats on my roadmap as well. :) |
Databinding functionality and widget reactivity model. |
I hope you will allow cursor blinking to be switched off application-wide (why). Qt and Gtk support this and Tk 9.0 will also. |
Already done :) |
An option for software rendering (no OpenGL)? Would be pretty useful for older or embedded hardware. Even my 2011 Intel HD 3000 is not capable of rendering the UI, without emulating OGL in software. I honestly think it would fit better for what V is trying to be (minimal prerequisites and simplicity and all). |
Many features will need discussion so this thread acts as both a discussion & a task list for contributors/maintainers.
Notes:
API
eventbus
(@thecodrr)Window API
Responsiveness
Layout
Widgets
TextBox
Accessibility
More items will be added as required
The text was updated successfully, but these errors were encountered: