Mobile OSes
This summer, Apple, Google and Microsoft announced updates to their mobile operating systems: iOS 6, Jelly Bean (Android 4.1), Windows 8 and Windows Phone 8. All of the operating systems are at different stages of maturity, which is reflected in their unique mixes of competitive and innovative features.

iOS 6

iOS 6, which spans iPhone, iPad and iPod touch devices, includes 200 new features, some of which will once again redefine user experience. It will power the iPhone 5 and the iPad Mini, and be available as a software update to iPhone 3GS, iPhone 4, iPhone 4S, iPod touch 4th generation, iPad 2 and iPad 3. Not all features will be available in all countries, all languages or for all devices. The official launch is rumored to be Sept. 12.

Backward compatibility. No huge issues here, iOS developers say. “iOS has always had a good way of handling backward-compatibility issues. You can create weak links to the libraries that don’t exist on older platforms,” said Dave Lane, director of developers at Metova. “So if you’re using the iPhone 3 and you download an app that relies on iOS 6 features, developers can hide the features that are not supported.”

Maps. Apple’s own map engine has replaced Google Maps, and its functionality has been extended with the help of third parties, including Tom-Tom, Waze and others. The vector engine enables crisp graphics and smooth zooming. The showstopper is a Flyover feature that delivers realistic, interactive, 3D from-the-air views of major metro areas. Maps also provides turn-by-turn navigation with help from Siri, as well as traffic maps that can calculate estimated time of arrival. The local search capabilities allow users to find businesses, check their Yelp ratings and reviews, and access deals and photos. Third-party routing apps are displayed as options.

Siri. Siri now understands nine languages, works in 15 countries, and is available on the iPad 3 and the iPhone 4S. It can tell users the latest sports scores or movie showtimes, as well as make reservations, post Facebook updates, tweet, or open an app. Unfortunately, there is no API developers can use to take advantage of it.

iOS 6

Passbook. Passbook stores loyalty cards, boarding passes, tickets, coupons and reservation confirmations. It also has an alert capability that can notify a user of a flight delay or gate change, for example. Using Pass Kit APIs, developers can allow users to access passes from their apps. Credit card and alternative payments such as PayPal are not yet included. Lane thinks Passbook could be very valuable to retailers with a local presence who want to take advantage of foot traffic.

Facebook integration. iOS 5 introduced Twitter integration. iOS 6 integrates Facebook with Contacts and Calendar, Maps, Photos, Safari, Shared Photo Streams via iCloud, and Passbook. Developers who integrate Facebook into their apps can allow users to post status updates and photos while using the apps. Facebook is also integrated with iTunes and the App Store, which Lane considers a big plus for developers, virally speaking, since ratings will appear on Facebook pages. “Having Facebook and Twitter integrated just simplifies social integration for all our apps,” he said.

Multiplayer gaming. The Game Center now allows developers to enable multiplayer game capabilities, including leaderboards, across iOS and OS X apps.

Reminders integration. Using the Event Kit framework, developers can create and modify reminders, assign due dates and priorities, and set location and time-based alarms. Their apps can also access and share to-do lists in the Reminders app.

Advanced camera features.
iOS 6 includes new APIs for controlling focus and exposure, among other things. Face-detection APIs and hardware-enabled video stabilization are also included.

In-app purchasing. In-app purchasing is great news for developers because it can increase conversions and sales. Rather than being sent to the App Store for a purchase, users can now purchase content or apps from within apps. In-app purchasing also makes for more effective cross-selling and upselling.

Safari on iOS 6. Using the Web Audio API, Web developers can create audio for interactive Web applications, use advanced color and pixel effects, and upload videos and images from the Photo Library.

Jelly Bean

Jelly Bean is taking user experience to a new level with performance improvements and usability enhancements. Developers can take advantage of new capabilities and APIs in ways that make their apps more innovative, and to create new types of apps. According to Marko Gargenta, founder and chief Android expert at Marakana, there are no compatibility issues Android developers need to worry about, although they should be aware of the new APIs.

Performance improvements. The performance improvements are immediately obvious to developers and end users. A consistent frame rate, more consistent rendering, and less latency help deliver the most responsive user experience yet. In addition to synchronizing touch with vsync timing, Jelly Bean anticipates where a user’s finger will be at the time of refresh. If a user has been inactive, it will apply a CPU input boost to the next touch event to minimize delay. Vsync has been expanded across the Android framework, giving developers finer-grain control over the timing of animations.

“The new smoother graphics is the biggest engineering innovation. For the most part it’s transparent, so developers don’t have to do anything different,” said Gargenta. “Users will have a better experience because there is less flickering and delay.”

Improved accessibility. Developers are getting more control while disabled users are getting a better user experience. The new accessibility APIs enable developers to build accessibility services and to link tutorials with the Accessibility settings, so it is easier for users to configure and use the services. Apps using standard View components automatically inherit support for the new accessibility features. Apps using custom Views can use new accessibility node APIs to define the parts of the View that are relevant to the accessibility services.

Jelly BeanExtended language support. Android 4.1 supports left-to-right and right-to-left scripts, as well as characters from Arabic, Japanese and more. It also supports 27 international key maps that users can choose from when connecting a keyboard.

Expandable notifications. Developers can send app-related alerts to users using the notification bar outside of the app’s normal UI using text or visual content up to 256 density-independent pixels. Users have the option of resizing the notifications with a pinch or a swipe. Developers can specify up to three response actions.

Resizable App Widgets. App Widgets automatically resize based on where the user has placed them, the size to which the user expands them, and the amount of room available on the home screen. Using the new App Widget APIs, developers can optimize App Widget content so that it corresponds to the size of the widgets as they change. Gargenta said that resizing is in line with supporting multiple form factors so a single app can support a mobile device or a big-screen TV.

Input enhancements. Apps can register to be notified when new input devices are attached physically or wirelessly. Apps can also query the device manager about the devices attached and the capabilities of each, as well as make use of any vibrator service associated with the attached input device.

“Android used to be a platform for mobile phones, but we’re seeing it move into different devices, from cars to home information systems. So having the ability to easily change the input devices helps that goal,” Gargenta said.

New connectivity types. Android Beam (an NFC technology) now leverages Bluetooth for data transfer so users can more easily share content. Now, users can simply tap two Android devices together to share content and apps. Similarly, Bluetooth devices can now be connected simply by tapping them with an Android device, which eliminates the need for searching and syncing.

“Enabling NFC and Bluetooth allows more devices to interoperate within the home,” said Gargenta. “Not everything has NFC capabilities; there are more devices that are Bluetooth-compatible.”

Jelly Bean also added support for multicast DNS-based service directories to enable apps to find and connect to other Wi-Fi-enabled devices, including mobile devices, printers, cameras and media players. Developers can use the service-discovery API to develop cross-platform and multiplayer games, or to add features that leverage Wi-Fi peer-to-peer (P2P) connections.

Wi-Fi Direct service discovery has also been expanded. Ice Cream Sandwich enabled apps to discover and pair directly over a high-bandwidth P2P connection. Jelly Bean adds support for pre-associated service-discovery so apps can determine what services a device supports before they connect to it. Developers have the freedom of limiting device discovery to only certain device types, such as cameras. They can also create apps that allow users to share content using a direct P2P connection rather than mobile bandwidth.

New media features. Jelly Bean provides low-level access to platform hardware and software codecs. Apps can query the system to discover what low-level media codecs are available on the device and then use them as necessary. DRM support is included. USB audio output has been added for hardware providers building accessories for Android devices. Jelly Bean also supports multichannel audio on devices that have an HDMI port, and adds built-in support for encoding/decoding AAC 5.1 audio.

“For a long time, Google has been focusing on end users and developers, not hardware manufacturers,” said Gargenta. “They’re basically making it easier for OEMs to customize Android so they can develop something new and different.”

Developers can now apply preprocessing effects such as noise suppression, echo cancellation, and automatic gain control to apps that require high-quality audio. The MediaPlayer supports audio stream chaining so audio files can be played back-to-back without pauses. There are also new media router APIs that developers can use to specify where media is played.

Android browser and WebView enhanced. Jelly Bean provides video play and pause capabilities, as well as a smoother transition from inline mode to full-screen mode. Rendering speed has been improved and memory usage has been reduced to enable better scrolling and zooming performance. Other improvements have been made to HTML5/CSS3/Canvas animation and text input. The JavaScript Engine (V8) has also been updated for better performance. There is also support for the updated HTML5 Media Capture specification.

New services. New services include Google Cloud Messaging (GCM), app encryption, and smart app updates. GCM allows developers to send short message data to users without a proprietary sync solution. It handles all the details of queuing messages and delivering them efficiently to up to 1,000 targeted Android devices with a single request. The messages can include up to 4KB of data.

Starting with Jelly Bean, Google Play will encrypt all paid apps with a device-specific key before they are delivered and stored on a device to help protect application assets. Google Play now reduces update overhead by about two-thirds by delivering only the changed portions of an app rather than the entire application file.

Windows 8

The Windows 8 Metro UI, designed for touch interfaces, is the most disruptive UI redesign since Windows replaced DOS. Windows 8 has a desktop mode, but since this article is about mobility, most of those aspects are not included here.

Windows 8 was released to OEMs and manufacturers on August 1. The new devices and Microsoft’s own Surface tablet will be unveiled Oct. 26. Tablets are expected from several hardware manufacturers, including Acer, Asus, Dell, HP, Lenovo, Samsung, Sony and Toshiba.

Backward-compatible with Windows 7. Desktop applications developed for Windows 7 will run on Windows 8 machines in desktop mode without modification. And many of the code assets can be reused to develop Metro applications. Metro applications use Win RT APIs rather than Win32 or .NET APIs.

Common core with Windows Phone 8. Although Windows 8 and Windows Phone 8 are separate operating systems, they share a common core, so developers can share code between Windows 8 apps and Windows Phone 8 apps. The core consists of the Windows kernel and nine different API types, including networking and media.

Metro-style apps. Touch-enabled Metro-style apps focus the user’s attention on content that is reflected in text-based tiles, and live tiles that display live content feeds. Smooth animations and transitions can be created using app layout APIs and presentation controls. There is also a built-in animations library developers can use to build unique visual experiences. Flexbox (a CSS3 feature), along with the VariableSizedWrapGrid XAML control (which provides similar functionality), can be used to simplify UI layout and control.
Windows 8
Semantic Zoom. Large content collections can be navigated simply using Semantic Zoom, which allows users to pan or scroll through content, and then zoom in or zoom out to access more or less information.

App contracts. Using app contracts, developers can access the data stored or created by another app without having to use app-specific APIs. This allows end users to search for and share content between unrelated apps.

Cloud services. Developers can take advantage of cloud-based services that enable users to more easily store data and communicate with each other using the Live SDK.

Windows Store. The Windows Store supports free and paid apps, and counter to some rumors, line-of-business apps do not have to go through the Windows Store. The Windows Store supports localized, market-specific catalogs for customers in 26 markets from which developers can choose to place their apps, as well as market-specific payment providers. In a recent blog post, Deepak Mukunthu, a program Manager on Microsoft’s Developer Analytics team, described some of the app reports in the Windows Store dashboard that developers can use to improve app quality and to better align the app with market desires. App metrics include downloads, revenue, aggregate usage, in-app transactions, customer ratings, market trends, and app reliability.

Microsoft also has a Windows App Certification Kit developers can run before submitting an app to the Windows Store that helps determine whether the app will likely pass technical certification.

Use existing skills. Windows 8 can be built by developers with HTML5, CSS3 and JavaScript skills as well as developers who have XAML, C#, C++ and Visual Basic skills.

Multiple inputs. Although Windows 8 is optimized for touch, it also supports mouse and keyboard input. Pointer APIs have been provided that allow developers to take advantage of any input method without knowing the origin of the input data. There are also higher-level gesture APIs that can be used to predefine touch gestures and detect multi-touch events in apps. Developers also have the option of creating custom touch gestures or using input-specific APIs to create unique app experiences.

Multi-sensor support. The Windows 8 sensor platform can be used for desktop and Metro-style app development. Support is provided for accelerometers, inclinometers, gyrometers, compasses, ambient light, orientation, and geolocation (with the user’s permission).

Internet Explorer 10. The browser has been optimized for Windows 8 touch devices. Developers can use the same HTML5 markup to build interactive websites that support desktop and tablet experiences.

Windows 8 also takes advantage of DirectX graphics, so full-screen Metro style apps are smooth and persistent. Developers building graphic-intensive apps can use DirectX 11.1 to take full advantage of graphics hardware and to deliver new features such as stereoscopic 3D.

Windows Phone 8

Windows Phone 8 uses the Metro UI, which was first applied to Windows Phone 7, although the UI is more flexible than ever before. Windows Phone 8 device manufacturers announced so far include HTC, Huawei, Nokia and Samsung. HTC, Nokia and Samsung all built and sold Windows Phone 7 handsets; Huawei currently offers Android phones. The phones are expected some time in the fall, which observers imagine will align with the Windows 8 launch on Oct. 26.

Backward compatibility. Developers who have already built Windows Phone 7 and 7.5 apps can run those apps on Windows Phone 8 without having to make any changes to code. According to a blog post by Microsoft Group Product Manager Kevin Gallo, applications will be able to launch and run faster without modification. Microsoft plans to compile every existing Windows Phone app in the Windows Phone Marketplace in the cloud. Developers will not be required to resubmit their apps.

“Windows Phone 8 is designed to run all existing Windows Phone applications,” said a Microsoft spokesperson. “Developers can continue to build applications that run on both Windows Phone 7 and Windows Phone 8 devices, by compiling their applications for Windows Phone 7.”

New Windows Phone 8 apps will not be backward compatible for customers using a device running an older version of the OS. Since all Windows Phone 7.x applications will run on Windows Phone 8, and the new Windows Phone 8 tools will support Windows Phone 7.x development, developers who want to target both 7.x and 8.0 phones should build for 7.x, the spokesperson said.

Common core. Windows Phone 8 and Windows 8 share a common file system as well as common networking, security, media and browser technology, so Windows 8 apps and Windows Phone 8 apps can share code. In some cases it may be possible to simply reset the screen size, although that probably would not yield the best possible user experience. Similarly, hardware manufacturers can build one driver that runs on desktop PCs, tablets and smartphones.

“[D]evelopers will be able to leverage much of their work writing applications and games for one to deliver experiences for the other,” said a Microsoft spokesperson.

New start screen. Microsoft has added a palette of theme colors and three live tile sizes that can be adjusted dynamically so users can control and personalize the UI.

Multicore support. Windows Phone 8 includes multicore processor support to accommodate future handset designs.

Larger and HD screen support. Support is now included for 1280×768 and 1280×720 screen resolutions to accommodate high-definition 720p displays.

Wallet. The new digital wallet allows users to store credit cards, debit cards, coupons, boarding passes and more. Users who want to pay for products and services at compatible checkout counters must have a secure identity module card from their carriers.

Content storage and sharing. Windows Phone 8 supports MicroSD cards so users can store content and transfer it to their PCs. NFC support has been added so users can wirelessly transfer content from a Windows Phone 8 to another device that supports NFC. Alternatively, users can accept content from print media such as magazine ads, posters or business cards that use NFC tags. The technology can also be used for multiplayer games using P2P Wi-Fi.

IE10, Maps and Directions. Like Windows 8, Windows Phone 8 uses Internet Explorer 10. Microsoft teamed up with Nokia to provide detailed maps and turn-by-turn directions for many countries. Users can download maps, store them on their phones and then access them.

More international support. Windows 8 supports 50 languages; Windows Phone 7.5 supports 38. Users in 180 countries and regions can download apps, which compares to 63 for Windows Phone 7.5. (By comparison, Windows 8 will be available in 109 languages across 231 markets, according to Windows CMO and CFO Tami Reller.)

Wireless updates. Windows 7.5 and previous versions require users to update their phones via their PCs. Windows Phone 8 users can update their handsets wirelessly.

Windows 7.5 users will be able to update their phones with the Windows Phone 8 start screen, although they will not be able to get the Windows Phone 8 OS as an update. As of May, Microsoft required Windows Phone 7.5 to be installed to access Marketplace apps.

Native code support. Windows Phone 8 offers support for native C and C++. There is also a common Windows 8/Windows Phone 8 shared native API set that spans graphics, audio, media, file system, networking, media, commerce, base types and sensors.
Windows Phone 8
In-app sales. Developers will be able to take advantage of in-app sales capabilities so that they can sell virtual and digital goods from within their apps.

VoIP. Developers will be able to create VoIP apps that plug into Microsoft’s existing calling features so users can answer Internet calls like traditional phone calls.

Multitasking enhancements. Windows Phone 7.5 introduced multitasking capabilities. Windows Phone 8 adds VoIP and location-based services that run in the background so users can track their steps while interacting with another app, or read a text message while receiving a VoIP call, for example.

Expanded speech capabilities. Windows Phone 7 introduced voice-launched app capabilities. The Audible speech platform enables developers to speech-enable their Windows Phone 8 apps so that end users can control and interact with apps by using speech commands.

Windows Phone 8 includes a number of features IT departments are demanding, including device encryption, enhanced security, and remote app and phone management:

Device encryption. The entire device, including the OS and data files, can be encrypted to keep content and passwords safe.

Enhanced security. Windows Phone 8 supports the United Extensive Firmware Interface secure boot protocol and improved app sandboxing to protect the phone from malware.

Remote app and phone management. The tools are similar to what is available for Windows PCs.

Company hub and apps. Enterprises can take advantage of Windows Phone 8 hub (an app) that can be used to list and distribute employee apps and other critical business information. Line-of-business apps can also be deployed to enterprise devices via a website, SharePoint or e-mail, which opens up opportunities for the “appification” of the enterprise, as well as opportunities for third-party developers.