Since our last public release (2017.3068) in April, our engineers have been very busy updating Corona, continuing to provide a world-class 2D development framework. This engineering cycle has focused a lot on stability and adapting to new business models, but we’ve managed to add in some pretty cool things too!
Corona Enterprise is now free
Starting with build 2017.3100, Corona Enterprise became free. We re-branded it as Corona Native and it’s now included in the unified Corona application. With this public release, Corona Native is now available to everyone.
Windows Simulator updates
We have also focused on improving the user interface for Windows users. Now you can stop builds in progress by simply clicking the “Stop” button. The build process also has a visual indicator of its progression. Finally, we have reduced the Java dependencies, although you will still need the 32-bit Java JDK installed.
Google IAP Plugin
This plugin was updated to make its initialization asynchronous. Prior to this, Corona would “block” while waiting for the initialization to complete. Because of this update, if your app currently makes calls to APIs like store.loadProducts() or store.restore() within
main.lua, these calls will likely execute before the plugin has finished initializing, causing them to fail. Since this change affects builds 2017.3105 and later, if you’re updating from the previous public build, this change will affect you and you should read this post for steps on updating your code.
Facebook V4 Plugin
The Facebook V4 plugin had the same issue with initialization blocking which increased “App Not Responding” (ANR) errors on Android devices. Because updating the existing plugin would have caused a significant breaking change, we created a new plugin, plugin.facebook.v4a, so you can migrate at your convenience. For more details, see this post.
Changes to native text field input types
"decimal" keyboard type support for native.newTextField() on all platforms (previously it was only available on iOS). We also added a
"no-emoji" keyboard type that prevents users from entering emojis, although it may still be possible for users to “paste” in emojis on some platforms.
Physics time scale APIs
Apple in-app purchases
The Apple IAP store.* APIs now work on macOS and tvOS, in addition to iOS. Also, the iOS 11 requirement that apps support store-initiated purchases has been added.
We have added new APIs to help you compute the baseline and other metrics for fonts, allowing more control of vertical alignment for text objects in relation to other graphical elements or text objects of different fonts/sizes.
- AppLovin — Previously, AppLovin was only available as a revenue-share plugin. While this is optimal for developers with smaller revenue streams from ads, those with higher income prefer a fixed fee. As such, AppLovin is now available as two plugins: free (with revenue-share) and paid ($199/year). Now, as your income profile changes, you can use the best plugin as needed.
- Facebook Audience Network — Similar to how we made both a paid and revenue-share version of AppLovin, the F.A.N. plugin is now available in both paid and revenue-share versions.
- BatteryState — This new plugin allows you to either get battery events or query the battery system to determine how much charge the battery has, if it’s charging, unplugged, etc.
- NanoSVG — You can now import some SVG graphics as Corona bitmap textures using this plugin.
Collision Filters — This plugin is designed to circumvent the math and complication of creating physics body collision filters using
maskBits, letting you assign user-friendly names to “categories” of objects in your physics simulation without worrying about internal binary values and sums which are liable to change as you adjust game behavior.