Inside Google's Android and Apple's iPhone OS as software markets
Apple's third party platform strategy
First, take a look at what is unique about Apple's mobile software store. Importantly, it builds upon experience and previous successes. Well before it even launched the iPhone, Apple began selling iPod game software on a small scale to work out the kinks in packaging and delivering mobile software securely in a way that avoids casual theft. Apple also perfected micropayments for music and video in iTunes, paving the way for a high volume, low cost mobile software store. Apple also built on its decade of progress in developing Mac OS X as a desktop platform, so it was able to release development tools that were both mature and familiar to a large number of coders. The iPhone's hardware also clearly evolved under the influence of lessons learned during the development of the iPod.
No smartphone vendor is building upon a success similar to the iPod and iTunes, and certainly not Google, which has never before even sold consumer hardware nor the software to power it. Google's Android business plan is firmly in the beta stage of development. In contrast, Apple's "preexisting conditions" allowed it to deliver the iPhone to a primed audience with all the parts in place to enable lush growth in software. Considerable thought had backed up every element of Apple's strategy. Very little was left open to experimentation, even if Apple executives still expressed surprise in the amount and type of interest the store received. The iPhone was building upon a combination of iPod 6.0 and iTunes 7, not a fledgling new beta concept.
Additionally, the company carefully staged the iPhone's deployment to only deliver what it could reasonably achieve. Apple shipped the iPhone for a full year before launching its SDK and store, building up an installed user base of about 5 million users. Once it opened the store, it could unleash a flood of new software and new buyers, creating a tidal wave of positive coverage. The company then continued to rigidly follow its own strategic plans, largely ignoring pundit demands that it do things differently.
As important as what Apple did was what it did not do. The company didn't announce all of its future plans in advance, didn't attempt to instantly achieve feature parity with existing smartphone platforms at launch, and didn't allow third parties to set expectations or minimum standards for its own platform's software titles. Instead, the company frequently surprised users with positive news of new features, deflected comparisons by focusing on the platform's strengths, and carefully guarded how its App Store library developed. That involved taking heat from critics who fumed about yet unknown details, staying silent as pundits assailed the iPhone in specific niches (first in software, then in push messaging, then in hardware peripheral support), and acting out a role as the bad cop in policing app titles while bloggers turned themselves inside out about app rejections and store rules.
In retrospect, the company clearly made the right decisions. Rather than getting bogged down in efforts to explain its strategy, Apple kept its new store perpetually in the headlines with a series of status announcements timed to drop at regular intervals. Instead of desperately trying to defend comparisons of the iPhone platform to Windows Mobile in features or Symbian in reach, Apple focused on the unique value it was adding and its ease of use. And rather than ceding control of the App Store to third party developers, Apple maintained control over its development to avoid allowing the store to develop a reputation of being crass or seedy or sloppy or unfinished or full of nagware.
Third party platform management styles
While Apple was (and still is) roundly criticized for exerting too much control over its App Store, the flip side is that there are no real malware problems and, despite a lot of shovelware, there's lots of quality apps to pick from at reasonable prices. Still, the company has maintained a conservative stance that has frustrated developers who want the platform to move more quickly. Apple initially held back trivial titles and fart apps, hoping to establish a serious streak of software; that restriction has since been relaxed. Similarly, restrictions on mature content have been loosened following the company's unveiling of new ratings support in iPhone 3.0 that enabled parents to set management controls on their children's App Store access.
Apple is still busy hammering out policy in the App Store, and developers are still finding reasons to be annoyed with the company. Rogue Amoeba recently threw up its hands in frustrated disgust after Apple's app approval system flagged its Airfoil app as inappropriately using the company's own trademark icons and graphics, despite the fact that Airfoil was using these in an appropriate way that happens to be supported by Apple on its desktop Mac platform.
The company's task of setting reasonable rules to manage the influx of tens of thousands of new iPhone apps is frequently challenged and critiqued, but nobody in the industry is doing a better job. On one hand, Microsoft is seeking to exert even more control over its own third party mobile software store, asking its developers to pay fees for every app submitted to the Windows Mobile Marketplace and angering developers by denying apps repeatedly, charging new fees each time an app is rejected. This has resulted in stagnation of the Windows Mobile Marketplace, the absolutely wrong thing to do just as sales of Windows Mobile phones to users plummet. By the time the store becomes viable despite Microsoft's crippling rules and micromanagement, there won't be any customers left.
At the other extreme, Google enforces much less control over content or presentation for apps listed in Android Market. While Google reserves the right to block unauthorized distribution of its proprietary Android apps, it doesn't mandate that apps have to look great or have to follow any strict guidelines, and there's doesn't seem to be any sort of restriction on potential third party copyright issues, such as selling emulators designed to run other platform's video games.
This lack of restriction has resulted in clear difference between the apps available for Android and those for the iPhone. Android has become the tinkers' destination, not the place where developers go to make money. This has created a wide gulf between the slick, commercial offerings in the App Store and the experimental hobbyist offerings in Android Market.
Given Android's current installed base, Google can't really erect significant restrictions on software. Even without much management in place, Android's offerings are still pretty bare. The biggest problem for Google, however, is that once its market takes off, the latent problems of permissive platform management will grow into serious problems. Security, commercial legitimacy, and professional presentation are all factors Google seems to think will solve themselves. The history of Windows suggests otherwise.
Sloppy security policy: this all happened before
Unlike Apple, Google's business model is patterned after Windows Mobile, which itself is modeled after the desktop Windows. Microsoft has never exerted much in the way of quality control over Windows developers of any kind. On the PC, this has resulted in a platform that has a legacy of reaching backward to accommodate poorly written third party software. A significant reason why Windows hasn't been able to keep up with the pace of Mac OS X development over the last decade has been that Microsoft faced much more pressure to cater to third parties. Without decisive efforts by its vendor to move things forward, the Windows PC platform has repeatedly stagnated.
One example is Windows Vista's efforts to push the adoption of modern desktop operating system features such as an advanced compositing graphics engine like Mac OS X's Quartz. Vista's new changes resulted in reduced performance and compatibility problems with existing software that initially helped impede its adoption among users, which prevented third parties from leveraging the new features, which prevented users from gaining new reasons to try it. Balancing new features against legacy compatibility has long been a difficult issue for Windows, and promises to be critical problem affecting Android as well. Apple faces this too, but the degree of control it exerts over its platform helps to manage such issues before they can affect users.
Another problem endemic to Windows has been security. The platform's ubiquity, combined with Microsoft's initial naivety about security practices, resulted in a new low in expectations being set for PC users. Users accept security exploits as an inescapable eventuality, are conditioned to install and maintain background antivirus software from third parties, and have no reason to trust downloaded software. Software has always been exploitable; the new problem Windows introduced was a complete lack of any intuitive understanding about how users could protect themselves.
Rogue apps can install themselves for reinstallation in the Windows Registry after being cleaned away, and can hide invisibly in the background. On other operating systems, notably Mac OS X, users are simply more aware of when potentially dangerous things are happening because they must authenticate software installations and are warned about the source of software they attempt to run. The application firewall can encrypt and sign apps to prevent them from being modified without the user's knowledge.
On the iPhone, security has been ratcheted upwards another notch with all software being only available through a trusted source, co-signed by the developer and Apple as trusted parties. If an app goes rogue, Apple can pull it from the store and potentially shut it down remotely by revoking the developer's certificate. Apps can't install in the background and do things the user is unaware of after the app has been quit. Under Android, none of these practices have been applied. Google is running its mobile platform with the same mentality of Microsoft in the mid 90s: anything goes for now and we'll sort of the issues in the future sometime.
Google allows developer to "self-sign apps," which is worthless because anyone can sign their own malicious app. Android developers can also deliver their own apps from any source, so Google has no way to stop the sale of malicious code or to remotely deactivate apps that have gone rogue, such as malware with a time bomb payload or equipped with a viral propagation method. And just like Windows PC apps, Android programs can continue to run in the background and do virtually anything without users even being aware they are running. It took Windows several years before its malware potential blossomed into a full blown global network of spambots and regular virus eruptions causing billions of dollars of damage annually. No problems for Android today does not mean that serious issues will not develop along with Android's installed base.
For Windows on the desktop, Microsoft seemed to think it could simply stuff all this back into the box with some security software patches, but despite concentrated and expensive efforts throughout this decade, it has not been able to stop the widespread problems of viruses and worms on its desktop platform. And while experts like to focus attention on the sophisticated efforts Microsoft has devised to enhance security in Windows Vista/7, the majority of viruses and malware don't need some special operating system access to cause damage. The famous exploits that have targeted the Windows platform to create widespread damage, from Melissa to ILoveYou to MyDoom and Storm, have almost all been user-mode software that tricks the user into starting it and then makes itself very difficult to stop or eradicate. Fancy security features are all worthless in the face of such plain risks.
Apple addressed these security issues head-on in its iPhone software platform, while Google has simply suggested that they won't ever appear, and if they do, that there will be some easy way to clean things up. Microsoft has already spend tens of billions of dollars proving that this is simply not true.
Interestingly, Google's Chrome OS takes a stronger position in security, relegating all "apps" to run in sandboxes within the browser, and simply disallowing alternative apps. This model is much closer to the iPhone's, which similarly sandboxes apps. While Chrome OS simply distrusts all web apps it runs, the iPhone OS accords limited trust based on encrypted signatures. Android currently does neither, although it will likely move more toward the Chrome OS, although that's another year away. Google doesn't have another year to work out a basic security model for Android.
Open to exploitation
Android also shares other problems of Windows and Windows Mobile. One relates to the APIs available to developers. Microsoft is trying to get its mobile developers to migrate toward .NET (the Windows analog of Cocoa), but most Windows Mobile software is still built using the same old familiar Win32 APIs (somewhat comparable to Carbon/Classic on the Mac) that developers have been churning out for the PC desktop since the 90s.
In contrast, Apple created the iPhone to use only one new modern API: its mobile-optimized flavor of Cocoa. It simply gave developers no option to string along Carbon, Java, Flash, or other old API alternatives for building any new mobile applications. The iPhone has one API that every developer uses, creating familiarity and unity in how apps are created in the relatively small community of iPhone development. This makes it easier for Apple to support its developers, advance its platform, and keep control over where the platform is headed. Unlike the Mac, Apple doesn't have to try to accommodate Adobe's terrible version of Flash, for example, which results in most of the system problems desktop Mac users face on a daily basis.
Google introduced Android as a modified Java platform. It's now in the process of rolling out a native SDK for accessing the core OS. This means developers will have two official APIs from Google to weigh for advantages and disadvantages. Additionally, Google is supporting the development of runtimes to host Flash apps and Mono/.NET applications. This will enable Android to "run more code" at the expense of anyone needing to develop software expressly for Android. Why not write generic Flash games that can also be sold to users on BlackBerry, Symbian, and Windows Mobile phones? Why not target .NET instead of the Android SDK and develop software for two platforms? Why not just write Java applets and ignore the native SDK? There's a lot of options on Android.
Google seems to have forgotten the history of Sun's partnership with Microsoft, which was portrayed as a way to get Java on Windows, and instead became a way to tie Java to Windows exclusively, killing it everywhere else. When partnering with rivals, you have to make sure they aren't simply using your resources to do what they want to do. Google hasn't yet been victimized, as its naively simple approach to platform openness demonstrates.
If any company has learned tough lessons about the consequences of allowing third parties and rival vendors to hijack or destroy one's platform, it's Apple. In the last 30 years, it has fended off companies trying to clone the Apple II and the Macintosh, watched as Microsoft hijacked its own Mac apps to create Windows, and ineffectually chased after Sun's Java buzzword. But in the last decade, Apple has figured things out. You don't give away your platform if you expect it to remain around as a viable contender. You don't allow third parties to put you out of business, and you don't funnel your success toward rivals, unless you're in the business of giving away technology for free and closing up shop.
Google's permissive openness to everything betrays a great deal of naivety in its attempts to develop Android as something more than just another mobile alternative. This is because Google isn't serious about building a platform it controls; Google was only out to thwart the success of Windows Mobile in order to ensure that Microsoft wouldn't block its ads and search aspirations on mobile devices. If Android kills Windows Mobile and still fails on its own, Google still accomplishes its goal, and the company will happily continue supporting its Google apps on the iPhone, BlackBerry, Symbian, WebOS, and wherever else it can without direct competition for ads and paid search (as Apple, RIM, Symbian, and Palm are not in the ad and paid search business).
In contrast, if the iPhone were to fail as a platform, Apple would be completely out of the smartphone game. This is why Apple is fighting relentlessly to manage the future of its platform, while Google is simply keeping Android around as a hobby to see if it works out. This makes Android a lot like Apple TV; if that product fails for Apple, it can simply give up and begin licensing iTunes playback on the Wii and PlayStation 3 and Xbox and third party TVs. Apple doesn't live and die on Apple TV revenues, and doesn't really even make any money from its sales, so the thing is a hobby that gets just enough attention from the company to exist. Just like Google's Android.
How have these policies affected the real world software offerings in the App Store and Android Market? The following page outlines how the two stores compare.
On page 3 of 3: Third party apps: iPhone vs Android