3.3.1

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

The preceding is quoted from Daring Fireball presumably quoting Apple’s new licensing conditions verbatim (I actually haven’t read or signed off on the latest SDK license — I’ve been too busy).

I’m coming very late to this particular discussion, although I’ve commented a few times on Unity 3d’s enormously long forum thread on this same topic. Probably the single clearest explanation of WTF Apple is thinking is in this post (also thanks to Daring Fireball) from Jean-Louis Gassée, former head of Apple’s ATG, and founder of Be Inc.

Here’s my version: Flash, like all cross-platform development tools, is essentially about implementing a fixed feature set on a virtual platform that usually is itself based on a lowest common denominator of the platforms on which it runs. But, unlike Realbasic — which actually tries to find common features between platforms (scrollbars say), Flash is more like Java’s AWT and targets an absolute minimum of features (graphics and audio, say) and then builds out everything from scratch. This means that anything built using Flash adheres to no platform standards whatsoever. (E.g. on the Mac, Flash scrollbars ignore the mouse scroll wheel.)

It follows that cross-platform development tools are all about ignoring the advantages of individual platforms and all about turning hardware into a worthless commodity. Gee, I wonder why Apple might not like this?

But, it gets worse. Adobe, having started out as Apple’s partner has — to its own detriment — scorned the Mac platform and released a succession of inferior products on the Mac, notably Photoshop. (But remember that the as-yet-unreleased Flash 10.1 addresses most of the issues with Flash… in other words, in response to ten years of user complaints and three years of outright hostility from Apple, Adobe has finally fixed a few glaring issues with Flash.)

But, as you might infer from my reference to Unity at the top of this post, Adobe is far from the only (potential) victim of this latest exchange of fire. It would appear that technically, Unity might be affected by this changed clause. More importantly, any finesse which might enable Unity to avoid being so affected is equally open to Flash:

“Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine” — depending on how you read it, Unity or Flash themselves may have been “originally written” in Objective-C, C, or C++, but Unity and Flash apps themselves are written in something else entirely.

“only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs” — is a pretty odd clause because it appears to be unnecessary given the preceding clause — how can I compile and link against an API from a language I’m not allowed to use in the first place? And, in the absence of the previous clause it expressly prevents an app written in some other language from using iPhone OS’s differentiating features. In other words, an app written in C that gratuitously implements a substandard UI from scratch is OK but one written in Lisp or Go that contrives to use the native API to access platform-specific features is not. Why? And how does this benefit end-users or Apple?

Edit: actually, it’s possible that Apple’s real problem is the assumption by third-party tool builders that Apple is going to stick with the ARM platform — e.g. Adobe’s LLVM implementation emits ARM binary. Apple’s long-term commitment to ARM cores can hardly be taken for granted given its various acquisitions, including a PowerPC-oriented chip design company.

It seems to me that the way for Apple to achieve its objectives would be to ban apps that use non-standard UI (and other) widgets without good reason, which gratuitously implement widgets for which native widgets are available, which suffer from poor performance, memory footprint, or power usage for no good reason, and which fail to adhere to various platform standards (and let’s go crazy here and enumerate them). All of these things are actual end-user benefits rather than arbitrary technical or legal requirements.

This would kill Flash far more specifically than the existing legalese, and the way to address it would be to fix the problems in Flash (don’t hold your breath). A developer like Unity Technologies (which has been known to fix problems in sub-Geological timeframes) could address its non-compliance by improving its support for platform APIs and UI widgets. Simply allowing developers to incorporate NIB files and make direct API calls would probably solve 95% of issues and actually make developers’ lives easier too.

Obvious deficiencies in iBooks

It’s early days yet, obviously, but iBooks needs work.

First of all there’s the glaring lack of an orientation lock. This was supposedly fixed some time ago but i guess the fix hasn’t been released yet. OK wetware error there 🙂 Edit: on further reflection, I think I would prefer a software lock on a per app basis over a global hardware lock since I want iBooks locked almost all the time and some other apps such as photos to be locked almost never. Even so, the hardware lock works well enough.

Next there’s no ability to save bookmarks, let alone make margin notes. This is something the iPad should excel at.

You can’t customize the controls much, and I find the page flipping a bit twitchy, so I am occasionally accidentally switching away from the page while I am reading.

On the positive side, I find iBooks perfectly readable in direct sunlight, and I love being able to pick Cochin as my book reader font.

Incidentally the book I’m reading is Iain Banks’s Transition, which is actually pretty interesting (it’s not a Culture novel so it hasn’t got great reviews, and it may end up sucking, but I am enjoying it so far).

iPad arrives

I am writing this post on my iPad — one of two we got this morning around 9am. According to the delivery guy each of six drivers in Tuscaloosa had about fifteen. If that’s a good sample — which it almost certainly isn’t — then about 0.1% of the US population took delivery of an iPad this morning.

I am touch typing (two fingered) on the glass keyboard. It’s just fine — but I did hit one snag. Safari didn’t recognize the standard word press editor as a text entry field, so I’m having to enter HTML directly.

More impressions later.

Battery Life

Aside: typing HTML with the iPad’s glass keyboard is an exercise in frustration — you need to switch between three keyboards four times to enter a single open heading. (Further aside: I am now going back through my iPad postings and fixing the paragraphs.)

I’ve been using my iPad solidly since it arrived, so around 3.5h, a lot of it in fairly demanding apps, and the battery is at 60% — having started at around 90% and refusing to charge when docked.

Edit: after being used much of the day and getting about 15 minutes of charger time (the iPad can only be charged via syncing to a “high power” USB slot, which seems not to include any USB slot I’ve tried) the iPad eventually got down to 30%. This morning I read for about 30 minutes using 3%.

Apps

I immediately bought Pages and Keynote. I’ll probably buy Numbers eventually, but I can think of no use for it right now. (I’d get Bento if it had export options to something other than the desktop bento for which I have zero use.)

Both are what you expect although perhaps missing a cherished feature or two. What I’m really missing on the iPad right now is some kind of file system — as I’ll discuss below.

I also got Alias Autodesk Sketchbook Pro which is based on a program originally written for tablet PCs. Brushes on the iPhone was painful to use — I never produced a single picture with it of which I was especially proud. My first two attempts with Sketchbook were decent, and I tried to upload one to this blog entry — so far no dice. (I’ve since bought a $0.99 app called Art Studio which is technically inferior to Autodesk’s product, but better thought out UI-wise.)

Similarly I can’t download PDFs — although they do render beautifully in Safari.

Of the built in apps — I’ll include iBooks in this category — Mail is a joy (although I understand gmail on the iPad is wonderful too), iBooks is great, although many of the Gutenberg titles are a mess until you get past the cruft at the beginning, and the others are ok.

The photos app and origami slideshow option are simply breathtaking. This is pretty much the best way to look at photographs.

On the down side, I find calendar’s inability to create events when I tap in a particular date/time to be infuriating. Lots of room for tweaking.

There are several Dr Seuss books in the app store — I bought two, and the only down side is they seem to chew through batteries super fast… Flash? Or just poorly coded?

Ergonomics

I’ve already discussed the keyboard quite a bit. The only real issue with the glass keyboard — in either orientation — for me is the business of getting to special characters. If I were typing a novel, say, it wouldn’t be a big deal (especially with the smart correction handling most apostrophes, etc), but typing email addresses and HTML tags is a serious nuisance.
(Once you have one heading or whatever typed, copy and paste mostly solves the problem. Also, last night I discovered that ?123-Z is the Undo key (“?123” is a very cumbersome name for a modifier key, and somewhat misleading when the “?” is available via “shift-.”)

As a book reader, and I haven’t tried reading anything serious yet, it weighs less than a hardcover novel and can be held at angles a book cannot owing to not having pages to worry about. E.g. I find reading lying down with the iPad propped on my chest very comfortable, but could never read a book like this because I’d have to hold the pages still.

Just as I was getting used to drawing with my fingers, I encountered an Apple store employee using a capacitative stylus which seemed to work pretty well. Maybe I’ll try one for drawing.