Below, Niels describes how the full-time duties of being dads made the Kidimedia team desire a quick and efficient means of developing apps without sacrificing an ounce of performance or quality.
When Steve Jobs announced the iPad in January 2010, the first thought that crossed my mind was “This is going to revolutionize education!”
Being a geek dad to three young kids, I had already witnessed first-hand how easy it is for them to operate an iPhone. The combination of the touch screen, the accelerometer, and Apple’s relentless focus on usability resulted in a class of devices that is totally natural for kids to interact with. But the screen size was a limiting factor — at least, until the iPad came along!
I jumped on the opportunity with two friends, determined to play a role in this educational revolution. All of us have a long background in hi-tech software engineering. Because we all have families to support, we had to do it by burning the midnight oil. We evaluated different options:
- Objective-C: Too weird, too cumbersome. I have over 10 years of professional C++ experience, but ObjectiveC just makes my eyes bleed.
- Unity3D: Too complex for 2D.
- iPhone Wax: Supports Lua, but doesn’t do anything to make the iOS API’s any easier to deal with.
- Corona SDK: Simple, fast, cross-platform, nice language — we have a winner!
Working in Corona is the best fun I’ve had in 10 years. Not only that, but it’s also been the most productive environment I’ve ever used — the path from idea to implementation is short, smooth, and frictionless. You often hear Rubyists say that “Ruby makes you happy”, well, Corona just makes you laugh out loud with an evil, I-will-dominate-the-world-with-this-app kind of muhahahaha! It allows you to focus on what you’re building, rather than how you’ll build it!
We tried out lots of different things while building Kidimedia, our first educational app for 3-7 year olds. We experimented with different kinds of games and different kinds of controls. Luckily, I have my own usability lab at home (my three adorably geeky kids), but we also did play testing at local kindergartens. Because Corona is so lightweight, we were able to do rapid iterations and tweaks to get things just right.
After six months of development, play testing, and going back to the drawing board a couple of times, we released Kidimedia for iPad right before before Christmas 2010. It was a suite of 150 games in seven different categories like jigsaws, reading, and math games. We’ve since followed up with a couple of updates, raising the total to over 400 games of 9 different types. Since we’re constantly adding new content, we’re downloading that in the background from our servers using Corona’s compact yet powerful async http API’s
Just recently, we’ve released a lite version of Kidimedia, allowing parents and kids to sample 2 games of each type. In an attempt to go viral, we added a special Facebook promo: if parents like us on Facebook, we unlock the full version for 1 week. Corona’s dead simple Facebook API’s made that a no-brainer to implement.
I don’t even want to try to estimate how much harder that would’ve been if we implemented everything in Objective-C!
We haven’t made the leap to Android yet, mostly because of the lack of decent Android tablets. But with the help of Carlos & Co., we did port Kidimedia to the NOOK. Corona support for the NOOK was still very experimental at the time, so the road was a bit bumpy (mostly due to Barnes & Nobles changing things every other day). Ansca’s support was absolutely AWESOME! I’ve never experienced a company that is so open and so close to its users.
Unfortunately, we haven’t been able to release Kidimedia for NOOK just yet, because B&N can’t deal with international developers right now. Hopefully, that will change soon.
Nevertheless, this whole experience illustrates what I like most about Corona: Whatever mobile platform comes along to challenge iOS, it’s Ansca that will do the heavy lifting of the port for me.
Me, I just hit “Build.”