Sure, Corona can be used to make non-game apps. Most of my personal apps that I’ve made fall into this category. You just have to understand that there are limitations.
Because Corona is cross-platform, you may find that there are hardware features that Corona doesn’t support through simulator builds and in some cases, you may have to end up writing native code and using Xcode or Android Studio to build your app to access those native features.
Secondly, Corona’s main drawing engine uses OpenGL, a high speed graphics rendering engine. Most of our API’s (like display.newImageRect() ) draw their output in an OpenGL canvas window. Many objects you may want to use live in a non-OpenGL space (like text input fields, webViews, etc.) We also don’t have a wide variety of these. These native objects have to draw on top of the OpenGL layer and it creates some challenges to seamlessly integrate these native objects in to your OpenGL. You just have to work within the limits.
Next, related to this, we’ve created a library of widgets that look like/behave like native widgets that you might want to use. For instance, we have a widget.newButton() and widget.newSwitch() API that with their default displays can look like the native versions on iOS or Android, but since they are really OpenGL based graphic objects, they can be reskinned anyway you like and these widgets are part of the OpenGL canvas. While we have a decent library of these widgets, we don’t have everything. For instance, we don’t have a “Navigation Bar”, but those are easy enough to create on your own using display.newRect(), display.newText() and widget.newButton().
There are quite a few relevant items documented on our docs site: http://docs.coronalabs.com/
What you may find more useful are a couple of complete projects on one of our GitHub repos: https://github.com/coronalabs-samples
Of the four sample projects here, three are non-game projects. I would suggest starting with the Business App sample and then delve into CoronaWeather.
Rob