Sunday, March 4, 2012

Wizard's Magic Ball - Delivered!

UPDATE:  My app is in the App Store as well.

It has taken long enough, but I finally got an app delivered.

(click the image to go to Android market)

It turns out that even the smallest of apps is a ton of work.  Even this one, which was made with the use of the wonderful Corona SDK.

If you're interested in developing for iOS or Android and don't have the time, energy, or money to get up to speed with both Objective-C and Java, I highly recommend Corona.  Best of all, it's free to try out, so what are you waiting for?

That being said, I learned quite a bit in getting this little app to market:

1) Windows may not care about file name capitalization, but every other OS does, so if you're developing on Windows, do yourself a favor and pick a simple strategy for naming files (like keeping them all lowercase) and stick to it.  I spent several hours trying to figure out why my app wouldn't work on my tablet, only to trace it down to a reference to "LevelEditor" when the file name was "levelEditor."

2) Multiple X-Code installs will likely cause a headache when attempting to deploy to your iOS device.  This site was instrumental in getting my system setup to deploy Corona apps:
http://pushkararora.com/how-to/how-to-uninstall-xcode-completely/

3) For current Corona users, you need the following: X-Code 4.2 (4.3 is currently not working with Corona because of some of Apple's changes), and the current Application Loader.  Application Loader can be found on iTunesConnect, a site you will probably never have heard of, if you haven't done any iOS development before.  Also, it's almost impossible to find (go to Manage Applications, then look at the bottom under Application Loader).  The easiest way to get up to speed is to uninstall all X-Code installs, restart your system, install X-Code 4.2, restart your system, install the latest Application Loader, restart your system, and proceed from there.

4) Apple must use stagecoaches to deliver your app to the reviewers.  Also, their process for signing apps must have been borrowed from the Dead Sea scrolls.  For reference, it took me about an hour to get my app on the Android and Amazon market places.  It also cost me $25 (that was for the Android market, Amazon costs $99 a year, but they're waving the first year).  To get it on the Apple Store took me an entire day and $99.  Also, it's still not out yet.  I have to wait at least a week for them to accept my contract so that I can sell apps and at least a week for them to review my app (as of right now, the app has still not been picked up for review).  Be forewarned.  If you have any sort of deadline, get your Apple accounts squared away before starting on your app.

5) Corona is awesome, but there are some things to be aware of, most notably: test on as many devices as you can because the resolution will be an issue.  Corona comes with some neat scaling features, but while that works well for scaling big images to the right size, it doesn't help out so much with positioning of game elements.  I wrote a utility class for take the device's resolution and using that to scale all my elements and positions to the right places.  NOTE: Corona auto-scales assets if they won't fit in texture memory.  That means that, with my code, I had to make a special case to deal with assets that might run afoul of the texture memory limits on some devices (basically, anything over 1024x1024).

6) Make sure that you make a vector version of some of your screens and your app icon because you'll need a set of screens and icons in a myriad of sizes for each market place.

7) Asus Transformers often have a power button issue that comes from the outer button not lining up with the physical one inside.  I'm still trying to get mine fixed, but be forewarned if you're thinking about picking one up for running your apps.

8) Getting an app onto the market places where people can buy it and play it is an awesome feeling.  I recommend everyone try it out.