The Apple and Google brands dominate the modern digital communications landscape, between them seemingly shaping the future of mobile. Whilst they have shared a breathtaking run of success and growth, the two brands embody very different aspirations. Despite their success, they still have a lot to learn from Microsoft.
Apple – Supporting Safe Early Adopting through Corporate Paranoia
For the would-be early adopters of technology who want to be sure that their early adoption will be a smooth experience that will signal both a forward-looking attitude, and a personal commitment to uncompromising design values, the latest and greatest gadgets from Apple are a perennial must-have. For the technologically savvy, not afraid to experiment, get their hands dirty, look under the bonnet and get fully involved in their technology, whilst seeing the latest developments even before they have been polished, the restless and even reckless genius of Google is source of ultimate satisfaction.
In order to make the end-to-end user-experience safe for consumers who want to be isolated from what’s under the bonnet, Apple have sought to control every aspect of their eco-system. There is the Apple way and no other if you want to get on board their band wagon – at no point can the experience of a user be allowed to bring the design judgements of Apple into question. At times this attitude of safeguarding the user from themselves has backfired – I challenge anyone to tell me honestly that moving files to your iPhone using iTunes is not a nightmarish process when you switch computers or just want to put a track on from a computer other than the one you are paired with. I know that Apple will be addressing this soon, but it is a clear example of where Apple’s paranoia about controlling user behaviour is made tangible.
Google – Trust the Users, Accept Rough Edge
At the other end of the spectrum, Google’s app market place trusts to user feedback and ratings – no review process except by users. It is undeniable that the overall quality of apps on iTunes is well above that on the Android Market. From Google’s perspective, everything should be driven by users, informed by users, open to users to use or not use, ignore or engage with. You have to be a bit braver to engage, but you can keep on digging with Android, or indeed any of Google’s web services, and finding new joys, excitements and, sometimes, rough edges. Google trusts its users more, and puts faith in the increasing technological savvy of younger generations, along with their cost consciousness, to gain long-term advantage over Apple.
Releasing Apps – Apple’s Big Brother v. Google’s Wild West
These divergent brand aspirations extend beyond the end-user facing aspects of their respective offerings and are even clearer when releasing an app. Want to put out an iPhone app – you won’t be able to guess exactly when your app will come out of the review process, or even exactly happens whilst its being inspected. If a major marketing campaign is slated to coincide with the launch of your company’s new app, then you better leave plenty of time for review, and don’t give a firm date for your campaign until your app is approved – you may even find that it isn’t permitted at all. By contrast, releasing an Android app is instant – no questions asked. At the same time, it’s a good bet that most of the users you really want – high spending, early adopters – will have an iPhone or iPad, so this is not even a choice.
Developing with Apple – Apple’s Way or the Highway
When developing code for these respective platforms, the divergence is even clearer. Apple’s XCode development tool is idiosyncratically Apple, using a language that only Apple cult members could really love – Objective C. At the same time, once you’ve paid for your Apple developer account, which you need to release apps, the development tools are free, and cover every aspect you need covering for developing and testing – even if the process is a little painful.
Want to use Apple’s standard design patterns – that’s fine, you will find more than adequate support, though it involves some fairly logic-defying steps to get things done. Want to do things your own way, or even in a way that is commonly established for lots of other platforms – well, you can do it, but you will find yourself on your own, fighting their tool all the way. Want to use another tool – well, there are permissible alternatives, but none deliver the same access to underlying behaviours and performance compared with Apple’s own tool – in part because Apple doesn’t want to open the development of its ecosystem up to interlopers.
Whatever the problems with developing apps for the iPhone or iPad, there is one thing that makes the idiosyncrasies of Apple easy to swallow – you know what kind of device your developing for, what it’s capabilities are and how you are going to test your app to make sure it works properly on anything it’s going to be used on.
Developing with Android – Endless Possibilities, Endless Fragmentation
If you want to create apps for Android, there are a number of ways you can go, though the most standard is using the Eclipse IDE, which has been around quite a while as a java development tool. Unlike Apple’s XCode, in order to install the Android development tools, you require a number of downloads and a more involved set up. The fact that you create code for Android using a plugin for a tool not made by them speaks volumes about Google’s general approach – try to reuse the best of what’s already out there, add extra bits to make things easier, provide documentation and starting points and let everyone get on with it. Thankfully, Android is java based, which makes it easy for the majority of programmers – familiar with java or the very similar C# – to get stuck in.
The possibilities with Android are seemingly endless, there are no complete answers, but lots of starting points. The satisfaction of engaging in truly novel development is, however, tempered by the fact that you cannot be sure what kind of device you will be dealing with – screen resolution, memory, capabilities – vary massively. As has been acknowledged by many commentators, Android’s major problem is the fragmentation of the platform – so, you may test your app with a good many devices, but there is still the overarching, and realistic, worry that it won’t work on some device that is key to your target user market.
Indeed, fragmentation is the key phrase one would probably use for the whole Android experience – lots of different ways of doing things, lots of potential tools, lots of downloads to get you going, lots of reference sites and forums, lots of devices, formats and capabilities. No app can hope to work properly on every “Android” platform – and you may easily get caught out by phone features such as physical slide-out keyboards that require the phone to be used one way up rather than another.
Pining for Microsoft
In all honesty, I have no particular axe to grind here – there are many things that I like about developing for the iPhone / iPad, and there are many other things that I like about developing for Android. They are very distinct experiences with their own very well defined pro’s and con’s. However, the very fact that both have their clear drawbacks means that they have a long way to go in fully supporting their developer communities – regardless of what their fanatical partisan adherents would have you believe. Here, I think that both Apple and Google have a lot to learn from Microsoft, a company whose current, though likely temporary, absence as a significant figure in the mobile space is sorely missed by many developers.
Over the years, particularly while it’s dominance as the leader in software and technology was largely undisputed, Microsoft received much criticism over its behaviour. Over the course of court cases on the bundling of Internet Explorer on Windows, amongst many others, it demonstrated a certain ruthlessness in pursuit of corporate advantage. Nevertheless, Microsoft’s heartland was always its development community – which it looked after in a way that no other company has been able to.
Take, for example, the current version of Visual Studio, and in particular its new scripting language for the web – RAZOR. It is, quite simply, a breathtakingly elegant and simple approach to creating highly interactive web applications, one that keeps coding and obscure development processes to a minimum. Microsoft really know how to make a developer’s life simple – and C#, in my opinion, is probably the best general purpose programming language, or certainly the most carefully elaborated – with well-structure libraries and tools, as well as a very active open-source community.
Over the course of a bumpy track record, Microsoft have got their development tools and frameworks just right – which is why it is such a shame that Microsoft largely missed the boat in mobile, at least until their Nokia deal pays dividends. Moreover, when developing for the B2B market, where the expertise and experience of corporate ICT, security and compliance departments is key, I sense that a lot of mobile and tablet developments are being held back for fear of using anything other than the familiar Microsoft platforms.
Apple, Google and Microsoft – a lot to learn from each other
This does not mean that I want Microsoft to suddenly steal a march on Apple and Google, to become dominant in mobile as they once were, and still largely are, in the desktop market. Far from it – but I think some healthy competition from Microsoft will not only free up forward-looking technological development in the corporate market – but it will also make Apple and Google alike up their game in supporting their developers.
I live in the vain hope that Apple will take a leaf out of Microsoft’s book and start loving their developers a little bit more, that Google will take a bit more care over polishing and integrating their disparate services and support, and that Microsoft learn what makes mobile devices tick. All three have massive amounts to offer by way of advancing mobile and other technology for corporates and consumers alike. All three have their distinct style and flavour – personally, I don’t think any one is better, at least in a general sense, than any of the others – but all of them are needed.