Blog Apps About

Currently writing about GWT, Ajax, Leopard, iPhone Development, and Java.

iPhone vs Android: A Matter of Touch

Thursday, March 13, 2008
After last week's press conference, my friend Ed Burnette compared the iPhone SDK to Google's Android SDK on his ZDNet blog. It's a great rundown of the platforms, and describes the dev kit differences (developer tools, application life cycle, devices) and the many similarities (location based services, acceleromater, OpenGL ES, SQLite).

From the software developer's perspective, Android openness is appealing: less restrictions on applications, easier deployment to devices, and a lower barrier to entry (any OS, no $99). But Ed points out two advantages for iPhone that I think will end up being Apple's aces in the hole:
  1. Multi-touch: The multi-touch experience is the iPhone's killer app, and Android doesn't have it.
  2. Consistent hardware: Android devices will come with differing screen sizes, processing power, and input devices. This will lead to cheaper phones, but an inferior user experience: applications designed to accommodate never excel. Desktop apps have room for error (what's 1024 pixels among friends?), but mobile apps have to shine or they stay in the pocket. With the iPhone, developers can target their application to one specific platform and fine-tune a pixel-perfect user interface.
I might be wrong, and the PC model might win out again. Google has put forth an impressive SDK, and it's somewhat of a foolish exercise to judge usability without actually using a device. But from my perspective, the entire iPhone experience will be hard to beat.

The second half of 2008 will be an exciting time in the mobile space: Android devices will be on the market, iPhone applications will be in AppStore, and hopefully a 3G iPhone will be flying off the shelves. I can't wait to see what developers start releasing and, more importantly, what consumers start using.

Labels: , , ,

iPhone Software Development: No Anger Here

Monday, March 10, 2008
I'd like to follow up on my initial impressions of the iPhone SDK. Overall, I think Apple did a great job with the SDK, and released a powerful, comprehensive environment for developers. I brought up a few minor criticisms in my post, but concluded with:
"Setting aside these concerns, I'm very impressed by the iPhone SDK. It builds on the strong foundation of OS X, while integrating with the multi-touch and mobile capabilities of the iPhone. You can tell a great deal of work went into preserving the Mac experience on a device lacking in memory & computing horsepower."
The Internet being the Internet, I shouldn't have been surprised to see my post quoted in an article by Alexander Wolfe of InformationWeek entitled "iPhone SDK Developers Angry at Apple's Tight Control." A few points of clarification:
  • I'm not angry at Apple or the SDK. Thrilled, actually. I can't wait to release native applications for the iPhone and iPod touch.
  • Access to calendar appointments & media would be nice, and I hope it's added in a future version. (As Fraser Speirs notes, this is the beta SDK.) After perusing the technical docs, I thought it was a noticable omission and worth pointing out. It probably wasn't worth the "glaring" adjective, but I surely wasn't suggesting Apple keeps all the good stuff to itself.
  • Access to the phone & SMS functionality would be great, but is problematic from a security/carrier standpoint. I made that point in my post, and Wolfe included it. I was actually impressed to hear Steve Jobs say that a 3rd party VOIP app would be allowed over WiFi.
Creating a developer platform and ecosystem is hard, especially when you throw in security constraints and the conflicting interests of the mobile phone market. Apple had to make trade-offs, and I think they made the right ones, but it's worthwhile to document and discuss them. In my opinion, the most interesting restriction is that 3rd party applications can't register themselves as the default providers for URLs that conflict with Apple applications (like Safari or Mail). I can see the reasoning: malicious applications would love to hijack all HREF-handling, but there's a legitimate business case as well (e.g. Opera or Thunderbird). These trade-offs should be discussed, and I was hoping to do so with some nuance. But then again, this is the Internet...

Now, back to happily writing code with the iPhone SDK...

Labels: , , , ,

Visiting Aspen: A Trip Through the iPhone SDK

Saturday, March 08, 2008

The real iPhone SDK has arrived. While I enjoyed developing iPhone web apps (and have another one in the works), software developers like myself were waiting for something beefier, and Apple delivered a heifer. The previous web-only "human interface guidelines" weighed in at a measy 54 pages. The new guidelines are double that size, and serve as an addendum to the 200 page iPhone OS Programming Guide. I've been plowing through the docs and tools to learn about the new SDK and v1.2 of the iPhone software, codenamed Aspen. It's been a fun trip.

The Good
Apple delivered an architecture familiar to any OS X developer: Objective-C, Cocoa, and lots of Core* frameworks. Built on top of a Mach kernel, the iPhone OS contains all the basics like threading, networking, and file-system access. The gaming industry will be happy with support for OpenGL ES (embedded systems), 3D audio, and access to the accelerometer. For business software developers, the exciting technologies are SQLite (a lightweight, embedded database that is taking over the world) and XML parsing via libXML2 and libxslt.

But in my mind, the real All-Stars of the SDK are:
  • Full access to multi-touch events via the Cocoa touch framework
  • Location-based services (triangulation and bonjour)
  • System-wide access to address book contacts and photo albums
These features show off the power of a mobile device, while providing consistent, unified services to make it a mobile platform.

The Bad
The biggest letdown is that Apple didn't expand this mobile platform far enough. While the shared address book contacts and photo albums are great, there are a few glaring things that developers can't access:
  • appointments from the Calendar app
  • music or videos from the iPod app
  • phone or SMS functionality
Calendar integration seems like a no-brainer. There should be a way to schedule and share appointments between applications. iPod media support is probably restricted due to DRM issues. The iPhone supports video and audio playback, but only from remote servers or local files within the app's sandbox. Phone and SMS restrictions are likely due to the carriers & security concerns. Phone calls can be initiated via "tel:" links, but this is the same, limited action currently available to web pages: the phone app launches and prompts the user to confirm the call. There's no way to integrate with voicemail, access call history, or initiate a text message. Given the potential for abuse, this is probably a wise restriction. However, when Apple brags that 3rd party developers use the same tools and access the same APIs as engineers in Cupertino, this is only partially true. Indy developers writing the next great Weather app are on a level playing field, but there's no way to design the next great iPod interface* or replace the telephony apps.

For an entirely different reason, there's no way to compete with Apple's iPhone Mail app. Applications can register custom URLs to launch their application. For example, my Flickr viewing app could register "flickr". If a user clicked on the URL "flickr:user123" from another app, my Flickr app would launch and display photos from user123. According to the iPhone OS Programming Guide, URL conflicts between 3rd party apps are undefined: so if two apps register "flickr", there's no guarantee who wins. However, if a 3rd party application tries to register a URL identical to one defined by Apple (like "mail" or "tel"), the Apple-provided application always wins. Here's hoping the rumors are right about Apple improving the Mail app, since there's no getting rid of it.

* Technically you could design a new iPod app with all the media enclosed in its sandbox, but without iTunes integration you'd be DOA.

The Controversial
The iPhone SDK's first big, public firestorm arose over AppStore and Apple's cut. Native iPhone applications can only be distributed by Apple, and they take 30% of the revenue for their efforts. I'm reserving judgment on this one: when John Siracusa and John Carmack take opposing sides of an issue, I'll wait on the sidelines to see how it plays out.

However, my immediate concern with AppStore is not with the 30% cut, but with the iPhone Developer Program. In order to deploy and test an application on an iPhone, you have to become a member of the iPhone Developer Program and pay $99. Like the thousands of developers hammering the ADC site on Thursday, I signed up for the program and gladly offered to pay. But alas, I just got a message thanking me for my application and promising to get back to me in the future. The fine print says the program "will initially be available to a limited number of developers in the U.S. and will expand to other countries in the coming months." Until my membership gets approved, I can only test my iPhone applications via the software emulator, not on my actual iPhone. I'm sure they're deluged with applications and I don't mind waiting in line with everyone else, but I hope it gets processed in weeks, not months. Please Apple, take my money! (They're usually so good at that...)

As we get closer to the official SDK launch in June, it will be interesting to see how long it takes from developer submission to AppStore appearance. What will the screening and approval process be like? When Microsoft started the XBox Arcade service, they were deluged with ideas and submissions from independent developers. It took them months to work through the backlog, with the bigger companies usually getting preferred treatment. I anticipate a similar deluge from indy iPhone developers, and I hope Apple has the resources to handle it when June rolls around. If not, expect another round of controversy

The Apple Polish
Setting aside these concerns, I'm very impressed by the iPhone SDK. It builds on the strong foundation of OS X, while integrating with the multi-touch and mobile capabilities of the iPhone. You can tell a great deal of work went into preserving the Mac experience on a device lacking in memory & computing horsepower.

My favorite nugget is that developers can include an application launch image in their distribution. Quoting from the programming guide, this image "should closely resemble the application’s initial user interface; the system displays the launch image before an application is ready to display its user interface, giving the impression of a quick launch." Even when it's computationally impossible, Apple found a way to make apps feel snappy.

Labels: , , , ,

Don't Buy a Mac This Weekend

Thursday, October 04, 2007
Leopard, the next version of Mac OS X, is scheduled to be released this month - but, Apple hasn't formally announced a release date yet. This might seem unimportant, except that the announcement date has traditionally been the start date for the Mac OS Up-To-Date Program. This program lets you get a copy of the new OS for a small shipping/handling fee ($10-$20) on any new Mac purchases before the actual OS release date. If you buy a new Mac before the announcement (like this weekend), you get to pay full price for the upgrade.

Looking back at history...
Panther (10.3): Announced: Wednesday October 8, 2003 / Released: Friday October 24, 2003 @ 8:00pm
Up-To-Date: $19.95 for purchases after October 8

Tiger (10.4): Announced: Tuesday April 12, 2005 / Released: Friday April 29, 2005 @ 6:00pm
Up-To-Date: $9.95 for purchases after April 12

So looking forward, my prediction is:
Leopard (10.5): Announced: Tuesday, October 9, 2007 / Released: Friday, October 26, 2007 @ 6:00pm
Up-To-Date: $9.95 for purchases after October 9 (link not active yet - but it will be!)

And while we're having fun... : )
Tabby (10.6): Announced: Tuesday, April 5, 2010 / Released: Friday, April 23, 2010 @ 6:00pm
Up-To-Date: $29.95 for purchases after April 5 (my in-house economist says rampant inflation is coming...)

And while we're on the topic of Leopard, I am looking forward to the new features in Objective-C 2.0: garbage collection, properties, and x-ray debugging.

(Updated 10/4/07: forgot that Puma was 10.1's codename. Changed 10.6 to Tabby...)
(Updated 10/10/07: no announcement yet - looks like my prediction was off. Next Tuesday, perhaps? Keep an eye on the Apple PR RSS feed.)

Labels: ,

Blog - Apps - About Adam


© Copyright 2007, Adam Houghton
Developed in Durham, NC