After months I'm sold. Completely, to the point I'm investing a lot of time and resources to develop with construct2 which is bar none the best engine for html5, the problem is that is not programmer friendly. The problem is testing. Testing on iOS requires: "compiling"->transferring files to a mac->importing into xcode->compiling->testing same thing goes for Android (minus the mac part).
If you are doing a complex app, the phonegap build service is a joke, there are too many functions that you are missing (ads, push notifications and so on) all thing that with callJS you can do.
The problem though is that callJS cannot access the c2 code directly, relying on a hackish method of doing eval on the function.
Now take this code:
function showConfirm() {
navigator.notification.confirm(
'You are the winner!', // message
function(button){return button;}, // callback to invoke with index of button pressed
'Game Over', // title
'Restart,Exit' // buttonLabels
);
}
This is a phoneGap notification, the result cannot be read though eval. To read it I had to make the function set a global var outside c2 and the read it again with another callJS function, this took a lot of time as testing it required all the previously detailed steps. More than this callJS doesn't work in preview mode for the reasons detailed here: scirra.com/forum/localpreview-where-are-the-assets_topic50738.html
As I see there are two implementation that you could do:
1) Local preview that reads ALSO files from a fixed folder, where to put for example the callJS javascript file, or images lazy-loaded with one of the plugins.
2) Integrated post-compiling function. A new action like callJS that calls a function/method/object that can access the c2 variables AFTER compiling.
Like
codeBlock->call myfunction or myvar set call myfunction
then opening the "compiled" c2runtime file we find our function (or class) and from there we can code without passing through c2 anymore, including manipulating c2 variables, I understand that this is dangerous as setting a varible at the wrong time could lead to unexpected results, so it could be even undocumented as an advanced feature, but serious users could really benefit from this, which by the way already do with callJS (which is amazing) but it could became less tedious this way and could open tons of possibilities especially for mobile. Even an API could be a nice idea.
I don't think these are too much work, and even if they are could attract tons of users indirectly, because the way I see it casual user tends to be happy with the free version, while "hardcore" users are the one that are more prone to shell out money for the licence, and nothing attracts that audience like a gallery of commercial products made with construct2 that could become a reality if the right crowd is attracted to this engine and starts developing with it. I don't want to detract from the amazing community we have here, that is full of talent (as the plugin section demonstrate) but as it is construct2 is not exactly a professional editor, but under the hood it's a professional engine. An external API could make a real difference here, just like local preview did <img src="smileys/smiley2.gif" border="0" align="middle" />