General myappmaker discussion #1
Replies: 10 comments 16 replies
-
An excellent beginning! I am curious what other folks, and in particular what other programs in this space folks have considered/tried using and what reference texts folks would find helpful in understanding this sort of thing. Programs I have tried:
Programs which pretty regularly come up in such discussions:
|
Beta Was this translation helpful? Give feedback.
-
Hello, William! First of all, thank you for all the fixes, stylistic improvements and extra clarifications provided via your pull requests. I already read each one of them as well as each line changed and approve of everything (I'll merge them all in a second). Also thank your for the extra clarifications and pointers from these previous comments on this discussion post. Keep'em coming! They are so useful and instructional that I intend to add them to the chapter of the SDD on myappmaker's usage. Here are my replies to specific points/questions from those comments.
Great observations. The fact that you are not thoughtlessly listing the possible shapes but is also taking into consideration the common choices of other drawing programs and also the expressibility of people with styluses, that is, how easy/convenient it is for people to perform the action of drawing such shapes/paths repeatedly shows that you gave all this careful consideration. In addition to determining the most appropriate shapes to use, we must also take into account, as you already pointed out yourself since the beginning in our earlier discussions via email, accessibility. That is, we must also think of measures to facilitate drawing those shapes/paths. Styluses are indeed very useful tools and since they are so immediately comparable to the act of drawing interfaces on graph paper, it seems more than worthy to build myappmaker with extra care for stylus support and prominent usage. Getting back to the question per se, I think we must actually test all of the shapes with actual users as soon as development begins. That's because it isn't possible to determine that based solely on our own experience. There's may also be more dimensions to the problem. For instance, even if some specific shape can be used efficiently by most people, the specific output of that shape (a text field, a number field or other field), may not make sense or be as intuitive to them as we originally thought. I think only testing can give us the answers we need here. On a side note, the QGraphics framework from Qt, which will be used to draw the interface of the app being created and those shapes as well, is very suitable for drawing smooth shapes/path. It is also very efficient too. So, in terms of performance it seems we won't have any problems.
Edition using multiple modes is something I have experience with, not only from drawing programs like Inkscape, but also from the very text editor I use for software development (VIM). Being able to use multiple modes is very powerful, as it give us even more options for the available controls/actions like keys on the keyboard and actions like clicks with the mouse or a sweep with the stylus. Again, this is something for which testing with people is better. Regardless of that, though, all the points you made are very good starting points. A challenge I expect here is that of clearly conveying to people the current mode they're in. I say that because it is seems to be a common problem with software with edition with multiple modes. Multiple modes seems to be more than worth such problems/costs, though, as despite that many software projects still employ them and their userbase still use them. This might mean the main problems lie in the initial learning curve, something that we must be aware of when implementing such modes to ensure people will have the smoothest experience learning and using them.
Thanks for the pointers on the possibilities. Indeed, consensus is something that we won't find here, but I agree that proper research must be done in order to define the best configuration. In addition to that, I think testing with real users will also gives insight onto such configurations. Regardless of all that, though, even if we achieve an ideal configuration (if that is even possible), we must also allow users to change the keys as they see fit, so they can adapt the tool to their mental model/preferred workflow. Even so, being careful with the definition of the default configuration is still crucial, since non-technical people are the target users of our tool and, by definition, we must not expect these users to be eager to play with such configurations. Or at least, that's my assumption. Reconfiguring keys is not something I regard as fun either, unless of course it is for the sake of significant gains.
Again, excellent starting points. I have to give these additional thought. Also, again, user testing would be needed. However, I suspect these associations, that is, between shapes and widgets, are things that depend on the user mental model and several associated variables (like the user's perception of widgets and their shapes, etc.). Because of that, don't you think it would be useful to allow users to pick such associations as they see fit? Of course, just like the keys, we'd need a default configuration. However, allowing people to redefine such associations as they want would be not only convenient to them, but also useful when it comes to define associations between custom shapes and other new/custom widgets. For instance, a user could define that drawing a As for the line and diamond shape, I'd also have to give it some thought before I could come up with a good idea for their usage, although your suggestions are not bad (specially for the association between lines and separators, since I couldn't think of a good association for the diamond shape at the moment). Again, thank you for all the info. All the points made and questions are very useful and important considerations that I intend to add to the SDD. Please, post as much as you'd like and as often as you'd like as well, even when it is about seemingly trivial stuff, since these are crucial for helping us form a clear picture of the application, its design and usage. |
Beta Was this translation helpful? Give feedback.
-
A potential point of synergy/implementation target would be Jupyter notebooks --- they already have a Blockly implementation for Jupyterlabs: https://github.com/QuantStack/jupyterlab-blockly and a potential use case would be creating a GUI interface/dashboard for a data display/plot where GUI elements are a part of the display (in contrast to: https://ipywidgets.readthedocs.io/en/latest/ where they are outside). |
Beta Was this translation helpful? Give feedback.
-
We should also begin gathering lists of repositories which may have useful code. While I don't think handwriting recognition will be needful (better to depend on built-in facilities for this for text box entry), recognizing shapes will be a needful thing if the UI is to be actually drawn/sketched rather than created by drag-dropping elements from a pallete: |
Beta Was this translation helpful? Give feedback.
-
A similar project: was discussed on Hackernews: https://news.ycombinator.com/item?id=42586933 |
Beta Was this translation helpful? Give feedback.
-
Hey WillAdams I saw qt/pyside had been cited here. I attempted to use them in the past, and there's something i dont like about SIGNALS. I have used recently Glade for the GTK framework, it is a great tool for UI making very intuitive, but very pro developer focused. even dough the way signals/events are handled visually in glade is very nice, and is what i would aim for if i would have to design a "framework" or "GUI" app. With this being said, given the need to process user input and events, there's no escape from this kind of considerations.
I can see the benefits of a blockly approach in the programing side of things, for non programmers to learn how to program, in the end is programing anyway but i think harder to scale. About the drawing/designing part, i made some experiments with libreoffice draw, to design a website for a friend, it gives the option to export as xml, svg, and other formats that i made ChatGpt to convert to html, did'nt use it in the end but i saw potential there. There are some good AI open models already that could do the trick and in the next months/years there's going to be a lot more capable LLM's (just to save some time in de Drawing part of the design) Since i'm joining to this conversation, i will comment on things as i continue to read... |
Beta Was this translation helpful? Give feedback.
-
Further research/other projects to consider: |
Beta Was this translation helpful? Give feedback.
-
This book seems interesting: https://mitpress.mit.edu/9780262140539/a-small-matter-of-programming/ (annoyingly, while MIT Press lists it at $9.75, it is far more expensive from the places I can find it in stock at) It looks at spreadsheets and CAD apps as two examples of programming/coding being made accessible to general users, which is an interesting premise/observation. |
Beta Was this translation helpful? Give feedback.
-
One feature which I hope can be implemented is theming, and one theme which I would like to see is LCARS. Discussion of that interface and its design here: |
Beta Was this translation helpful? Give feedback.
-
Thoughts and notes on reading list and coding style. One text which I would suggest anyone working on this project would read/consider is John Ousterhout's A Philosophy of Software Design: https://www.goodreads.com/book/show/39996759-a-philosophy-of-software-design which takes decades of experience in industry and academia and presents it in just a score of chapters. A notable text on interface design is Designing Visual Interfaces: Communication Oriented Techniques by Kevin E. Mullet and Darrell Sano --- unfortunately, one has to be careful of which edition one reads since only the first edition has good quality images of the screen grabs. Arguably the text which inspired this entire project is Herman Hesse's The Glass Bead Game (originally published as Magister Ludi) --- while Hesse seems to be out of favour these days, it is a striking and inspiring work, and the visual idea of a graphical representation of knowledge which empowers and enriches human expression is probably a big part of why I consistently try to be a visual person. While making notes for my own project and writing a post for the Google Group discussing APoSD, I wrote the following:
which came out of the posting which began in response to a quote:
That said, a quote from the Introduction sums up my hopes for this project:
|
Beta Was this translation helpful? Give feedback.
-
Hello, everyone!
This is the space wherein to discuss the design and features of the myappmaker (working title) project.
Feel free to share your opinions, feedback, concerns and constructive criticism at any time. All feedback gathered here will help improve myappmaker's design.
Beta Was this translation helpful? Give feedback.
All reactions