|Now for OS X!|
To see it you'll have to open the OS X App Store program and search for iMIDIProbe or use the link at the right. (It's called iMIDIProbe because apparently you cannot have Apps with the same name in both stores - though I am not 100% sure on this. I had to create the App in the store a couple of times to get things to work and I may have screwed this up myself.)
So if you don't have a Mac you are pretty much SOL at this point as far as this post is concerned...
Basically the Mac version is identical to the iPhone/iPad version - the code base is almost exactly the same. The only real difference is related to the code that makes it work on OS X.
So at the end of the day this gives me the ability to write non-trivial applications that are the same on both iOS and OS X.
I tried to create an iPhone-like simulation under OS X so the app would like like its running on an iPhone/iPad. This was tricky because there would no doubt be a legal problem duplicating the appearance of the iPhone Simulator (a tool available to iPhone developers).
I came up with a strategy to make it "look" okay. I chose the layout above and placed the logo of the app in the upper right corner - that way if you had multiple apps running as simulated iPhone's you could tell which window was which kind of app.
I wanted to use different icons for closing and hiding the app - but the App Store wouldn't allow it so I used the standard OS X red and orange circles.
The core application consists of eleven common Objective-C files: all related to the functionality of the app.
I have ten common Objective-C files that make up the various controls (buttons, etc.).
A dozen or so common files related to MIDI.
And another dozen related to audio stuff.
So a total of about 50 or so Objective-C files that work on OS X and iOS - eleven of which make up the actual app functionality.
The Mac side has about ten more Objective-C files that make up the "container" that manages the Chameleon library, the "window" code that makes the iPhone-like border, the code for managing the App store receipt, and so forth.
The iOS side has far fewer files as the basic code was designed to fit that environment: basically four for everything.
I did not want to move forward beyond this app until I knew what was involved across the board for the OS X and iOS side: I could have done something wrong on either side that would have made the app not work in either store.
But I was successful and now its time to move ahead.
The next project I plan will be in the same order of magnitude as this - with different functionality. But at least now I know what to do and not do to get things through the store.
In thinking ahead I've been wondering what it would take to move these apps to Windows. There's a lot involved to do this and I am going to punt for now...
All things considered selling this way is probably going to be the wave of the future and at least now I have a mechanism to do this on multiple platforms.