Corona Limitations

Hi everyone,

I’m an app developer with a bunch of existing apps that I haven’t really maintained for a while. They’re all Objective-C native apps.

I’ve neglected them because I’ve been focusing on game development for the last few years using Unity.

I’d like to re-write a few of my best selling apps with new, fresh versions, and I was considering using Corona as a way of getting this done quickly (having not written Objective-C code for three years or so).

EDIT: (this makes more sense if I mention that I already know Lua).

I’m really struggling to find any decent information for actually using the “business related” widgets like tab bars, table views, etc, and I’m starting to get the feeling that maybe Corona just isn’t really ready to be used for serious business app development?

For example, there only seems to be one TableView tutorial on the site, and it’s for an old version of the widgets (?) and doesn’t work with the current version of Corona (as far as I can tell).

There’s some other references too, but I’ve hit a bunch of stuff that tells me the documents are extremely out of date, and then redirects me to generic SDK information. Not filling me with confidence.

So I guess the question is: am I missing something? Is there an area of tutorials that are more “up-to-date”? Am I better off going back down the Objective-C path for now, or can Corona really be used to create decent business apps?

Any input appreciated.

Thanks!

hi sjarman,

i’d say all of the apps i have built with Corona have been business type apps, so it’s definitely up to the task. i recently finished working on project creating a social network type app with a fully custom UI localized in English and Arabic, so we had to build everything from scratch including UI components. we launched on both iOS and Android devices.

to give you an idea of complexity, i’d say it was getting up there with the Facebook mobile app in terms of sections, amount of features, etc. overall i felt like the project went smoothly since we didn’t run into too many issues, but there are certainly some things to think about ahead of time.
in hindsight, i’d say that having a good app architecture will be your biggest ally. not only will it guide development as well as allow you app to grow gracefully, but it will also help you get around any performance/memory issues you might run into as these are likely to be your biggest issues regarding user experience. (i don’t think any game platform will give you the performance of native code, so you need to lower your expectations a little. :slight_smile: )

while on this project, i also found out how much better iOS hardware is than the stuff from the Android camp, both in terms of performance, consistency and accuracy. so, your job will be that much easier if you don’t have to support Android. :stuck_out_tongue:

the architecture i devised was fully object oriented using different design patterns – MVC and lots of state machines with template, factory, facade, etc scattered about. we used many of my libraries to form the core of that architecture – dmc_objects, dmc_states, dmc_autostore, and dmc_nicenet – and i think they performed admirably. (and not just because i wrote them :slight_smile: )

i am making updates to my libs and am planning to write some tutorials, create new library modules, etc based on our experiences. my updates to dmc_objects should be finished shortly, but sounds like you’re on a mission to get something done, so you’ll probably be coding before a lot of the other stuff happens.

hth,
dmc

http://docs.davidmccuskey.com/display/docs/DMC+Corona+Library
https://github.com/dmccuskey/DMC-Corona-Library

[edit]
FWIW, i will add that i have been looking at some other game engines for my next biz-app project, but only because Corona doesn’t support desktop deployment (eg, macosx, windows). i have been pouring over docs for Loom, MOAI, Gideros, Marmalade, etc. and, from what i have found, Corona’s API is more complete when it comes to features more suited to business type apps – facebook, twitter, video, maps, push notifications, etc. it is possible to add missing features in the others if you know C++.

Hey thanks so much for the detailed response - I really appreciate it. Gives me a lot to think about.

I came across this tutorial last night, so I might consider going through that as a form of evaluation. $50 isn’t much of an investment if I decide against proceeding.

https://www.udemy.com/business-apps-using-corona-sdk/

I was also looking into MOAI, but it seems even less equipped to deal with anything but games.

I’ll take a look at your libraries and see how things go.

Thanks again!

J.A.Whye’s course is great to get up to speed quickly. I found it to be great value for the investment. You can also get to it at http://masteringcoronasdk.com/business-apps-using-corona-sdk-2/ .

DMC, very interested in your experience and libraries. Look forward to your tutorial and updates. Thanks for sharing.

Widgets in Corona are different than in Objective C.  The reason has to do with OpenGL.  Apple lets us have both native and OpenGL canvases in the same app and on the screen at the same time, but they don’t interact.  Our user base is used to putting things into display groups and mixing and matching them with their OpenGL based display objects (graphics, etc.)   Because of this, we’ve made our own clones of the core widgets that work in OpenGL.   That means that they are not as flexible as native widgets.  For instance, trying to implement pull-down-to-refresh on a tableView is a bit of a challenge.  It can be done, but it takes work.

I’ve implemented a couple of business style apps.  One I took down because the blog it was designed for is no longer being maintained.  The other is a for pay app.  But you can look at the screen shots and see what’s possible.

https://itunes.apple.com/us/app/speedy-sender/id492006277?mt=8

The latest version of our widgets are skinnable, so it should be possible to easily make an iOS7 skin for them.  But many apps that you see on iOS could be done in Corona.

hi sjarman,

i’d say all of the apps i have built with Corona have been business type apps, so it’s definitely up to the task. i recently finished working on project creating a social network type app with a fully custom UI localized in English and Arabic, so we had to build everything from scratch including UI components. we launched on both iOS and Android devices.

to give you an idea of complexity, i’d say it was getting up there with the Facebook mobile app in terms of sections, amount of features, etc. overall i felt like the project went smoothly since we didn’t run into too many issues, but there are certainly some things to think about ahead of time.
in hindsight, i’d say that having a good app architecture will be your biggest ally. not only will it guide development as well as allow you app to grow gracefully, but it will also help you get around any performance/memory issues you might run into as these are likely to be your biggest issues regarding user experience. (i don’t think any game platform will give you the performance of native code, so you need to lower your expectations a little. :slight_smile: )

while on this project, i also found out how much better iOS hardware is than the stuff from the Android camp, both in terms of performance, consistency and accuracy. so, your job will be that much easier if you don’t have to support Android. :stuck_out_tongue:

the architecture i devised was fully object oriented using different design patterns – MVC and lots of state machines with template, factory, facade, etc scattered about. we used many of my libraries to form the core of that architecture – dmc_objects, dmc_states, dmc_autostore, and dmc_nicenet – and i think they performed admirably. (and not just because i wrote them :slight_smile: )

i am making updates to my libs and am planning to write some tutorials, create new library modules, etc based on our experiences. my updates to dmc_objects should be finished shortly, but sounds like you’re on a mission to get something done, so you’ll probably be coding before a lot of the other stuff happens.

hth,
dmc

http://docs.davidmccuskey.com/display/docs/DMC+Corona+Library
https://github.com/dmccuskey/DMC-Corona-Library

[edit]
FWIW, i will add that i have been looking at some other game engines for my next biz-app project, but only because Corona doesn’t support desktop deployment (eg, macosx, windows). i have been pouring over docs for Loom, MOAI, Gideros, Marmalade, etc. and, from what i have found, Corona’s API is more complete when it comes to features more suited to business type apps – facebook, twitter, video, maps, push notifications, etc. it is possible to add missing features in the others if you know C++.

Hey thanks so much for the detailed response - I really appreciate it. Gives me a lot to think about.

I came across this tutorial last night, so I might consider going through that as a form of evaluation. $50 isn’t much of an investment if I decide against proceeding.

https://www.udemy.com/business-apps-using-corona-sdk/

I was also looking into MOAI, but it seems even less equipped to deal with anything but games.

I’ll take a look at your libraries and see how things go.

Thanks again!

J.A.Whye’s course is great to get up to speed quickly. I found it to be great value for the investment. You can also get to it at http://masteringcoronasdk.com/business-apps-using-corona-sdk-2/ .

DMC, very interested in your experience and libraries. Look forward to your tutorial and updates. Thanks for sharing.

Widgets in Corona are different than in Objective C.  The reason has to do with OpenGL.  Apple lets us have both native and OpenGL canvases in the same app and on the screen at the same time, but they don’t interact.  Our user base is used to putting things into display groups and mixing and matching them with their OpenGL based display objects (graphics, etc.)   Because of this, we’ve made our own clones of the core widgets that work in OpenGL.   That means that they are not as flexible as native widgets.  For instance, trying to implement pull-down-to-refresh on a tableView is a bit of a challenge.  It can be done, but it takes work.

I’ve implemented a couple of business style apps.  One I took down because the blog it was designed for is no longer being maintained.  The other is a for pay app.  But you can look at the screen shots and see what’s possible.

https://itunes.apple.com/us/app/speedy-sender/id492006277?mt=8

The latest version of our widgets are skinnable, so it should be possible to easily make an iOS7 skin for them.  But many apps that you see on iOS could be done in Corona.