While most Americans plan to BBQ for the 4th of July holiday, Corona Labs saved a whole lotta chickens over the weekend in GuguGames’ Chicken BBQ!
Monkeybin was started in Oslo, Norway, in 2010 after Kim Ruben Vatnehagen and I met while working as independent contractors on a big software project. We formed the company with the objective of developing and publishing games for mobile devices and consoles. At first we decided to continue doing sporadic contractor work to make ends meet, but we spent as much time as we could learning what the mobile games world looked like and how it behaved.
The world is your oyster as you conquer lands in Little Generals. Since Little Generals’ release in late May, the game climbed the App Store ranks and was featured as New & Noteworthy in June. This entertaining game is the work of Canada-based Smarter Apps.
Most of you have probably heard about the issues being written about around apps that use UDIDs. Apple’s policies on the matter are, like everything else, pretty opaque. This is unfortunate, because it creates panic and speculation. So I want to give you the latest relevant information and our plan to address this. First of all, we want to make it clear that we have not heard of a single Corona-based app being rejected because of this. In fact, after talking to partners, it is clear that very few, if any, apps have been rejected by Apple specifically because of the use of UDIDs. At the same time, Apple has deprecated the API and we do want to address this before it becomes an issue.
There has been a lot of material presented over the last four parts. In this final part, we will finally go into some detail about our automated testing system for Android. We will also finally get an opportunity to bring everything together by looking a little more how our shell scripts orchestrate the test run and connect components from the previous parts. Android was a lot easier to setup automated on-device tests than iOS because the entire toolchain is command line driven. But ironically, actually running the tests has been more unreliable for us, mostly due to some bug related to adb. For some reason we can’t explain, adb will hang on us and it will not allow us to communicate with our device. This has
We allow Corona developers to also build for the Xcode iOS Simulator. Sometimes the simulator is preferable to our Mac or Windows simulator because the Xcode Simulator behaves more like a real device. Since we officially support the Xcode Simulator, we run our automated tests on the Xcode iOS Simulator to help verify our stuff actually works. While we could theoretically reuse the same process of scripting Xcode that we described in Part 2, we opted for a slightly different approach. As described in Part 2, Xcode 4 broke everything so we didn’t want to put this in the same critical path. Furthermore, Xcode 4 has some very nice speed improvements and reduces our build times to almost half. So instead, we simply use the command
As stated in Part 1, we use lua-TestMore for our testing and reporting. The output format is called TAP (Test Anything Protocol) . It is human readable and simple. TestMore and TAP are widely used enough that there are tools available to help you use it.
Now that you’ve seen the overview of the whole system, I’m going to talk about on-device testing on iOS first because this has been where we have endured the most pain.
Preamble: This post is going to be a little different than usual. What we present here is behind the scenes stuff used in making the Corona SDK. But we hope the information presented here goes beyond satisfying simple academic curiosity. We hope this information will actually be useful for others to directly use in their own projects. And the target audience for this post goes beyond our normal demographic. In addition to Corona developers, we are also reaching out to all Xcode/iOS/Mac developers, all Android developers, all Lua developers, and anybody interested in automated testing/software reliability. Also, as a consequence of our solution, people interested in Applescript, Scripting Bridge, and/or LuaCocoa may also find things of interest. Because the topic is vast, not every single
Soon after the rollout of our new audio engine, a few of our users reported some performance problems. We believe we have fixed this performance problem, but the problem itself was actually a rather bizarre bug that seems to be an Apple performance problem. So, I thought it might make for an interesting blog post.