We hear everyone here on the concern around using Corona for business apps and here are our thoughts.
First of all, today’s acquisition announcement has little to do with this discussion. As we explained, Corona is here to stay and our goal is to make it a better and better platform. The more important issue here is what the platform is good at vs. what it is not as good at.
While we want to say Corona is a great platform for *any* type of app or game, the truth is that it has its strengths and weaknesses (just like any other tool/platform). Rich, custom UIs are a Corona strength, while basic native widget UIs are not a strength. A big reason for this is that we are a cross-platform framework and the major platforms (iOS, Android and now Windows Phone) are diverging in their native UIs, so putting together a solution that works across all of them is a very difficult thing to do.
In fact, none of the major frameworks handle native widget UI in a satisfying cross-platform manner. They usually go about it in one of three ways:
-
relying on web elements (which are by definition not native)
-
providing a cross-platform approximation (similar to our widget library)
-
providing a wrapper for the native APIs
The last item is similar to how we handle things with Corona Enterprise, and it does not solve the cross-platform issue. It is just like developing natively, but with some basic abstraction.
So what are we going to do?
First, we plan on maintaining our widgets library, but it will become harder and harder to keep it a viable option in light of the diverging UI on all platforms. Also, we will still provide Corona Enterprise, which gives any user access to the native APIs.
But we also think we have a better way to approach this: CoronaCards.
With CoronaCards, you can approach building a native app like any other developer, taking full advantage of native UI elements, and even using another framework. Then, you can use CoronaCards when you need the power of Corona for rich/interactive elements. The way you use CoronaCards here is much in the same way you might insert a webview into your app. The difference is that instead of a webview you are inserting a Corona view (partial or fullscreen) into your app, and of course, instead of HTML, you are using Lua/Corona APIs. We think this is a great option for developers and we are starting to see people take advantage of this.
So that is our current thinking about the key issue in building business apps with Corona. We welcome your comments.