My Feedback

First, thanks to Corona Labs for allowing us to test-drive this new feature. Please keep that up! It’s awesome to feel like we’re helping to steer the ship in our own little way.
 
Like many other Ambassadors have indicated, I am of two minds when it comes to Composer. On the one hand, I think it’s possibly a great way to open up Corona to even more newbie developers and lower the knowledge barrier to get started with Corona. And (as I’m sure you are aware) if it is a feature that sits behind a paywall, it could be a great way to convert starter users to paid users. But on the other hand, I do worry about the resources that will be required to maintain it as a feature, and that other - possibly more useful - features and bug fixes might be delayed because of upkeep on Composer. Anyways, enough about that. Here are my specific thoughts based on my early testing:

  • At the moment, there seems to be no support for @2x image resizing. When I popped an @2x version of an image into the assets folder, two separate instances of the image appeared in the GUI.

  • Also, when I popped those new assets into the project folder, the Composer GUI didn’t automatically detect them and refresh the asset library. That should definitely be in the 1.0 release.

  • I do have reservations about the way Composer exports it’s data into the SDK. A JSON table is definitely the most efficient way, but the lack of readability removes a great deal of the usefulness, at least for me. I don’t see myself using Composer to build an actual app - it’s just not how I like to do things (I don’t like giving up control to WYSISYG-type tools…I know, I’m a troglodyte). However, I could see myself using Composer to rapid prototype a level, or to lay things out quickly, and then copy and paste the useful bits of code from the resulting Lua file (X and Y coordinates, for example, seem especially ripe for this sort of use). But since Composer doesn’t export readable code at the moment, it would mean manually parsing through the JSON data, which sort of defeats the point. Again, this might just be a result of me not fully committing to using Composer - but I thought I’d mention it.

  • Regarding my above comment, perhaps Composer could export a complete scene:create function that we simply require into a project (or not require, but peruse for code to copy/paste as needed)? For example, composer could output a cc_sceneName.lua that looks something like this this:

    function scene:create( event ) local ​sceneGroup = self.view local object1 = display.newImage(sceneGroup, “assets/someImage.png”) object1.x, object1.y = 100, 200 end

And then in sceneName.lua, instead of typing in the scene:create function, we could simply type:

require ("cc\_sceneName.lua")

Could that work? Just an idea.
 

I will try to put together more feedback later on (I’m at my day job right now) - but I wanted to at least get some initial thoughts up on the forum fast enough to be useful. Thanks, David and all you guys/gals at Corona Labs!

While lua files are indeed readable, they can’t be read by Composer itself. So if you develop a form, save it to lua and not JSON, you will lose your progress on restart.

Secondly, if people (especially beginners) will see generated lua files, they will edit them to add their functionality. Which, as you guessed, will be rewritten by Composer next time you save your form.

So yeah, JSON is the only way to go. Although I’d recommend use Lua AS JSON (see my feedback).

Hi Jason, the JSON is so we can roundtrip changes. The Lua file is supposed to be where you add custom code/logic. The intention is that it get generated once by Composer GUI. Afterwards, we don’t do anything with it (and if we are overwriting, that’s a bug!)

While lua files are indeed readable, they can’t be read by Composer itself. So if you develop a form, save it to lua and not JSON, you will lose your progress on restart.

Secondly, if people (especially beginners) will see generated lua files, they will edit them to add their functionality. Which, as you guessed, will be rewritten by Composer next time you save your form.

So yeah, JSON is the only way to go. Although I’d recommend use Lua AS JSON (see my feedback).

Hi Jason, the JSON is so we can roundtrip changes. The Lua file is supposed to be where you add custom code/logic. The intention is that it get generated once by Composer GUI. Afterwards, we don’t do anything with it (and if we are overwriting, that’s a bug!)