Sorry for the delay since my last post, life has been getting in the way.
I have been looking at the SDK and documentation that Apple released on Thursday, and have some good news and bad news.
Good news:
- Interface Builder Lives! Well, not yet – Apple announced it, but has yet to actually deliver it to developers, although it’s supposedly coming very soon (with only 3 months until launch, it has to). Still, just the fact that they will be releasing an IB for iPhone OS (the official name of the iPhone software, I personally prefer Mobile OS X, but whatever) is a massive gain for developers, especially with its support for multi-touch events.
- The App Store is the future of software distribution – a one-stop shop for the purchasing and updating of apps on the go. The terms (70% of revenue goes to the developer) are pretty fair (I’ll admit I whined a bit on Twitter, but since I’ve realized that it’s still a steal comparing to going it on your own), and the ability to be advertised on the iTunes Store is fantastic. It will also allow to possibly price AutoPilot lower than I originally planned – stay tuned for more…
Bad News:
- Intel-only? Boooooooooooooo! My 2-year-old iBook may be a little slow, but to make it obsolete is a bit over the top. As of right now, I have no legal machines that can run the SDK according to Apple. However, parts of the SDK are, in fact, compiled as Universal apps (specifically the platform information, dev documentation, and the Aspen Simulator), and will run on my machine. This, however, is a stop-gap, so I am in talks with a possible source of a brand-new Intel Mac (The source? My parents.) I also have a desktop PC that “tolerates” OSx86, and as a worst-case scenario, a copy of Leopard might just happen to be installed on that system to start native development.
- A funny thing happened to the APIs on the way from Leopard to the iPhone – the Calendar Store framework disappeared! Calendar Store controls the system’s central calendar and to-do database, where everything from iCal is stored. In Leopard, apps could make calls to Calendar Store and read or write directly to the central database. This framework is non-existent in iPhone OS (yet there is a Contacts API (albeit read-only) – thanks Apple *rolls eyes*). What does this mean for AutoPilot? A couple of things:
1. I’ll need to find some workaround to allow for alarms for to-dos with due dates, although with the absurd lockdown on anything non-Apple-specified, I’m not sure what I can do (I’m still reading through the programming guide, hoping there’s some way to tie directly into MobileTimer.app (AKA Clock), but I’m not holding my breath…)
2. Syncing just became a LOT harder on both sides. Since I can’t write directly to the central Calendar Store (not that I expected to be able to – after all, there is no to-do functionality, but it was a nice pipe-dream), I have to maintain my own database. I have yet to read anything about writing sync conduits for iTunes, meaning that as far as Apple is concerned, unless the data you are trying to sync involves contacts or pictures, the iPhone is an island.
Coming from years as a Palm user, where it was constantly bashed into my head that a PDA is a mobile COMPANION to a desktop computer, as opposed to a replacement, I am in disbelief at the naivety in blocking all syncing. Just because the iPhone is a whole new generation of mobile computer, doesn’t mean it should be artificially blocked from talking to one’s home system. I have some ideas of how to get around these limitations, but they are all very ugly and hacky workarounds that skirt around the real issue: Apple doesn’t want anything that they didn’t write to sync with iTunes.
Part of this I can write off to security paranoia – Besides abolishing Calendar Store, they have essentially castrated every framework one would think could write to other apps, because Apple is obviously scared stiff of hackers attacking this now dominant platform. In case Apple somehow missed a malicious application, if they had read-write frameworks available to signed apps, suddenly people downloading these bad apps would get burned. Thus, instead of boosting the security of the actual operating system, they have instead completely crippled legit developers’ ability to interact with other apps on the phone, while meanwhile hackers will just dodge around Apple, find stealth ways to “jailbreak” a phone and gain access to the underpinnings, where they can do anything they want.
*sigh*
Now that I’ve gotten all that vitriol out of my system, I can assure you that AutoPilot will work perfectly fine and as planned in every way except syncing. I will ensure the app works great as a standalone trusted system, and then I will work on possible solutions to the sync issue. I also plan to let Apple’s engineers have an earful over the issue (hooray bug reports), and I’m likely not alone – after all, my “competitor”, Omni Group, has said they want to make their “Mobile OmniFocus” sync with the desktop app, and to be denied that, needless to say they’re likely LIVID. Maybe, just maybe, we angry developers can rattle the cages at 1 Infinite Loop enough to cause Steve to call off the absurd paranoia and allow developers to truly take advantage of this incredible platform.
Posted by autopilotapp