09 April 2015
Guest Post: Building a Custom Launcher with CoronaCards
Today’s feature comes to you courtesy of Bonfire Media. As a long-time veteran of the mobile software industry, Bonfire Media has been making apps and games for over 10 years, and in the last few years has been using Corona SDK for several projects. One of their most recent releases, Aero Launcher, was built with CoronaCards and has already received almost 1,000,000 downloads.
What is Aero Launcher?
Before I describe Aero Launcher, it probably makes sense to clarify what a “launcher” is. Almost everyone with a mobile device uses a launcher every day, as it’s simply the screen that appears on your smartphone or tablet when you hit the “home” button. Essentially, the launcher is the application we all use to launch and organize our apps and, as such, all mobile devices come with a built-in launcher. However, many people may not realize that, on Android devices, you can replace the boring stock launcher with an awesome, custom launcher.
Aero Launcher is one such custom launcher. Here’s a short video:
Aero Launcher provides three main advantages over your default Android launcher:
- It automatically organizes all of your apps and games into simple tabs: Favorites, Apps, Games and System. Within each tab, you can optionally ask Aero to organize your apps even further into subcategories. This feature is great for users who don’t like to spend the time grouping all of their apps manually. In addition, you can easily move apps to your favorites tabs or uninstall unwanted apps by long-pressing an icon.
- Aero brings your homescreen alive with beautiful wallpapers, animated particle effects, custom fonts, and unique sounds. Here is an example of the “Fireworks” theme which shoots fireworks whenever you touch the screen, and the “Snow” theme that features falling snow:
- Aero’s Genie tab recommends apps and games which you might enjoy, based on apps that you already have installed and use the most.
Why did we use Corona products instead of opting for the fully native Java development route? First of all, we really wanted a smooth, 60 fps experience for our launcher, including smooth animations, particle effects, and game-like responsiveness. Corona is very good for this, and because we are very experienced with Corona, we knew that we could make great themes using Corona rather than native Java. Plus, playing with cool animations and effects is more fun in Corona than in Java!
So, why did we use CoronaCards instead of simply Corona SDK? Well, one of the things which all custom launchers need is an inventory of all the apps that a user has installed. Corona SDK doesn’t have access to this information, but the native Android SDK does and we needed a way to check this. Thus, we were left with the choice between Corona Enterprise and CoronaCards. Both solutions would have worked, but the reason we went with CoronaCards is that we already had a large codebase from an old launcher we had written natively, and it felt simpler to embed a CoronaCards “view” into our existing launcher code rather than rewrite the bulk of our code in Lua and add native extensions.
Essentially we considered it like this: Corona Enterprise is ideal if you want to create your apps primarily in Lua and Corona SDK and then add native extensions whenever necessary. CoronaCards, on the other hand, is a better fit for developers writing the bulk of their code natively who would then like to utilize the power and simplicity of Corona SDK for aspects of the front-end UI. For Aero Launcher, we used CoronaCards not just for elements of our UI, but for the entire UI. This pushed the boundaries of CoronaCards in a few cases, but with the help of other Corona developers, we were able to make it work, and work very well. In the end, Aero Launcher’s codebase is about 50% Java and 50% Lua.
Getting Aero Launcher
Aero Launcher is currently available on Google Play. Please try it out and let us know what you think!