Dashing Falcon logoDashing Falcon 

Macintosh and iPhone software development

Apple and In-app Content Sales

@gruber asked,

Why are so many people surprised that Apple wants 30 percent of all money generated by iOS apps?

I’m not as shocked at that as the applicability to the media reading apps.

Apple’s position makes at least some sense to me in an application that is, on the iPad, Glossy National Magazine. Having an in-app subscription method makes some kind of sense, can protect the consumer, and may ultimately drive more business to the publisher. And in this case, the user is dealing with a publisher.

What bothers me is that the In-App purchase and 30% cut may apply to apps like the Kindle reader. This is an app that really just gives me access to a media library I populated, often those purchases being made outside of an Apple product. Amazon’s not a publisher, but a retailer/distributor.

The difference is in the verb. Some apps are the magazine/newspaper, and some apps just read media. Perhaps the line could reasonably be drawn there.

And it really raises a lot of questions:

Is Apple ready to handle an app that has 600,000 items available for purchase?

Do books sold through IAP have to follow Apple content guidelines? If not every book is available in IAP, does that violate the guidelines?

Is 30% appropriate in situations where Apple has done little but collect the money?

What about other media-reading apps like Stanza? I can buy any number of ePub books unencumbered by DRM and put them on my iPad. What’s the difference between using a web browser and iTunes to put a book in my iPad, and Amazon just downloading a book? Is it the DRM?

It concerns me because I love my iPad, the freedom it gives me, and the wide variety of media it plays. It’s my portable TV, my book, my magazine, my music player, and my surfboard for the ‘net. It would be disappointing to have the utility of the tablet diminished for me because some players would have to leave the market.

The rest of the story will probably play out by June 30, the date Apple has reportedly set for compliance.

Indie Developer Toolkit

I’m at the C4 conference, and one of the questions asked of the panel was what they used for email, hosting, version control, and the like. The panel had good answers.

Here’s what I’m using.

And on the Seventh Day, He Rested…

Talking with Wolf Rentzsch after the CAWUG meeting today, I mused about the upcoming Snow Leopard release, which is mostly internal improvements relating to performance, and few user-facing features announced so far (the chief being Exchange support).

This is really about showing Microsoft how it’s done. Windows 7 will be Microsoft figuring out how to slim down the kernel, and reinvent Windows into some sort of manageable form.

Trying Out Bazaar

Considering that it’s the “other” DVCS often considered along with Git and Mercurial, I thought I’d give Bazaar a try.

It’s not working out so well so far. I guess I’m too used to Hg; I found its workflow agreeable.

Quartz Event Services for Interrupting an Embedded Python

I’ve always thought that Emacs was an interesting editor (development platform?) since it is extensible in the same programming language it’s written in: Emacs-Lisp. Not only that, but you can extend it at runtime, right while you’re using it.

I’ve wondered: What if the same thing could be done with a Python program on OS X. You could even start with a minimal program, and add functionality to it while running it, saving the intermediate results to disk so that the next time you start the program, you start up with all the state and functionality that was there before.

At the very least, it’d be nice to have a robust Python interpreter running concurrently and inside of the program under consideration.

Notifications in iTunesBridged

HAS commented that I could track changes to the player state of iTunes using NSDistributedNotificationCenter.

I’ve gone ahead and made changes to the iTunesBriged code to show how to do that. Now, whenever iTunes changes state, whether it’s via the iTunesBridged application or by directly manipulating iTunes, the title of the Play/Pause button changes and the current track name is listed in the text box.

As mentioned in that comment, Notification Watcher is a great app for observing distributed notifications. It made it really easy to figure out what iTunes was sending and what data was in the userInfo.

Thanks for the comment, and the idea!

Get iTunesBridged source downloads, which can be cloned with Mercurial or downloaded as a tarball.

Changing to Mercurial

Thanks to Dave Dribin, and his analysis of git vs. Mercurial, I decided to give Mercurial a try.

It turns out I rather like it! I’d been keeping a lot of my work in Subversion, which is a pretty good centralized source code management system, but the usual way of using it seemed so heavy: branches and tags and all kinds of operations took big URLs.