Still, I bet that book designers -- and game designers -- will love what they can do with these routines. I'm sure that the best textbooks will soon include full animation, video, and simulation when they start appearing for the iPad. It might not even be fair to continue to use the word "book" to describe how nonfiction content will be delivered. All you need to do is compare a 30-year-old cookbook with a modern one and see what a talented book designer can do when equipped with a Mac and some good layout software. Now imagine tossing a programmer into the mix.
But don't get too excited: The iPad's single-window model means that a click on a URL in an e-book transfers control from the e-book to Safari. Even if the publication is delivered through Safari, clicking on a link hides the current screen and moves to another. This single-window model is going to discourage the kind of foraging and wandering common to desktop Web users -- and that many designers use as their interaction model.
Be prepared for app rejections and runarounds
iPhone developers have been complaining about Apple's complex, often unstated rules about the App Store ever since the first iPhone SDK. That won't change with the iPad App Store.
The App Store rejected my app several times when I failed to choose correct settings for the flags in the Info.plist file. This long collection of switches in this file influences everything from the acceptable devices (iPad, iPhone, or both) to bytecode generation by the compiler. Apple has constructed several menu options with templates that try to set all of these switches to the correct configuration, but if you take a slightly different path, as I did, you'll end up confused.
[ Also from InfoWorld: Read Peter Wayner's "iPhone App Store roulette: A tale of rejection." ]
The third time I submitted the application, though, it sailed into the store after sitting in the review queue for just one day. All the fiddling with the flags and the icons worked out. It may not be the most polished book reading app, but it's an easy way to get Cory Doctorow’s Makers for free. (You can get my free iPad Makers app at the App Store, as well as the iPhone version.)
Figuring out how to build an acceptable Universal Application is yet another skill that forces the developer to mix together knowledge from documentation with folk wisdom from colleagues. Sometimes the App Store will flag a mistake when you upload the app, but I had to wait for official rejection letters -- the good news is that they came after a much-improved wait time of about two days.
When I built my sample version of Cory Doctorow's Makers app, starting with an HTML version I'd previously created, the app started working almost immediately in the simulator. But I spent several days trying to upload it to the App Store.
Although there are now copious videos and some instructions that are often useful, there's also a great deal of complexity to work through -- and it's only half automated. To make matters worse, the rapid evolution of the iPad App Store platform means that the automation isn't always consistent. The Application Loader tool, for instance, kept rejecting my binary, but I could get it to upload successful through the Apple developer Web site.
Apple's often arbitrary rules also surfaced. For example, I lost one hour trying to upload a 512-by-512 image that is supposed to be displayed for customers, but the iTunes Connect Web site just kept rejecting my form by saying the image couldn't be found. After I filed a bug report, Apple told me the problem was resolved at the end of the day. Although this glitch was fixed, someone out there rejected the app because the 512-by-512 version of the icon allegedly didn't match the 57-by-57-pixel version, even thought I swear I built them from the same image. Perhaps this was caused by the way that the Make function doesn't seem to recognize changed icons. Sheesh.
A good deal of the trouble continues to come from the seemingly endless provisioning process. Every piece of software kept telling me that some certificate was going to expire in four days, but I couldn't figure out how to get a new one. After an hour of clicking, I just uploaded my code and it seemed to take after a few hours of fiddling. Then when it did expire, all of the provisioning profiles stopped working and I couldn't simply push the Modify button successfully.
At least half of the time I devoted to this app was spent in this hell. It's almost enough to make me wish that someone would figure out a cheap way to crack public key cryptography apart so no one is forced to dance for these routines.