Replies: 14 comments
-
At the moment we are focusing on native apps for both Windows and macOS. The app for Windows is already able to be installed via the windows store, and it will be the same for Mac very soon. This gives people a higher degree of confidence where it's deployed via a store. There's a cost to adding a platform and then supporting it, and it at least seems for development many people prefer locally deployed applications. Some of the issues for a web app for example:
None of these are insurmountable, but we just don't have the bandwidth to support both. I think the compromise is an app that is easily installed from the app store, that can be easily removed after use if needed. |
Beta Was this translation helpful? Give feedback.
-
For completeness, I'll add that we do also support earlier versions of Windows, Linux, and anyone with a store aversion via the Java client, which is a fully open-source UI that can be built by anyone who prefers to go from source. It's also distributed with each release. |
Beta Was this translation helpful? Give feedback.
-
Fair enough. Being a web developer myself, I guess I suffer from the "When all you have is a hammer, everything looks like a nail" syndrome :-) |
Beta Was this translation helpful? Give feedback.
-
So I was screwing with TcMenu's menu declaration API and I think I accidentally built the nail. Feel free to hammer it in if you want :P. (For anyone who's wondering: This uses its own YAML/JSON-based DSL for menu declaration and isn't compatible with TcMenu Designer's EMF project. Also it's quite experimental at this point) |
Beta Was this translation helpful? Give feedback.
-
Let me start by saying that I'm open to all possibilities here. We'd like to get as many opinions and replies as possible here. To be honest, the menu structures are the lesser part of the puzzle, if that were the whole picture, we could probably even provide some kind of C++ DSL that made it easy enough to build them directly in the code using macros and language support. I think a designer is still needed, to deal with display, input, and IoT plugins. For an encoder and LCD it's pretty easy to work out what to do, but for a TFT with a touch screen, theme-based configuration, and IoT monitoring/control, the initial setup gets much more complex, and without some kind of designer, would significantly increase the barrier to entry. Let me just reiterate here, we are not trying to do anything bad, the registration was there to get an idea of who is using it, and was more aimed at commercial users than personal and educational users. We've spent many years trying to work out how to make menus easy to develop, and the result of this is freely available for all to use under an Apache license. In the future, there may be some charging structure aimed at commercial users but that is in line with many open source projects. I've recently been spending a lot of time trying to get out the latest release, as we've now ended up with both Xamarin and Java versions of the designer UI. Honestly, it's pretty much unsustainable going forward. I'm now thinking about how we get back to one version.. Now that the current Java UI capabilities are completely in line with the App Store versions it would probably be the base. I'm even open to a web version now after the recent hell of this release cycle on three platforms, with basically two and a half code bases. One that would be open-source and have the option of using it from thecoderscorner.com or locally for those with a dislike of the cloud for non-commercial and personal use. However, I'm just not sure we have the capacity to do this, we just can't fund another large project. Things to think about:
Let's say we went the web approach: Advantages
Disadvantages
|
Beta Was this translation helpful? Give feedback.
-
@dogtopus I think it would be better to get back to one code base, we've tried the two codebase approach and it really doesn't work. We already have a code generator in Java and in Xamarin. It would be better to get the improvements into the Java designer, I'd even be up for integrating the simpler JSON format. I can't stop you from creating a designer fork, but who's going to maintain it, make changes as the code requirements change, and manage any issues and questions in the forum? |
Beta Was this translation helpful? Give feedback.
-
So my suggestion is:
|
Beta Was this translation helpful? Give feedback.
-
So we have the last feature that was missing from the java UI added back in, and there is no need to register for non-commercial users. But @dogtopus you will need commercial users to register their use of the library, it was always part of the plan, and you'll see that in the UI codebase going back to the early 1.0 days. It's not evil, we have spent years writing this library, and are at the point where commercial use is expected. |
Beta Was this translation helpful? Give feedback.
-
Yes I understand. I should clarify more that mktcmenu was more of a personal experiment since I always have the feeling that the designer expects my code to go around it instead of the opposite (me porting my existing code to tcmenu). I have absolutely no intention for it to replace the official designer or even for it to be endorsed by your side since the two are built for different goals (an ecosystem vs absolutely minimalistic). The original post was more about me finding that I can more or less generate a web UI straight from the JSON schema that I used to validate the descriptor file so I sorta wanted to share it.
Thanks for your interest in tcmdesc format. However I think it would be tricky to implement it in the current designer since it's conflicting a lot with the current internal design of it (one of the reason why it's an independent thing rather than a real designer fork). On the other hand though refactoring is always possible so it ultimately depends on decisions from your side.
Yes I should put a stronger notice that stops people from asking help on TcMenu support channel regarding to issues from mktcmenu unless they are absolutely sure the issue was from TcMenuLib. In that case they should first reproduce it minimally in designer and submt a ticket to TcMenuLib.
Since it's Apache and not some custom source available license or dual licensing I never assumed this was the case. However I think there is still room for improvement of the UI/UX by having an opt out checkbox on the register dialog that says something like "I will use TcMenu only in non-commercial projects and have no intention of registering." and it will prevent the box from showing again. |
Beta Was this translation helpful? Give feedback.
-
In my case, it was the Java runtime requirement that was and still is the biggest deterrent. In my original comment almost a year ago (wow time flies), I was thinking of a web page where one would design his menu structure, click a button to validate it, and copy/paste the generated code in his project. Nothing persisted on the server. No installation, always the latest version and potentially, as mentioned by @dogtopus, easier integration to existing project's code. In my opinion, that would be so much easier to maintain than a version for Windows, Mac, etc. At last, I have no strong opinion on the commercial aspect, other than everyone is entitled to a living for his work if one desires. |
Beta Was this translation helpful? Give feedback.
-
I agree designer has got out of hand as it is now. It's interesting that this started today because I had the realization last night that I could not continue to support a UWP App, a Native Cocoa App, along with a Java app on Windows 7, and a Linux app too. That's why I'd decided to consolidate onto Java to remove as many variables as possible. Maybe we are all looking at this from the wrong angle, and a different solution may suit us all. Could a C++ DSL based on macros make it possible to develop directly in the C++/INO file? I'm sure it's possible to come up with something where the code is readable enough that no designer is needed whatsoever. The current plugins are a separate problem, but those could be dealt with once the DSL was in place. They could be dealt with by building out the examples further and making the plugins more self-contained. EG something like:
If we could get to this level of simplicity for most cases, intermediate and advanced users could generate the structure without a designer. The java designer could be kept around for people who prefer this way of working. I don't even think this is that much work to try it out.. |
Beta Was this translation helpful? Give feedback.
-
I'm not entirely sure on this. On one hand it's probably gonna be really simple to write by hand but OTOH it might make IDEs having a even harder time trying to figure out what's going on with the definitions... Also macros are inherently not as robust as XML/JSON with schema or even plain C++ and more undesired behaviors may be introduced. |
Beta Was this translation helpful? Give feedback.
-
I will probably try to implement this as an option for those who don't want to use the designer at some point soon. Most C++ code relies heavily on preprocessing and macros anyway, so I doubt it will cause too many problems. What I am thinking would be very light on macros actually, and some of it would be function-based. From a compiler perspective, it would be barely more complex than now. |
Beta Was this translation helpful? Give feedback.
-
Summary: You can remove the commercial use stuff, and I just ask that you keep a link back to the tcMenuLib git hub page. Long story: I'll look to expand the plugins in the main repository so that they can be used more easily without relying on a zip. Now that we are down to one version of Designer, the Java one, we'll put back all the UX improvements that were in the MacOS app store version, to improve usability including removing mandatory registration for all users. After long deliberation, we've decided to drop the need for commercial users to require registration, as we don't require it in the App store anyway. So you can remove that after all, apologies for the runaround there. Instead, we'll probably ask that commercial users make a voluntary small donation towards all three libraries' upkeep and handling of issues on the tcMenuLib page. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Your menu system is second to none!
Any chances for the designer to be ported to a web based application one day?
I try to keep my machine as clean as possible of third party applications, and favor web based, install free, whenever possible.
Just a suggestion.
Regards.
Beta Was this translation helpful? Give feedback.
All reactions