First Impressions of Corona

Hi Corona guys,

I wasn’t sure whether to write this post or not, but I feel it’s better to let you know how your product came across to me so you can perhaps improve it. I would like to see Corona be successful, but I have some serious issues with your current 2.0 offering.

As a bit of background, I was at 360|iDev and saw a bit of your demo. I was also in the front of the room during the Birds of a Feather session where we discussed the implications of the developer agreement changes for Corona. You all seemed like very smart guys, and I decided I would check out Corona for my next project.

I am a big Lua fan and have been using iPhone Wax a lot lately. So when I learned that Corona used Lua and had a debugger, I decided that a bunch of smart guys like you, plus Lua, plus a debugger sounded like a great combination. I took a quick look at your website and decided to just buy the license to support you and then check out the details later.

Now I realize that many of my first impressions were based on assumptions I made about your product, but you tout it as an amazing product with huge productivity gains for developers, so I assumed that whatever you provided was a better development experience than XCode.

Unfortunately, my first impressions were not very good. I will explain them below in point form.

  1. After the installation what I found was a folder of command line programs. I was looking for an IDE or project/GUI editor of some sort. Your website doesn’t mention either of these, but I assumed that for your experience to be better than XCode, you MUST provide something like that (especially since all the other 3rd party development kits that I am aware of do so).

  2. I ran your simulator and got the Samurai Kitchen app running. That was not hard, but then I immediately wanted to try it in the debugger. I started the debugger and ran Samurai Kitchen again. I was truly shocked to find out that this is a command line debugger. Yes, I know you explicitly wrote that on your web page, but seriously, this is 2010. “Command line debugger” is not something that should even be in your vocabulary.

  3. Then I investigated how to run the app on my device. Your docs say I have to do an Ad Hoc build and install it by dragging and dropping it in iTunes every time I make a change to my code. How can you say that this is a more efficient development environment? Furthermore, there is no console available when you do that to allow debugging.

Another developer has since pointed out that I can install using the XCode Organizer to get a console. I haven’t tried that yet, but I don’t understand why you would not mention that instead of XCode in your docs. But even that is a painful process to go through every time I make a change to the code. As I mentioned in the Feature Requests thread, it would be great if you could have a placeholder app on the phone that read and executed Lua code directly from my computer instead of compiling it and downloading it every time.

  1. Corona compiles the Lua code to native code, and provide no ability to load and run a Lua file. The provisions of the developer agreement notwithstanding, this is a HUGE loss for me. The dynamic nature of Lua and being able to make changes easily without recompiling is one of the biggest advantages of the language. Even if this feature was only available for development, and you had to compile the final version, this would make a big difference.

  2. Your compilation model also prevents using the other big advantage of Lua, which is calling into C/C++ code (or even Objective C in the case of iPhone Wax). With your system, I have to wait until you guys get around to implementing the latest iOS features before I can use them. I believe this is what Steve was afraid of with intermediate development tools moreso than being worried about scripting. Using iPhone Wax, I can call any Objective C API, even ones created by me.

So that’s about it so far. I will still give Corona a chance, and perhaps I will warm to it somewhat, but fixing the above issues would go a long way to improving user’s first impressions of your system. I am hoping that even the ancient command line debugger might sometimes be useful until you get a real debugger in place.

Thanks for your time.
Ken [import]uid: 7075 topic_id: 1253 reply_id: 301253[/import]

To give my view of things about this…

Using Corona means using the “Corona the SDK” … If I wanted to write code in Lua and use more native stuff I would use iPhone Wax or just implemented my own Lua interpreter for some tasks.

I do not develop for Android currently but I like that I can switch over and even create an app easily. I could not do this with iPhone Wax.

Mentioning X-Code and having a better debugger (in the Simulator!) would be cool but running every build on the device for testing!? why? You can use the simulator and press a Key to Reload and check the changes you made immediately.

But you are right that the “first sight” is like looking at some “stuffed together” stuff with a flavor of 1990 coding :slight_smile: … maybe I like it because of this!

I am getting very good results and advancement in my first project so far and this is what counts to me. The problems I have with the SDK are mostly bugs or strange behaviors which would not get better by a polished debugger but with more work into bug fixing of the SDK itself which seems to be done on a daily basis… cool! [import]uid: 6928 topic_id: 1253 reply_id: 3319[/import]

My view on the Corona SDK after using it for a few months.

At first the interface looks like a throwback to years past but once you create a workflow, it’s fast and easy to develop and test code. I use BBEdit as my editor because I use it in other development projects and it understands Lua syntax. Others have posted tips about using the Xcode editor for Lua development.

Once you create a program and you’re ready to test, you start up the “Corona Terminal,” which starts the simulator and a console window. The console window displays any run-time errors and “print()” outputs. You select your project in the Simulator which runs your code. If you find a problem you go back to your editor, make the change, and save it. In the simulator your press Cmd+R and it reloads and runs your program again. All pretty fast and easy.

At first I was upset that I didn’t have any ability to see debug messages (print) when running on an actual device. I later learned (through this forum) that the Xcode Organizer Console does display the “print()” statements you add to your Lua code. I find this is the best way to debug my code and have been doing it this way for many, many years. Debuggers are nice to have but some times they are more of an effort to set up and use. (I do the same think when I write Objective-C in Xcode.)

I also like the ability to use the Xcode Organizer to download my app to the device and use the Instruments to check for leaks and look at the memory usage of the app.

The Corona SDK doesn’t support all the features of the iPhone/iPad but it has been getting better and I believe the development team is devoted to improving the product. I also like the fact that I can create an Android app too. The Android feature set is not up to the same level as the iPhone/iPad but I’m hoping that will change soon.

The one last “plus” for Corona is this forum. There are a lot of developers here who are willing to share code and tips which really does help with learning the SDK and Lua. The Corona staff also monitor this forum and add their comments and feedback from time-to-time.

Tom [import]uid: 6119 topic_id: 1253 reply_id: 3321[/import]