Daniel Eran Dilger
Random header image... Refresh for more!

Windows Phone 7 introduces app version issues in Mango update

Daniel Eran Dilger

In its first significant update, Microsoft’s Windows Phone 7 platform is introducing a new layer of app version complexity for developers and users that offers a glimpse of how both it and Windows 8 will differ from Apple’s existing iOS and Mac App Stores.
Windows Phone “Mango” 7.5 introduces new features for Microsoft’s smartphone platform, but developers won’t be able to simply offer an update to their apps to take advantage what’s new in the same model that Apple’s iOS app developers have over the past four versions of Apple’s mobile OS.

Instead, Microsoft asks developers to distribute two different versions of their apps: the existing 7.0 version for existing phones, and a second 7.5 version for new phones and devices that can install the update once it becomes available through mobile carriers. Developers are encouraged to upload a 7.5 version by the end of October.

“Knowing that on average people update their apps every three to four months,” the Windows Phone Developer Blog states, “this October timeframe provides assurance that you that you can submit 7.5 apps today and still have access to your 7.0 app well before the next update is required.”

Once a 7.5 version app is published in the App Hub market, developers won’t be able to fix bugs or add features to their existing 7.0 version. However, existing phone users also won’t be able to run the new 7.5 version, as each major build of Windows Phone is tied to a matching app version. The WP7 market will display a list of app types for the users to select between, and users upgrading to 7.5 Mango will get updates telling them to download the new version of each app as it becomes available.

Under iOS, while Apple encourages developers to quickly support new features in the latest version of iOS soon after it is released, the newest versions of those apps can continue to run on existing phones that haven’t yet updated to the latest iOS; iOS developers simply target multiple OS releases when they build their apps, and the resulting package can run, not just on multiple versions of iOS, but also across different devices from the iPhone to the larger screen of the iPad.

Most of Apple’s iOS users also update their apps far more often than “every three to four months,” thanks to the design of the iOS App Store, which encourages frequent app updates by making the deployment and installation of apps simple for both developers and end users.

Apple’s Universal Binaries

Apple has long allowed developers to package together different code types in Universal Binaries, greatly simplifying the distribution of apps and installation issues for users. On Mac OS X, Apple used Universal Binaries to allow developers to deliver both PowerPC and Intel code in the same “app,” freeing users from having to sort out which app they’d need to install on the type of hardware they had.

A similarly smooth transition was enabled by Universal Binaries in the move from 32-bit to 64-bit Intel apps. Windows users haven’t been so lucky. Taking full advantage of a 64-bit PC requires installing a separate 64-bit edition of Windows and requires the installation of 64-bit apps.

On a Mac, a single hard drive partition can boot a 32-bit system or a 64-bit system, and Universal Binary apps will automatically take advantage of 64-bit features if they exist in hardware. Similarly, a single iOS app can run on iOS 3, iOS 4 or iOS 5, and can also adapt to running on a iPhone or take full advantage of iPad features, if the developer chooses to add an iPad optimized binary to the package.

This design has enabled developers to rapidly distribute apps that “just work” on whatever device they’re copied to via the App Store. The basis for iOS and Mac OS X’s Universal Binaries stems from a combination of NeXT’s platform agnostic design as well as the fat binary technology that Apple devised to allow developers to smoothly migrate from the Macintosh’s original 68k processor to PowerPC in the early 90s, affording users a comfortable period of backwards compatibility.

Understand your WP7 device

Microsoft expects users to select the correct app version for their device, noting that the only angle it seeks to improve for developers in the near future is to eventually allow them to keep updating both their 7.0 and 7.5 edition apps in parallel within the WP7 store.

The lack of support for Universal Binaries on WP7 is not surprising, because the desktop version of Windows has also never managed different types of executables for users automatically. Even when Microsoft supported multiple CPU types under Windows NT in the late 90s, users still had to obtain the correct binary type for their hardware.

In many cases, this extra layer of complication and effort prevented developers from making their apps available on different CPU types, with even Microsoft opting not to support alternative Windows NT CPU editions in its own Office or Exchange Server software.

The lack of an “app package” architecture in Windows also means Microsoft has also never offered the same simple install features Mac users are familiar with, instead choosing to construct a Start Menu of procedurally installed apps that carries forward the Program Manager functionality of Windows 3.0. Windows 8 carries forward the Start Menu, redesigned with streamlined options and a Metro touch-centric look and feel. Apps will still need to be installed and uninstalled, however.

Apple recommends that developers use its simple drag and drop installation where app packages are simply copied to the Applications fodder, or the new Mac App Store model where purchased apps are copied automatically and also appear in Mac OS X Lion’s new Launch Pad screen, similar to the iOS home page. Similarly, there’s no work required to install apps on iOS devices. Users just select the app they want and the App Store makes it available, with no device type or OS version matching required.

Similar app fragmentation for Windows 8

Windows 8 carries forward the existing Windows 7 model of installing desktop apps through an install process involving the Registry, where each app must be paired to the CPU and 32/64-bit architecture of the hardware.

However, its new Metro runtime packages apps that can run on multiple architectures, because like a web page being rendered in a browser, they don’t necessarily need to provide CPU native functionality. This will require developers to rebuild their apps from scratch to take advantage of Metro, something even Microsoft is still uncertain about doing for its own Office suite.

Meanwhile, the desktop apps users expect to run on Windows, ranging from Photoshop to Word to iTunes to Firefox, will still need to be delivered in a series of specific executable types, ranging from today’s 32 or 64-bit Intel apps to the potential of new ARM desktop apps that only run on tablets or other highly mobile devices.

Because these new ARM apps will only run on Windows 8 hardware that doesn’t yet exist on the market, developers will likely take a wait and see approach before doing the work to port their apps, whether as ARM desktop apps or as full Metro-style apps. This will create a catch-22 problem for new buyers of Windows 8 tablets.

Similar wait and see problems existed for WP7 smartphone users and app developers, and the same issue dogged the development of Zune games, which similarly never materialized despite the potential for such a market given Microsoft’s Xbox 360 presence and shared XNA development tools.

  • http://lineoftheday.com schwabsauce

    If iPhone and iPad versions are packaged together in a single binary, couldn’t that significantly affect the size of the file (in some cases)? Is this the situation for the foreseeable future?

  • Desperate-Dan

    I love that you’re back on Microsoft’s case Dan. Their slide into insignificance would appear to have (temporarily) stopped and they’re back on the radar. For some (wrong) reason I’ve never quite been able to see Google as the bad boy, that special place has always been reserved for MS and it’s great to see them back in the crosshairs.

    The funny thing is that although Microsoft deserves every bit of hate that comes their way for their terrible bullying business practices that ran good companies out of business, and more or less lead to a lost decade of technological advancement, I now feel a wee bit sorry for them. They’re like a once great boxer who now gets bounced about the ring or an ageing beauty who now has to throw herself at the scruffy ones for a bit of attention. They’re yesterday’s men in many regards and will probably just fade into irrelevance over the next decade or so.

    Google however, now they’re really scary, most people just don’t know it yet…

  • OneGeV

    @Desperate-Dan: “once great boxer”? A poor fit with your previous sentence. I was thinking a great sports star that everyone suspected was abusing steroids, was caught with a houseload of the stuff, and then only given a slap on the wrist by the sports commissioner. This sports star claims he never really needed the juice, but is now half the previous size, and still cashing the big long term contract from before the scandal.

    I would only feel guilty about schadenfreude if MS started acting like a better company. As long as they are still using the same tricks, no pity.

  • http://bit.ly/e6BO7B GamePlayInc

    I keep thinking of this:
    As long as Microsoft is run by Balmer it is on the way down.

  • spuy767

    @Desperate-Dan: You really couldn’t see google as the bad guy? Well, maybe bad guy is the wrong term, perhaps hypocrite, or cry baby? Every facet of Google’s behavior in the smartphone/tablet arena has been either disingenuous, or downright evil, to use Google’s own supposed mantra. Sure, companies sell tons of Android phones. When all I hear are carrier advertisements offering BOGO or free phone deals to walk out of a store with an Android shitpile, it’s no surprise that Android’s unit numbers are high in the smartphone arena. Kentucky Grilled Chicken sold well too when they gave it away.

    The basic premise of Google’s business model for Android is evil. They sell your personal information to give away a mobile OS to give the illusion of high market share numbers. Not really on point, but something I’d like to point out, is that in markets where there is no one to eat the cost of manufacturing the device, no one will touch Android with a ten foot stick. Android is floundering in the tablet market.

    Each new promised version is the one that will cause android tablets to rise from the ashes like a Phoenix, but of course, Chocolate Cocoa Puffs, or whatever the hell asinine code-name they’ve chosen to give it, won’t be compatible with your tablet because they’ve moved the goalposts again, and the manufacturer of your tablet bailed on the endeavor entirely and won’t release any sort of firmware update.

    And, quite to my surprise, Google has been unable to cajole anyone into manufacturing an iPod competitor based on Android, the only ostensible reason for which would be to give a boost to the Stillborn Android Market. Crow all you want to about the sheer number of shovelware apps, but Android users generally fall into two categories: Those who got an Android phone because the guy at the Verizon store foisted it upon them when what they really wanted was a feature phone, and they’ll never open the web browser, let alone download an application, and then there are the Android evangelists who simply don’t pay for apps.

    Forgive me for marginalizing the group of people who aren’t geeks and will download apps from the Android Market only to discover that the app doesn’t work with their phone, or is a sham, but doesn’t realize it within the fifteen minute window, probably because they called tech support and the guy in Calcutta for whom they were on hold for a half an hour was unable to help them by reading customer service script.

  • hi.wreck

    Perhaps the correct name for WP7.5 should be “Mangled”, not “Mango”. Does this also mean that the home screen is some hideous color of orange?