-
Notifications
You must be signed in to change notification settings - Fork 209
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
GUIslice Builder - tool for GUI code generation #79
Comments
This is really cool! Some thoughts on this:
|
Good feedback... I think Paul might be able to offer a more informed perspective (at least based on what exists today and with knowledge of the implementation), but in the interim, here are some of my thoughts. Keep in mind that I'm not yet familiar at depth with the design nor the potential challenges.
|
For reference, a wiki page has been created that will address the usage of the Builder in greater detail. More documentation will be appearing soon. |
I had discounted this early on because of the need to add various callbacks on a round trip basis. There is a great deal that goes on behind the scenes that could break. Right now the builder knows if you added code to the button callback or not. If not it adds a new callback for example. It can add a next page api call to the button callback if you check the box on the button's property list. It also adds new call-backs as you add UI widgets that need them. I'm hopeful, even more automatic code generation could take place in the future. Of course, It might still be possible and I'm open to ideas but I really suggest you try and use the builder as is first before any changes. I suspect there will be more than enough work keeping up with bug fixers at first. By the way, another thought I had at the beginning of this project was to take the opposite approach and construct applications as include files and having the .ino or .c something you don't need to edit. For example: [Ed: applied code format markdown] #include <appl.h>
void blink(){
static byte lastState ;
pinMode ( 13, OUTPUT );
if (lastState != HIGH){
digitalWrite ( 13, HIGH );
lastState = HIGH;
}
else {
digitalWrite ( 13, LOW );
lastState = LOW;
}
}
void app_setup() {
pinMode(13, OUTPUT);
}
void app_loop() {
blink();
delay(500);
} appl.h #ifndef _APP_H
#define _APP_H
#include <Arduino.h>
extern void blink();
extern void app_setup();
extern void app_loop();
#endif test1.ino #include <appl.h>
void setup() {
app_setup();
}
void loop() {
app_loop();
} Of course, A GUIslice builder would have added the various guislice includes and api calls to the .ino file.
Sorry, but the java based builder as a web based application seems like a very bad idea. IMHO, The correct way to do the Web based implementation is the same as I have done for commercial clients, using Javascript, HTML5 and Ajax. That's a major undertaking, from past experience I would guess it would take 3 or 4 developers 9 months to a year. However, other languages could be used that could greatly speed up a web based builder creation, like ruby or python that might make it a much faster implementation. I'm no longer an expert in web based design so take anything I said here with a grain of salt. 😊 |
First public beta release of the GUIslice Builder binaries ( Documentation at GUIslice Builder wiki includes installation and link to user-guide. Please file any bug reports during the beta release in #80 |
@Pconti31: Thanks for the feedback on the feedback! generated code is placed in a automatic_generated.h header file?I see the issues with the callbacks - I did not consider this. But I'm happy that you have had the same idea at the beginning ;-) java based builder as a web based applicationAs I never did any web applications I was not aware, that there is such a big difference in doing java for the web applications and for direct applications. I thought it is all the same. Now I see, that there is a big difference. But as the GUI builder is available for Linux, I will definitely use it for my next GUI project. Thanks for this great tool! |
GUIslice binary release (
Major changes:
Documentation at GUIslice Builder wiki includes installation and link to user-guide. |
This makes the installation much more convenient! Thanks! |
A visual GUIslice Builder walkthrough tutorial has been now been posted to demonstrate how the builder can be used to create a basic GUI application. A second part, demonstrating round-trip edits, will follow later. NOTE to those who have tried out the Builder beta: please feel free to send an email to guislice @ impulseadventure.com (no spaces) with any comments, questions or suggestions you might have -- I'd be most interested in hearing any feedback so that we can make the GUIslice + Builder process as easy as possible for users. Thanks! |
GUIslice Builder binary release ( Major changes:
Documentation at GUIslice Builder wiki includes installation and link to user-guide. The installation guide and walkthrough have both been updated for this release. |
Builder source code has now been uploaded to the repository at /builder |
GUIslice Builder binary release (
Special thanks to VitorH, TonyP, DonK, RonB and AndersG for all the testing and feedback, and PaulC for the release! Major changes since 0.10.4-beta7:
Documentation at GUIslice Builder wiki includes installation and link to user-guide. |
GUIslice Builder binary release (
Major changes since 0.11.0-rc2:
Documentation at GUIslice Builder wiki includes installation and link to user-guide. |
GUIslice Builder binary release (0.11.0-rc4)
Major changes since 0.11.0-rc3:
|
Now that the builder source code has been removed from the GUISlice source tree, are there plans to keep the builder source code available? Thanks! |
Absolutely! We are in the last stages of making GUIslice release 0.13.0 which includes a major update of the Builder. The Builder source was removed from the core library repo (and instead relocated to the following new repo) to reduce the size of the core library tree. The new repo containing the Builder source will be online as soon as we have completed the release: https://github.com/ImpulseAdventure/GUIslice-Builder-source |
Wonderful tool! I love it. Thanks in advance for your help, and sorry if I didn't post in the best discussion... |
Closing the original status issue as the Builder is now tracked in a separate repository. |
Now the interface is English, I want to translate into Chinese |
@he77PC011 Sounds good to me. |
I am pleased to announce that @Pconti31 has managed to create a front-end GUIslice Builder desktop application that can help generate GUIslice layouts!
The cross-platform program includes a graphical editor that enables drag & drop placement of UI elements. Once a GUI has been laid out, the Builder can then generate the functional GUIslice skeleton framework code, for both Arduino and LINUX targets.
The generated output code (
.c
,.ino
) includes all of the necessary defines, UI storage elements and initialization in addition to the placement of the UI elements. This should greatly improve the ease in creating a new GUI.One nice feature is that the user is then able to add their custom application code to the framework and then continue to make UI revisions within the Builder.
Status: The GUIslice Builder tool is in very early beta testing at the moment. Initial beta release will include a java archive (.jar), with full source to follow later. Further updates will be posted to this issue.
Documentation: GUIslice Builder wiki (in progress)
Acknowledgements: A huge thanks again to Paul for taking the initiative on this!
The text was updated successfully, but these errors were encountered: