QA | 9 September 2012
We take a look at the rapidly changing world of mobile computing, and how Google’s Android operating system is tackling the challenges of developing for constantly evolving platforms.
Those of you who reside on another planet might have missed the largest change to the IT industry since the release of the IBM PC - mobile computing.
There are parallels with the mid-1980s. Early versions of PC-DOS were dire, and so were the first few versions of Android. There are lots of differences though; there is a solid, mature operating system at the heart of Android - Linux, whereas an even older BSD UNIX is the stable base of iOS and OSX, the Apple operating systems.
The fight between UNIX-Linux-Windows is an old one and is continuing in the mobile market today, although the products are very different from the originals.
Comparing the approach of each supplier is interesting. Apple does not license its software to anyone, and is the sole supplier of hardware. This means they have complete control over everything from manufacture through marketing, sales and support, and even the programming language used for applications (ObjectiveC). Software suppliers only have to test on a small range of hardware, and are closely controlled.
Google, who produce Android, have taken the Open Source route. Linux, and other Open Source software, has long been a favourite of device manufacturers. Why? Because they are free to modify it to run effectively on their own devices. Software components like telephony are usually proprietary and can be plugged into a modified Linux. Most of Android is Open Source, and this enables even start-ups to be involved and encourages innovation. The range of Android devices is huge, some software testers have a stash of over 400 devices on which to test their code, and that will have to expand with TVs and games consoles using Android more and more.
Android application development mostly uses Java. Google have avoided issues with Oracle (who now own Java) by using their own runtime environment. Anyone can produce applications for Android, on any subject, including some distinctly dodgy ones.
Unusually, Microsoft occupies a middle ground. They are closely allied with Nokia, which Google described as "two turkeys don't make an eagle", yet many other manufacturers have licenses to produce Windows phones, including Samsung, the largest. Whether the Windows 8 interface will appeal or not remains to be seen, but no one should underestimate Microsoft. They only have about 3% of the mobile market right now, but this is an incredibly fast moving world. Microsoft has several advantages: its user interface is familiar to most people for a start. There have been mixed reviews of the UI for Windows 8, but can anyone remember a Windows Beta release that has been any different? Not everything that Microsoft touches turns to gold, remember Vista, and their Windows CE attempts "also ran".
Microsoft Office dominates corporate office applications, yet none of the "compatibles" on Android are close. That might change, there is certainly an opportunity for Adobe there, but in the short term Microsoft Office could be the killer app. Personally I have doubts whether that monolith will perform well on mobile devices, but we shall see. Hardware is getting more powerful day-by-day, with quad-cores on mobiles being the norm for high-end devices.
The position of .Net as a development environment is interesting, in that it will run on all three operating systems using a layer called Mono. This makes cross-platform development a possibility, and its performance compares favourably with Java, even on Android.
I have been working with Ian Wallington on producing an Android course "Developing Android Applications" (QAANDDEV), and we have been struck by how fast changing the environment is. We have been in IT a long time and have worked in many environments between us, but the Android world takes some beating for the rate of change. There is at least one new version of Android each year - that is not so different to iOS, but that is not the only variable. Because development environments and tools come from different suppliers they are not co-ordinated with the Android release - changes and new products come at an astonishing rate. Devices we bought at the start of this project six months ago are now uncool and out-of-date. During the course development I had to scrap a chapter and start again because the development environment changed. Ian has been trying to decipher the latest development techniques when there is little (accurate) documentation. I have found books from usually reliable publishers to be out-of-date, even those published a few months ago, and full of bugs.
This dynamic environment shows no sign of slowing, the odd patent law-suite will just speed innovation to get around it. We had better get used to it. In my view (and remember that I'm biased) 20th century monolithic cultures like Apple and Microsoft will not be able to keep-up with this rate of change. Google embraces the culture and is a true 21st century company, combining corporate muscle with community effort. Our aim is to keep at the forefront of this pace so we can help our clients exploit the benefits, regardless of which platform they decide on.