Hello @seif.17 and welcome to our Corona Labs community forums. We are quite glad you are here.
Swift/Objective C are Apple’s official languages for iOS, macOS and tvOS development. These are the only practical platforms you can build for with these tools. You can also use C++ as well. Apple has a very deep ecosystem of API calls to do things, but it generally a more complex way to do things.
Corona on the other hand, is a cross-platform toolset. We primarily use Lua and you not only can make apps for iOS, macOS and tvOS, but you can also make apps for Android, Android TV, Windows Desktop (you would need a Windows machine to do this), HTML5 and we are working on building for Linux. Corona gives you access to far more ways to distribute your app rather that be locked into the Apple ecosystem. Corona also has a rich set of API calls, but unlike using Apple API’s, our API’s are simple to use, require less code and less complex code.
With Xcode, it’s a bit complex to set up your app, build your app and either install it to a test device or use the Xcode simulator (which is slow to load and slow to install to). With Corona, for most of what you do, you simply save your changes in the editor and watch the Corona simulator update instantly with your changes. It’s a way faster way to develop your apps. And when it comes time to build and deploy your app to a device or upload to Apple, It’s a single dialog box in the Corona simulator.
Now where things get a little odd, Corona at its core is based on using your device’s graphics processing unit (GPU) for maximum performance. Therefore most everything that you do in Corona will be rendered to an OpenGL canvas. This is great. However, most things you would do in Xcode with Swift like putting labels on the screen, collecting text fields, adding buttons etc. do not happen in OpenGL. Corona has made many of the things like text display (i.e. labels) work within OpenGL, but things like text fields can’t be part of the OpenGL canvas. It works and it works well, but there are other native objects that we don’t support, but in most cases, you can recreate them with combinations of rectangles and text object.
In the rare case where you need to do something, we don’t support it directly, or it can’t be made using our APIs, you can still use Xcode and write some native code alongside your mostly Lua/Corona app to extend Corona even further.
Rob