I have been developing mobile apps using many different tools like phonegap, html5 (mobile web), objective-c and android SDK (native code). Each of them have own pro & cons and I choose accordingly to the nature of the project. However, I still wish for a perfect tool where I can write once and automatically have it compile to multiple platform without scarifying performance, development cost and speed, etc.
Corona SDK is very close to what I asking for. It allows you to write once and compile to multiple platforms (IOS, Android, Kindle…) and is best for casual 2D gaming and informative type of application.
Simple & Faster
It used LUA scripting language, which have low learning curve. For example, to display an image in Android:
tv1 = (ImageView)findViewById(R.id.image1);
InputStream si1 = asset.open("image.png");
Bitmap bitmap1 = BitmapFactory.decodeStream(si1);
On the other hands, for Corona is as simple as 1 line code:
Now, the cons part of Corona SDK:
tv1 = display.newImage("image.png")
For business App:
Like many others cross platform development tool, Corona SDK too lack of advance UI form component such as calendar selector, color picker and etc. You can however implement these on your own.
IOS vs Android
- Need to wait for Corona for new features
- Need to wait for Corona for new platform (very very slow, after 4 years window phone is release and there are still no support for it)
- Free version can’t integrate with native code
- Some advance features required plugins
- Some of the premium features like analytics are not available on Free version
Overall, as majority mobile users is either in the IOS or Android camp, Corona is working fine. Bear in mind, you still need a mac to compile the same code to ipa file for ios release; and jdk must be installed to compile to apk for android release.
As corona was initially developed to target IOS where screen size is fixed, then only added android support, it used a mechanism called screen scaling to tackler different screen size resolution and ratio issue. You can either choose to have a padding (like TV), or zoom evenly (with risk that some content might get cropped), or stretch to screen (where your app could run off ratio).
The corona simulator is fast and responsive, allowing rapid prototyping and trial-n-error oriented development; with a weak point such as webview are not supported. You will need a real device to test this function.
As Hybrid App
So, why wait now? start try it out at http://www.coronalabs.com
Lots of tutorial and comprehensive documentation can be found there. I will write more about Corona tutorial in near future too.