Back in 2008, I wrote an article that compared the Apple iOS version 2.1 OS (as implemented on the Apple iPhone 3GS) to the Windows Mobile 6.1 OS. In the world of computing -- especially mobile computing -- four years might as well be a decade (or more). Since that review, both platforms have evolved significantly, with new hardware, software, features . . . and challenges.

In this review, I want to highlight the strengths and weaknesses of the most recent iterations of these two platforms: iOS 5.1, running on the iPhone 4, and Windows Phone 7.5, running on the HTC Mozart. Each OS runs on other hardware, too. But to keep things simple, I'm going to leave the hardware out of it and focus on the user experience and software. I'm also leaving out Research in Motion (RIM) BlackBerry and Android devices: BlackBerry because its email experience has been static for years and Android because its fragmented nature means that making blanket statements about stability, behavior, or functionality is difficult without qualifying statements about the specific device and patch level.

Account Setup

What a difference four years makes. Both Windows Phone and iOS fully support the Microsoft Exchange Autodiscover protocol, so all you need to do is type in an email address and correct password. The device should then be able to connect to the Exchange server and fetch all the needed information to communicate with that server. However, on iOS, you must enter both the email address and the username that's associated with that address. On Windows Phone, you need to enter only the email address and password, as you would on the desktop version of Microsoft Outlook.

On either platform, if Autodiscover fails for some reason, you're prompted to provide the server name and Windows domain. Neither OS provides especially useful error messages by default. There doesn't seem to be an equivalent to the detailed logging that's available in desktop versions of Outlook on iOS; on Windows Phone devices, you can enable logging. On both device families, though, you can turn on logging through the Outlook Web App (OWA) Options page, which provides a mail message containing the logged Exchange ActiveSync (EAS) data. If you run into Autodiscover problems with either device family, your best bet is probably to use the Microsoft Remote Connectivity Analyzer for Exchange Server to troubleshoot the problem.

Basic Email Functionality

Both iOS and Windows Phone provide a good email experience. With push email enabled (something almost all users have), email shows up automatically in the inbox. In my experience, synchronization problems are rare on both platforms.

The look of the respective mail applications is quite different. Figure 1 shows my inbox on both clients. The Metro design language on Windows Phone calls for a lot of white space and large text labels. The Windows Phone mail app follows this design language faithfully, whereas the iOS mail app looks pretty much like every other list-based iOS app.

 Figure 1: Windows Phone (Left) and iOS (Right) Inboxes
Figure 1: Windows Phone (Left) and iOS (Right) Inboxes

Within an individual account, both platforms use the long-established list view for displaying messages. On Windows Phone, you swipe horizontally to change mailbox views -- all, unread, flagged, and urgent messages can be displayed separately. iOS includes a default view labeled All Inboxes; this view does exactly what the name indicates, lumping email from all accounts (e.g., Exchange accounts, IMAP, POP, Gmail) into a single view. The Windows Phone client requires you to perform a one-time manual process to link inboxes; any unlinked inbox remains accessible through its own Live Tile. Live Tiles are animated, continually updated mini-windows on the Windows Phone start screen. Live Tiles present selected information, and the email Live Tile shows you how many unread messages have arrived in the associated email account since the last time you opened that account. (This isn't the same as the number of unread messages in that account.)

Inbox linking in Windows Phone isn't easily discoverable, but it's a welcome feature. Linking simplifies the process of separating accounts so that personal or sensitive mail is displayed only when you want it to be. To link inboxes, open any inbox and tap the Settings icon (i.e., the ellipses icon on the far right of the icon bar). Then tap the Linked Inboxes command, which lets you pick the inboxes that you want to link. Any account that you add to the linked inbox disappears as a separate inbox, but you can bring it back by unlinking it. Here's a quick video tutorial showing how to link inboxes:

Both platforms support conversation threading, providing an inline indicator that a conversation exists. On iOS, the number of messages in the thread is shown on the right, whereas on Windows Phone, the message preview is indented and the number of messages is shown in place of the second line of the preview. Tapping the conversation on an iOS device brings up a list of the messages; tapping the conversation on Windows Phone expands the conversation in the message list, much as OWA 2010 does.

Individual messages are displayed differently on each OS, as you might expect. Figure 2 shows a side-by-side comparison of a complex HTML message displayed in the respective clients. In this case, the iOS device (an iPhone 4) benefits from a higher screen resolution. But the bigger difference is that the iOS email client tries to fit HTML messages to the display width. Windows Phone does not do so. The practical effect of this behavior is that some messages look better on one device, whereas other messages look better on the other device. In general, I prefer the iOS appearance, which takes advantage of the native device resolution. Your preference will probably depend on the mix of HTML-formatted messages that you receive.

Figure 2: Viewing an HTML Message
Figure 2: Viewing an HTML Message 

On Windows Phone, the message includes the sender's photo, if that photo is available in the Global Address List (GAL), the sender's contact record, or Facebook. The sender's name is displayed in large text -- much larger, in fact, than the message text itself (see Figure 3). This can be disconcerting, and many users complain that it's a waste of space, but it isn't configurable so you'll need to live with it. By contrast, the iOS message header lacks the sender's picture, and the message title is shown in the navigation bar at the top of the screen.

 Figure 3: Display of Senders Name
Figure 3: Display of Sender's Name

On a side note, the Windows Phone mail application doesn't use the system accent colors that you define. Most items are either black or white, depending on whether you've chosen a light or dark accent scheme. The Windows Phone team explains this (correctly, in my estimation) by pointing out that it's nearly impossible to ensure readable results when the user's accent-color selection is combined with the huge range of images and colors that are possible in HTML email.

After the message is open on Windows Phone, the hardware Back button returns you to the message list. From there, horizontally oriented arrows let you move to the next or previous message. While you're looking at a message, one-tap controls let you delete the message, and you can tap an icon to forward, reply, or reply-all to the message. The common operation of replying requires two taps. Windows Phone uses the Settings (ellipsis) icon as a catch-all for additional settings that don't fit in the navigation bar. In this case, the More button allows you to toggle a message's flag state, mark the message as unread, or move the message.

The iOS mail app uses the standard iOS navigation metaphor, with a control in the upper-left corner of the screen that allows you to backtrack to the previous navigation level. When a message is displayed, you can use single-tap commands to delete or move the message, compose a new message, or resynchronize the mailbox. Another icon gives you a pop-up that you can use to reply, forward, reply-all, or print the message. I'd like to see the resynchronization icon removed, given that it isn't really needed in the individual message context.

Both clients provide effective controls for triaging messages. On the iOS mail app, a horizontal swipe causes a pop-up Delete button that you can use to delete an individual message directly from the list. You can also click the Edit button, which switches the list into a mode that lets you tag individual messages and then delete, move, flag, or toggle the read/unread status in bulk. On Windows Phone, you can tap and hold an individual message to get a pop-up that lets you flag, delete, move, or change the unread status of the message. Tapping along the left edge of the screen displays a check box next to each message so that you can select a group of messages to delete, move, flag, or unflag, or on which to toggle the read/unread status.

Apple was justly criticized for the poor offline behavior of the mail app in prior versions of iOS. In iOS 5, happily, offline operation works just fine. The same is true of Windows Phone 7, which is to be expected given that it's a Microsoft product and thus should have a flawless EAS implementation.

Both clients allow you to search messages by specifying a text string. On iOS, a search field at the top of the message list accepts your search terms; Windows Phone has a separate icon that you must tap. The iOS search feature lets you search the To, From, or Subject field separately from the entire message, whereas Windows Phone searches all message headers and bodies for the terms that you specify. Thankfully, both clients can perform server-side searches by using the Exchange content index, so finding old messages (provided that they aren't in your Personal Archive) is straightforward.

Calendaring

Both iOS and Windows Phone offer basic calendaring functions: You can create meetings and appointments, send invitations, and accept or decline meeting requests that you receive. When you create a new event, you can choose which calendar you want it to appear on. By default, adding a new Exchange account adds a corresponding calendar that draws contents from that account's Calendar folder (and no, there's no way in either client to access public folder calendars). You can't copy or move events between calendars.

When you create a meeting, iOS offers basic recurrence options: daily, weekly, biweekly, monthly, and yearly. Windows Phone offers daily, weekday, day-of-week (e.g., every Saturday), day-of-month (e.g., the 25th of every month), and yearly recurrence. Both platforms seem to handle exceptions to recurring meetings properly most of the time. However, recurrence exceptions are one of the most difficult client-side calendaring features to implement, so subtle bugs probably still lurk on both sides.

The iOS client doesn't handle meeting invitations as well as desktop Outlook or OWA. You can't counterpropose a new time for an invitation, and after you respond to an invitation, you can't change your acceptance. iOS offers no way to reply with comments when you accept or decline an invitation. One not-so-subtle iOS bug: Sometimes, after you accept or decline an invitation, it remains in your pending invitations view. No matter how many times you accept, reject, or mark it as tentative, the invitation stubbornly refuses to leave -- until it spontaneously disappears or until you remove and recreate your Exchange sync partnership. On the other hand, Windows Phone can do all those things: You can propose a new time and reply, reply all, or forward an invite, or you can flag it for future action. Both clients can display an incoming invitation in its target location on the calendar so that you can see where it fits in, although the Windows Phone display is less cluttered and somewhat easier to read.

Speaking of calendar displays, iOS has agenda (or list), day, and month views, whereas Windows Phone has those plus a separate to-do view (more on that view in a moment). The Windows Phone month view is useful because when the device is in landscape mode you can actually see enough of the month's calendar to make decisions. The iOS month view shows basic free/busy information in portrait view, but in landscape view it switches to something similar to Outlook's work-week view.

Tasks and Notes

The iPhone finally includes a built-in tasks and to-do application called Reminders, which syncs with Exchange servers. In fact, you can have multiple sets of tasks, one for each synchronized Exchange account. One nifty iOS feature that's sadly absent from Reminders when you sync with Exchange is the ability to create reminders that fire based on arriving at or leaving a location. You can set a reminder to fire, for example when you leave work, but only when you sync Reminders with Apple's iCloud service.

Windows Phone synchronizes tasks with Exchange and displays them in the calendar but doesn't have an included application to create or manage them. This is fine if you typically manage tasks from the desktop and just want to be able to see them (and mark them as complete) while mobile, but most users who depend on task tracking will end up acquiring a third-party app, such as Viperal Tasks, to provide this functionality.

Do people still use notes in Outlook and synchronize them with Exchange? Not that I can tell, but I suppose someone must. If you want local note-taking with server synchronization, don't depend on either of these OSs. Instead, use Microsoft OneNote or Evernote. Both products provide robust native applications for iOS and Windows Phone, along with web access, and both mobile clients are free.

Policy Control and Security

Neither iOS nor Windows Phone completely supports EAS policies. In fact, the two clients are roughly at parity. They both support password length and strength policies and remote wipe, but that's about it. Exchange 2010 allows you to start synchronizing EAS devices immediately if you have an Internet-facing client access server.

A default EAS policy (called, cleverly enough, Default) controls the sync settings for all devices until you create additional policies (see Figure 4).

Figure 4: Default EAS Policy
Figure 4: Default EAS Policy

For many sites, a single default policy is sufficient. But you might want to modify the Default EAS policy to control whether a password is required. The simple way to do this is to open the Exchange Control Panel, switch to the Manage My Organization page, select Phone & Voice on the right-hand side, and then choose the ActiveSync Device Policy icon. Select the Default policy, and then click the Details button. The password policy controls are in the Device Security group (see Figure 5). Set these controls according to your needs. After you save the policy, the devices retrieve and apply it as part of their normal synchronization behavior.

Figure 5: Password Policy Controls
Figure 5: Password Policy Controls

With the explosion of interest in Bring Your Own Device (BYOD) mobile provisioning, enterprises that use Exchange will continue to press for full EAS policy support. Microsoft is focusing Windows Phone on consumer features, adding enterprise features as resources permit. Apple is taking the opposite tack; having been incredibly successful in the consumer market, it is steadily, incrementally adding enterprise features. We'll need to see which approach -- if either -- results in making better policy support available for companies who need it for BYOD.

What's Missing?

There are many Exchange features that neither client implements. For example, neither client allows you to set or change your out-of-office status. Neither supports the Ignore Conversation feature of Exchange 2010, neither provides access to Exchange search folders, and there's no special support for Unified Messaging voicemail messages. This presents an interesting opportunity for both Apple and Microsoft, each of which is free to pick the features that it thinks will make its email client of greatest interest to customers.

Mobile devices today are the stuff of science fiction: small, powerful pocket devices with high-resolution screens, high-bandwidth communications, and all sorts of nifty capabilities. Both iOS 5 and Windows Phone 7.5 fit into this narrative, and both provide a solid mobile email experience. The two platforms are close to feature and performance parity in this regard, so your preference will be dictated largely by your feelings towards Apple and Microsoft, your requirements for device form factor, and the ecosystem of applications and accessories.