Apple iPhone 2.0 Software Preview

On Thursday, March 6, 2008, Apple CEO Steve Jobs hosted a special event at the Apple Town Hall on Apple's Cupertino campus, where he and two other company executives detailed plans for iPhone 2.0, an upcoming iPhone software update that dramatically enhances the value of a product that is already, quite frankly, pretty darn valuable. What Apple is doing with this update is both revolutionary and exciting. Though I wasn't invited to the event, I downloaded a copy of the video presentation and watched it on the plane ride home from Las Vegas, where I was attending Microsoft's MIX'08 show.

There's a lot going on here. First, a few general comments:

Who the heck are the people that Apple allows into these events? I followed the event live thanks to various live bloggers who were at the event. Most were absolutely horrible, alternating between childish and inaccurate. This was the first time I'd read live feeds from an Apple event, then later viewed the video, and realized I had come away with some misconceptions because of these guys. I need to find some adults who live blog from these events.

My decision to stick with the iPhone is looking like a good one. Dropping Windows Mobile and Verizon's vastly superior data network was tough. And I had reservations about the initial iPhone release, as described in detail in my iPhone review (which, if I can use a little Apple-style hyperbole, is easily the most trustworthy and accurate iPhone review anywhere). A few events from late last year quelled some of my concerns (see my review update), but the iPhone 2.0 announcement fixes almost all of the big issues. Put another way, a year after Apple first shipped the iPhone, customers will finally get the real iPhone. This is in keeping with Apple's strategy of shipping product releases early and then continually providing updates. What's unique is that this has never been done in the smart phone market before: Traditional phone makers are achingly slow updating their devices and software. Actually, let me restate that: Phone makers almost never update their phones. They want you to buy the next model.

OK, on to the event.

iPhone numbers

Steve Jobs loves to preface every talk he gives with a look back at how well everything is doing. To this end, he provided two specific data points around US smart phone market share, which I find highly debatable, and mobile browser usage, which I find believable. According to Jobs, Apple's iPhone accounts for 28 percent of the US smart phone market, second only to RIM, which makes the Blackberry. That Blackberry devices are routinely outsold by Windows Mobile-based devices was, as always, not discussed. (Maybe you'd have to look at worldwide sales.) Nor was the fact that Apple's 4 million iPhones sold so far is just a tiny drop in the bucket of the one billion cell phones sold overall. (Too, I'd point out that Apple loves to cite US market share figures for all its products, since it does much better in this market than it does elsewhere in the world.)

His second statistic, regarding US mobile browser usage, however, I find quite relevant, with the same caveat that it's skewed by being US-only. Here, the iPhone is already the number one device, with 71 percent of the market. (Pocket IE from Windows Mobile makes an appearance in second place, with 12 percent.) Go figure: The mobile Web experience on the iPhone is about 100 times better than that of a typical Windows Mobile device.

From here, Jobs passed off the presentation to two underlings. The last time he did this, I believe, was when he was recovering from his controversial cancer scare. (It was recently revealed that Jobs knew about the cancer over a year earlier than previously claimed but that he had tried a homeopathic cure, as he was unconvinced that modern medicine was the way to go.) This time around, Jobs' decision to step aside was not health related: Here, I think, he just doesn't have the technical chops to discuss the topic at hand. And that's fine: He's a CEO and a visionary, not a developer.

iPhone in the enterprise

While many had seen this past week's event as an "iPhone SDK" event, in reality, Apple described the massive changes it is supplying in the iPhone 2.0 software update. And the first of these changes regards enterprise support. Phil Schiller, Apple's senior vice president of worldwide product marketing, presented this portion of the discussion.

The affable Schiller explained that Apple has gotten a lot of requests from businesses interested in the iPhone. Unfortunately, to date, the iPhone has been woefully inadequate for this purpose. In fact, I don't believe the iPhone can even be called a smart phone until it gains support for Microsoft Exchange, the corporate standard for messaging and personal information management. Ultimately, the success of the iPhone hinges on business support: You can only go so far in this market selling only to individuals.

Schiller said that Apple was delivering on the top customer requests for the iPhone. These include push email, push calendaring, push contacts, global address list support, VPN support (Apple is specifically providing only Cisco IPSec VPN), certificates and identities (two-factor authentication), enterprise-class Wi-Fi (WPA 2 Enterprise, 802.1x), enforceable security policies (such as mandating the use of PINs on the iPhone), and centralized device configuration, and remote wipe (so that a stolen or lost iPhone can be wiped out over the air, removing any personal or corporate data on the device).

To the typical Apple fan, that list probably doesn't mean much. To those of us on the Windows IT side, however, it's all very familiar: Most of these capabilities (including remote wipe) are features of Microsoft Exchange Server, and Windows Mobile-based businesses have been enjoying these capabilities for years. Combining the innovation-heavy iPhone with the practicality of these enterprise standards is, I think, quite exciting. What Apple has done here, pretty much, is remove any deployment barriers. (I say "pretty much" because there are still questions about the tools enterprises will use to manage iPhones and deploy iPhone applications. I can assure you that iTunes isn't an option for most businesses.)

"Now they don't just say, hey, I'd like push email and push calendaring, they're much more specific than that, right?" Schiller said, in a moment that would have made Steve Jobs blanch. "What our customers have asked us to do is build Microsoft Exchange support right into the iPhone. We are working with Microsoft and we have licensed the ActiveSync protocol to build it directly into the iPhone, so the iPhone can work directly with corporate Exchange servers."

Explaining that while there is an "old way" of doing things like push email and calendaring, Apple is doing things the "new way." He implies, correctly, that RIM is doing things the "old way," and noted the reliability problems that are inherent to such a complex system. The so-called "new way" of doing things is really "Microsoft's way." That is, the simpler, less complex push technologies Apple is using for the iPhone have been available from Microsoft to users of Windows Mobile phones and other devices for quite some time. Kudos to Schiller, by the way, for giving credit to Microsoft for this: I certainly didn't get the impression that he did so from the live blogs I read on Thursday. That said, the graphic Schiller used is a bit disingenuous: Anyone could (and many do) license ActiveSync just like Apple did; Apple isn't the only one doing this, and it certainly isn't the first.

In any event, Apple's support for Exchange functionality appears to be pretty solid. They're leveraging Exchange features like push email, push calendar, push contacts, global address list, and remote wipe. Wisely, the company isn't building new applications to support this functionality. Instead, Apple is providing support for Exchange via the Mail, Calendar, and Phone/Contacts applications that have been available on the iPhone since day one. Each of these applications is solid, useful, and well-designed. And from Schiller's demo, it appears that Exchange integration will be as seamless as it should be.

Also, Apple should be given credit for simply building this functionality into every iPhone and not creating a separate corporate-oriented iPhone SKU with Exchange support. Such a product line bifurcation would be confusing and complex. (Heck, it's what Microsoft would have done.)

Schiller demonstrated Exchange functionality and it worked as expected, so I won't beat that to death: OTA push email, contacts, and calendaring, obviously, is excellent. You can add or change information on the device and have it sync back to the server automatically and instantly (or not so instantly on EDGE I suppose), and vice versa. Remote wipe, too, is huge: If an employee loses their iPhone, an admin can use Exchange Server to remote wipe it, over the air, erasing all of the private information on the device and resetting it so it can't be used normally.

I'll have to wait and see whether anyone comes up with any legitimate flaws to Apple's implementation here, and Schiller didn't really provide any details about the non-Exchange enterprise updates. But from what I can tell, they've turned the iPhone into a first-class, enterprise-ready, Exchange-compatible smart phone. The only question is whether Apple can handle the levels of support that these companies will require. To date, Apple hasn't really proven it can provide these kinds of services.

iPhone Software Development Kit (SDK)

Scott Forstall, the vice president of iPhone software at Apple, presented the iPhone SDK portion of the event, which was a bit more technical, by definition, than the enterprise bit. (Forstall comes off as a vaguely smarmy Jobs clone, similar to the many Bill Gates clones that infested Microsoft a decade ago.) In keeping with his role as Jobs Jr., however, he started off with a quick review of how the previous iPhone development model, the woefully inadequate Web apps, has done. Forstall said the program has been "incredibly successful," with over 1000 Web apps developed since last summer. The closest you're going to get to a groan at a partisan Apple event is absolute silence, and that's what Forstall got with that comment: Obviously, Web apps are not a first class development path for the iPhone. Indeed, the presence of the new SDK pretty much confirms that even Apple believes this too. That said, Forstall hinted that the iPhone 2.0 release would include some improvements to Web app development, but he didn't explain what those might be, perhaps wisely.

Moving along, Apple's native iPhone SDK appears to be far less locked down and controlled than most expected. Forstall said that the SDK includes the exact same tools and APIs that Apple uses in-house to develop their own iPhone applications. This is impressive, I suppose, though such a thing is common practice in other software markets. (Microsoft, for example, develops code with the tools it gives to third party developers as well, for example.)

Forstall described the APIs as "the platform," which is based on "the most advanced platform in the world, in the form of Mac OS X." (Ah, hyperbole.) Mac OS X is comprised of four architectural layers: Core OS, Core Services, Media, and Cocoa, the latter of which is the user interface application framework, sort of like Windows Presentation Foundation (WPF) on Windows. (Though, of course, Cocoa is "The. Best. Application Framework. Out there," according to Forstall.) The iPhone OS is built on the same basic layers: You get Core OS, Core Services, and Media, just like with Mac OS X, but the top layer is replaced by something called Cocoa Touch. That's because Cocoa is based around a mouse and keyboard interaction paradigm. (This belies the best application framework claim above, but whatever.)

Cocoa Touch is combination of the object oriented Cocoa framework and "everything [Apple] knew about creating a touch API for the iPhone." This suggests to me that Cocoa Touch is, in fact, a fairly recent development and that Apple did not, in fact, use these technologies when it create the original iPhone OS software. (Not that it matters, I suppose.) Anyway, Cocoa Touch is the user interface application framework for the iPhone.

Forstall then examined each of the iPhone OS architectural layers a bit more deeply. Core OS, for example, is the lowest level of the system, comprised of such things as the OS X kernel, sockets, security, power management, and the file system, among many others. The iPhone's kernel is identical to that of OS X: It is built from exactly the same source code, he said, but optimized in certain ways for the device. This alone makes the iPhone compelling from a technological standpoint: Until MinWin hits with Windows 7, it's hard to imagine anyone using the kernel from a desktop version of Windows to build a smart phone.

The Core Services layer includes such things as the Address Book, networking, file access, Core Location (pseudo-GPS location libraries), and threading, among others. Apple also uses the SQLite database API, which exists at this level in the system.

That Media services is one of four architectural layers in both Mac OS X and the iPhone says a lot about Apple's worldview: This is a company that is big on presentation. Media includes such things as Core Audio, OpenAL (multi-channel and positional audio API), video playback, image and PDF support, Core Animation, and even OpenGL ES (the embedded version of OpenGL). That at least two of these technologies, OpenAL and OpenGL ES, are clearly aimed at game makers is, I think, quite notable, as is the fact that most of the technologies listed here are hardware accelerated. This is a seriously impressive platform.

Cocoa Touch, obviously, is the most interesting of these layers, once you understand that everything else has come along basically unchanged from the Mac. This topmost architectural layer includes support for multi-touch events, multi-touch controls, the iPhone's accelerometer, view hierarchy, localization, alerts, Web View, People Picker, Image Picker, and the iPhone's camera.

The multi-touch events system handles everything from single finger interaction to multi-finger interaction and gestures, Forstall said. Web View is the "engine from Safari" (Apple's Web browser), rendered as a control that you can embed in your own applications. (An Apple ActiveX control, anyone?)

"It is the most advanced platform out there for mobile devices," Forstall said. "In fact, we think we're years ahead of any other platform for mobile devices. It is fantastic. We borrowed heavily from Mac OS X, so we started on the shoulders of a giant and we made it even better."

In addition to the APIs, Apple also introduced a comprehensive set of tools aimed at helping developers "build, debug, and optimize" their own iPhone applications. The first is XCode, Apple's Mac OS X-based development environment. Apple uses this tool to build Mac OS X as well as all of its own applications. Now, it's been enhanced to support iPhone development. "And now," Forstall said, "we use XCode to build all of our applications and operating system for the iPhone." Again, this suggests that wasn't always the case. (And again, it's not clear if that matters.)

Like Visual Studio on Windows, XCode is, at heart, a source code editor. It has IntelliSense-like code completion features that now understand the iPhone APIs, project management, a debugger, and source control management support. As with Microsoft's MSDN Library, XCode integrates with Apple's developer documentation so you can look up information about the iPhone SDK directly from within the XCode environment.

All this stuff is pretty common in integrated development environments these days, and if you're a Windows guy, you might not be too impressed so far. Fair enough. But Apple does provide one unique feature that, I think, puts iPhone development over the top. This is the remote debugger, which lets you plug an actual iPhone into your Mac, run your application live on the device, and debug it from the Mac. (Apple also provides a software-based iPhone emulator, which is how Windows Mobile development typically occurs on the Windows side.) (Correction: Apparently, remote debugging has been available on Windows Mobile for several years. --Paul)

For creating iPhone application user interfaces, Apple supplies another Mac OS X development tool called Interface Builder. Like the toolbox in Visual Studio or the Expression tools, Interface Builder basically provides a palette of UI widgets that you can drag and drop onto an iPhone-sized canvas in order to construct your UI. Because the iPhone comes in exactly one size, this model works well. On more complicated systems, such as the vector-based XAML UIs one might build on Windows, things get more complex. But the iPhone is a 480 x 320 fixed canvas. Simple can be good.

Apple is providing every iPhone UI control via Interface Builder. And, as you would expect, you simply tie event code to each control in order to create a usable application. Apple calls this "code connections," but it's a well established model for GUI development. There are also localization capabilities, though the difficulty of providing this support was glossed over.

Forstall described the next tool, Instruments, as Apple's comprehensive suite of performance analysis tools. (It is also another of Apple's Mac OS X development tools.) As with the remote debugger, it runs on the Mac while the application you're testing is running on a connected iPhone. It measures graphics and CPU performance, file system and memory usage, and other metrics, over time, so you can analyze how well the application is performing and then dive into any code that's causing problems.

Demonstrations of the environment ensued. There's not much to discuss here, but it does work as expected. (Scott, for the record, it's "Hello, world!" not "Hello World".) Some of the sample apps were pretty impressive, especially the space fighter game that uses the iPhone's accelerometer to good effect. I wouldn't take any of their statistics to heart, however: That Apple was able to create certain small apps in two days or two weeks won't mean much to you if you're not as savvy about Cocoa development as Apple is.

Indeed, that's a big potential issue. Apple's tools and APIs, good or bad, are unfamiliar to the vast majority of developers out there. This means that the small body of Mac developers will have a significant advantage over Windows developers and other programmers, at least for the short term. I don't fault Apple for using their own developer tools for the iPhone--the move is both logical and obvious--but it does mean that most budding iPhone developers will have to buy Macs and learn a new environment. This will be expensive and time consuming.

While much of the environment should be easily learnable, the real conceptual sticking point is that Apple's APIs are all written in Objective-C, a niche language that is enough like C++, Java, and C# to be understandable but different enough to cause real problems. Note that on the Windows side, Microsoft's more sophisticated managed code environment allows developers to choose the language of their choice. You don't get locked into a particular language, especially one that so few developers are familiar with.

In any event, Apple carted out a surprisingly diverse group of companies who had spent two weeks with the iPhone SDK. Gaming giant Electronic Arts showed off an iPhone version of its derivative Spore game which uses the iPhone accelerometer for motion. (Do you think the derivative comment is harsh? The first game I can recall playing like this was called "Shark! Shark! on the Intellivision in the early 1980's, but there's also an Xbox Live Arcade title called Feeding Frenzy that's very similar.) "That was two weeks of work," Forstall said, cackling. Right. That's also the biggest video game company on earth.

Other demos highlighted the diversity of the upcoming iPhone software ecosystem. These included a Salesforce.com sales automation application (yes, really), AOL AIM instant messaging, an Epocrates Drug Lookup application, SEGA's 3D game Super Monkey Ball ("the natural choice"). The "woo!" and applause at the end of these demos casts a sour light on the audience at these events, but whatever: The applications do look great. And the sheer variety of the partners was, yes, Microsoft-esque.

iPhone application distribution

Steve Jobs returned to the stage for the final part of the presentation. Here, he described Apple's plans for distributing third party iPhone applications to users. "You're a developer and your dream is to get your application in front of every iPhone user," he said. "That's not possible today. [Neither is creating iPhone applications, but let's just move on. --Paul] Most developers don't have those kinds of resources."

Apple is solving this problem for all developers, big and small, by creating a new iPhone application called the Apps Store: This is the (semi-) exclusive way that iPhone applications will be provided to customers (see below). An icon for this application will appear on the screen of every iPhone beginning with the release of iPhone software 2.0. (One wonders: Why not do this kind of thing for the Mac?)

The Apps Store looks and acts like the iTunes Wi-Fi Store, which makes sense as it, too, is hosted on the iTunes Store. You can find apps via sections such as Featured, Categories, and Top 10, or just search for them if you're looking for something particular. However, unlike the iTunes Wi-Fi Store, the Apps Store will work over both EDGE and Wi-Fi. (iTunes Wi-Fi Store is Wi-Fi only.)

On the desktop, Apple is also building a new section into its Mac- and PC-based iTunes Store for iPhone applications. From here, you can download applications to your PC and then "side load" them to the iPhone on device sync.

Apps Store is nice and all, but the killer feature here, really, is automatic updating. If a developer updates an application you've downloaded, the iPhone will automatically (or, "oto-matically" in Steve-speak) inform you of the update. Nice.

On the business side, Apple's terms are quite reasonable. Developers can sell iPhone applications for whatever price they feel is correct. Developers get 70 percent of all revenues generated from application sales, with no credit card, hosting, or marketing fees. Payments occur monthly. All that said, Jobs said he expected that most developers will simply provide their wares for free. (My guess, however, is that that won't be true of the EA's and SEGA's of the world.) There's no charge for free apps, to the user or the developer. This is all about growing the iPhone ecosystem as rapidly as possible.

There are limitations, of course: Apple will not allow developers to sell pornography, malicious software, other illegal applications, and so on. Fair enough. But this is the type of censorship a Microsoft could never get away with. It will be interesting to see if any questionable denials occur in the future.

But what about the enterprise? Corporations are not going to want to deliver their internal applications over Apple's iTunes infrastructure, out of fears that non-employees will somehow obtain them. In fact, they're not going to want to use iTunes at all. This wasn't mentioned during the event presentations, but in a later Q & A, not available in the video version of the event, the company said that it was working on a way for corporations to host their own iPhone applications. This is a big unknown right now.

Timing and availability

All of these new features will be delivered as part of what Apple calls the iPhone 2.0 software update. A beta release is available immediately, Apple says, but only to a select group of developers. In sharp contrast with the way it develops Mac OS X, Apple is seeking feedback from hundreds of companies as well, presumably those that are considering wide scale iPhone deployments. The final version will ship to the public in late June as a free software update for all iPhone users. That's phenomenal, and again, it plays to a key strength of the iPhone platform: Unlike other mobile platforms, Apple keeps the iPhone updated with new features on a regular basis.

As with previous iPhone software updates, this update will be made available for the iPod touch as well: Everything developers can make for the iPhone will work on the iPod touch as well. (This raises questions about how or if third party iPhone applications will be able to integrate with built-in iPhone applications like Phone.) Equally good, all the enterprise features added by iPhone 2.0 will work on the iPod touch as well. Jobs said that iPod touch users would have to pay a nominal fee for the upgrade, as they did for the 1.1.3 update (which was $20) for accounting reasons.

Those interested in becoming an iPhone developer can download the iPhone SDK for free. (Though, again, a Mac is required. Interestingly, an iPhone is not: You can run the simulator instead.) If you want to remote debug on an actual iPhone or sell your application through the App Store, you'll need to join the iPhone Developer Program. Jobs said the cost was just $99, a factoid that was met by applause, but companies that wish to join this program will pay more: Its $299 for businesses, something Jobs neglected to mention. (Still, it's a reasonable fee, assuming it's not a yearly cost.) (Update: It is a yearly fee.)

Also, it's worth noting that the venture capitalists at Kleiner Perkins Caufield & Byers (KPCB) are starting the iFund, a $100 million investment fund for entrepreneurs who'd like to take on the iPhone platform and "create the future." Citing Apple Fellow Alan Kay, who opined that the best way to predict the future is to invent it, KPCB partner John Doerrr said that the second best way to predict the future is to fund it. (This came after a pretty sickening Jobs suck-up that I will try to ignore.) So why is KPCB funding this? Doerr said that the iPhone was "a big deal, bigger than even the personal computer, echoing comments I made in my SuperSite blog the morning of this event. I'm guessing that Doerr will receive less criticism for his comments than I did. (Maybe $100 million would improve my standing in the Mac community.)

Final thoughts

Folks, iPhone 2.0 is blockbuster update, one that both legitimatizes the iPhone platform and validates my decision to treat the iPhone as a first-class concern on the SuperSite for Windows. I've gotten a number of emails from readers over the past year who wondered why a site with the word Windows in its title would cover Apple products at all, but I've always felt that Apple matters and that Windows users shouldn't be ignorant of other platforms. With the iPhone specifically, my belief is even stronger that this platform will be as relevant to Windows users, and thus to the wider computing world in general, as anything Microsoft is doing.

Think of it this way. If you look at how the technology industry is changing, some core segments emerge: Traditional desktop and server software (Windows, Office), so-called software + services solutions that bridge the gap between the desktop and the Internet cloud (Office Live, certain Windows Live services), cloud computing (Gmail, Google Calendar, much of Windows Live), and mobile computing (Windows Mobile, Tablet PCs). Here's the wake-up call: the iPhone touches on all four of these segments. And because most iPhone users are, by definition, Windows users, this is too important of a product to ignore. The iPhone is demonstrably more important than certain Microsoft products, including the Zune or Xbox 360, if only because it will affect a much wider audience. You can choose to ignore the iPhone at your own peril. I will not be making that mistake.