-
Notifications
You must be signed in to change notification settings - Fork 17
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
Feedback on UI editor #3
Comments
I agree with you on this. The UI Editor should be a single program and not split into 2 pieces. The thought is currently set as using a program to design the layout and visual parts of the UI and then another tool to alter the underlying code. The single largest issue I see with this is placing part of that system into the hands of people that are not under the LVGL umbrella. We have all been bitten by using an external library and finding out that there is some kind of a problem with it. Getting those problems fixed is not the easiest thing more often than not. Then you have to go in and fix it yourself or you have to add a bunch of code to work around the problem. Historically we have seen that when companies are in control of that library they are not going to make changes on what the user want, they are going to make changes for how they believe it should be done. The problem here is that more often than not this causes all kinds of grief downstream. Yes it is nice to be able to use code that has already been written and it will speed up development time IF and only IF that code works like it should. This only means that at the present time it is going to work. Changes could be made that ends up breaking your application that you have absolutely zero control over. This "editor" should handle both the UI design as well as making changes to the underlying code that runs the UI. design folks will use the application to design the UI. This would include placing widgets, colors, artwork, etc.... The programmer would be tasked with adjusting the underlying code to ensure it works properly. That is where the code editor portion of the UI designer would get used. Having both pieces would put LVGL developers in control of fixing all of the bugs, It removes the possibility of external code causing issues.... This applies to javascript/webapps I feel that the UI Editor should be written using a cross platform GUI framework like wxWidgets. No need to get hunkered down with having to deal with writing some kind of a custom UI for the editor. Use a framework that is targeted at creating a UI that will be displayed in the OS's style. This makes it easier to learn something new. Most people are very familiar with how their OS presents things to them and using a custom UI causes a large spike in the learning curve. Now I know I mentioned not using external libraries. With this example it happens to be an extremely mature library, it's free, it's maintained and updated. When I say mature we are talking 32 years. QT is another that can be used but for commercial purposes it is not free to use. The worst thing that can be done is tying the use of the editor to a monthly fee. If you want to make money from it then release a handicapped version of the editor. Offer the full tilt version for free to open source projects. a link to the repo would need to be given for where the open source project is and there would have to be active development in that repo. The free license would expire in 6 months or a year and the user would need to request a new license. This would allow for a check to be made to see if the open source project is actually still in development. Companies would have to pay a monthly fee to get the full license. JetBrains (PyCharm, CLion, PHPStorm, etc...) does this. Active Opensource projects can get any or all of their products with a full license for 1 year. You could even add the requirement that a link to the editors website in the repo's readme file with some text saying "Designed using ....". Adding the same thing in a credits section or a settings section for a UI can also be something that you require. Just because a project is Opensource doesn't mean no revenue is made from it. |
I think we are mostly on the same page. We are clearly targeting developers and not designers. In this sense 2 things can happen:
Regarding XML loading, IMO it's the same as Over The Air FW update. You need to sign the verify the firmware before loading it. You an do the same with the XMLs. E.g. ESP-IDF offers solutions for this. Localization support is definitely on the table: the extra (rarely seen feature) will be to allow previewing if the texts fit to their box. If they don't follow some constraints we can show a warning. We were using a cross-platform UI library. Actually the most popular one: HTML+CSS+JS. 🙂 The editor is based on React, Node.JS and Electron. I noted that the issue of monthly payments. |
Dlo you mean that the possibility to load XML on the fly can be disbale for deployed systems? Moreover, just for curiosity, how may work-months (or work-years) have you allocated for lvgl_editor? |
Yes:
We might provide some solutions for it, but it seems quite application specific (how you update the firmware, how yo perform the signature, how you validate it, etc)
See here Regarding XML loading, IMO it's the same as Over The Air FW update. You need to sign the verify the firmware before loading it. You an do the same with the XMLs. E.g. ESP-IDF offers solutions for this. Dlo you mean that the possibility to load XML on the fly can be disbale for deployed systems?
As software development as usual, it will be never finished. We started the research in 2024 January, and planning to have v1.0 in 2025 September. So it's ~20 month, with 3-5 people working on it on average. We have rough ideas for v2 too, but it's still too far. |
Was pleasantly surprised by this video. This is exactly what I had hoped for (and had started building early last year). The main thing I think the video demonstrated for me that other editors have failed on is flexibility. From what I can see of the generated code, it doesn't require you to use a specific application structure. Someone can easily build out a re-usable component library that is git friendly, and can be dropped into multiple projects. I'm assuming some form of theming can be achieved using constants? My feedback on business model would be to not limit certain pieces of functionality by arbitrary amounts. Sell a license that fully unlocks the functionality, not something like "limited to 122 widgets" or "limited to only 14 screens" or "limited to 26 xml files". I think selling the Figma plugin as a separate piece makes a lot of sense as the editor tool is super useful even without it. Floating licenses are super important for businesses with teams of developers that will not be actively using the software 100% of the time. Excited to try this out whenever it becomes available. |
Hi, Thanks for the amazing questions!
It's fantastic. 😍
Exactly. I don't like when a tool forces you to use a specific structure either. The initial goal was to have tool that I can just open to put together the visuals of a small component quickly, get the C code, and continue coding. So it's up to you which parts you use the editor for. Maybe you just style a keyboard in it, and do everything else in code. Or you can do all the components here. It's up to you 🙂
I think most of the things can be achieved by constants. But there is more. According to the current plans you will be able to do this: <styles>
<style name="big_button" bg_color="0xf00" border_width="1px" pad_left="10px">
<variant name="color" case="red" bg_color="0xf00"/>
<variant name="color" case="green" bg_color="0x0f0"/>
<variant name="color" case="blue" bg_color="0x00f"/>
</style>
</styles> In <style_variant name="color" help="Select the color of the UI">
<case name="red" help="Select a red theme"/>
<case name="green" help="Select a blue theme"/>
<case name="blue" help="Select a blue theme"/>
</style_variants> And if you call a function like
It was really not shown in the video. Images (only a simple <images>
<!-- avatar1.png will be used from file. In XML it can be referenced as <image src="avatar"/> -->
<file name="avatar" src_path="avatar1.png">
<!-- A built in image converter can create images with difference sizes and color formats.
Constants also can be used as the value of "width" to change the size of all icons at once. -->
<convert path="raw/avatar.svg" width="100px" color_format="L8"/>
</file>
<!-- logo1.png will be converted to a C array when exported. -->
<data name="logo" src_path="logo1.png" color_format="RGB565">
<convert path="https://foo.com/image.png" width="50%" height="80%"
color_format="RGB565" memory="RAM2/>
</data>
</images> Fonts (similar to images, but here <fonts>
<bin as_file="false" name="medium" src="path/to/file.ttf" range="0x20-0x7f" symbols="°" size="24"/>
<tiny_ttf as_file="true" name="big" src_path="path/to/file.ttf" range="0x20-0x7f" symbols="auto" size="48"/>
<freetype name="chinese" src_path="path/tofile.ttf" size="48" custom_freetype_attribute="abc"/>
</fonts>
I think the same. Even the free version will come with unlimited widgets. Just some features won't be available. |
Awesome thanks for answering those questions. I would love to take this for a test run if you are looking for help testing. |
I've just seen the youtube video on the development of UI editor and I would like sharing my feedback.
Final summary: keep your focus on developing a tool that saves time for C developers. The will be your customers. Not designers.
And keep you focus on embedded usability security, not on wow effects.
Great job.
The text was updated successfully, but these errors were encountered: