I'm just back from Mobile World Congress in Barcelona - one of the largest tech conferences I have attended. I am not sure of the exact figures, but rumour says around 60,000 total attendance. It was buzzing too, with a sense of excitement as companies and platforms jostle for position.
So what is happening? Here are three thought-provoking trends.
In an otherwise rather flat keynote speech, Google's Eric Schmidt made reference to the fact that smartphones outsold PCs in the fourth quarter of 2010, according to figures from IDC:
100.9 million smartphones fourth quarter 2010
92.1 million PCs fourth quarter 2010
It depends how you spin it, of course: those figures for PC sales were actually the largest ever. That said, this is not just about raw sales figures. PCs are still essential to many of us, but mobile is where there is more innovation and energy.
I have a special interest in software development, and the simple message for developers is that you now need a mobile client story for most business or consumer applications.
In some cases the difference between a smartphone and a traditional notebook can almost disappear. I have blogged elsewhere about the Motorola Atrix, which lets you dock your smartphone into a notebook-like shell so you can use a keyboard and large screen. I do not think Motorola's design is quite there yet, as it features two distinct Linux shells with an uncomfortable disconnect between them, but it is close.

The vast Hall 8 at Mobile World Congress was the Android hall, including stands from HTC, LG, Motorola, Samsung, Sony Ericsson, and on the chipset site, Qualcomm, NVIDIA and Texas Instruments. However, the truth is that many of the other halls were dominated by Android as well:
Why Android? Android is a phenomena. It is what every operator wants and also what the consumer is looking for.
said George Guo, CEO of Alatel Onetouch, which has a fast-growing business led at the premium end by Android devices.
It was also significant that the System-on-Chip vendors were talking mainly about Android and their work in optimising for Google's operating system.
Here is a another simple message for developers. If your application does not work on Android, whether that is via an app or a web client, it will lack broad reach in the new world of mobile.
Clearly we must not forget Apple. It did not exhibit at Mobile World Congress, preferring events where it can run its own show, though its influence was widely visible. My impression though is that even Apple will struggle to compete with Android in terms of numbers, though it will likely continue to own the high end.
The big news of MWC was Nokia's alliance with Microsoft over Windows Phone. We will not know for a couple of years how this one plays out; but it was an act of desperation by the Finnish company, based on its failure to compete successfully Apple or Android with its existing line-up of Symbian smartphones, and lack of confidence in its forthcoming MeeGo devices.
What this means is that even if Nokia's big bet pays off, it no longer drives the mobile phone market in the way that Europeans have been used to. It has never done so in the USA, which is one of the reasons for the new alliance.
This also means a second chance for Microsoft's new phone operating system, which has struggled to find operators or manufacturers willing to put real energy behind it.
Nokia ran into plenty of opposition and scepticism at Mobile World Congress. Far from being aligned with that of Microsoft, Nokia's culture is opposed to it, and it is difficult to see any continuity between Symbian, MeeGo, and the Qt framework of the past, and the Windows Phone of the future.
Nevertheless, Nokia is still capable of putting Microsoft's phone on the map. The developer story is interesting, since Microsoft has done a great job of integrating Windows Phone development into Visual Studio, and viewed purely as a mobile development platform this is one of the most productive around, and ideal for extending those corporate apps already built with C#. The optimistic view is that Windows Phone has a strong future as Microsoft's platform migrates towards mobile and cloud.
The pessimistic view is that even Nokia's sponsorship will not disrupt Apple or Android.
It is a tough one to call.
I'm about to enrol in a 12-step program. I've yet to find an
Apple Anonymous club anywhere in my city, so I'm going to have to do it on my
own. As a self-declared lover of Apple products, it's going to be a tough habit
to break. My first step was to buy a Samsung Galaxy Tab instead of waiting for
an iPad 2. My second step will be to buy a Motorola Droid x2 for my next phone,
instead of an iPhone 5, when they ship.
Why am I turning my back on Apple? Because Apple effectively just turned its
back on me as a reader, and on publishers, as content partners. It just
announced its long-awaited publishing content policy, and essentially confirmed
what the world already knew.
Apple is telling publishers that they must provide an option for customers to
buy their content directly via iTunes, using a single-click in-app link.
Moreover, they must offer that content at the same price or cheaper than via
their own stores, and they are not allowed to provide links within Apple's applications to their own purchase mechanisms. The kicker: Apple takes a 30%
cut on all content sold through its stores.
This is not good for publishers of music and books, who must pay part of their
fees to the authors of the content they sell. Many will find it unfeasible to
sell their content via apps provided via Apple's iOS operating system. Many
music publishers will be forced out, and Rhapsody has already said that it will
not co-operate with the policy.
It is difficult to see how many publishers will be happy with this situation,
and suggests that firms like Amazon may follow Sony in reaching an impasse with
Apple when it comes to making new versions of their applications available for
the iPad and iPhone platforms.
Many customers won't see the significance of this. It is amazing just how much
a shiny, well designed device can blind users to political and economic
machinations. But the iPad, in particular, was designed as a device to consume
content. Will these draconian terms end up impeding the platform's popularity?
As the publishing sector fumes at Apple, Google beckons. It just launched One
Pass, its own subscription system for content distributors, which takes 10% cut
for content distribution instead of Apple's 30%.
This is unlikely to be the beginning of the end for Apple. Its marketing
powerhouse is too strong, and the ramifications of this move too opaque to
consumers, for it to do significant immediate damage. Nevertheless, it may be a
miscalculation, especially as Android gains market share and offers an
increasingly viable alternative platform for content distributors.
When an editor asked me for a screenshot of MonoTouch, which lets you use an open-source implementation of Microsoft's .NET Framework to target Apple's iPhone and iPad, I obtained it the best way I know, which is by installing it and trying it out.
It is something I have been meaning to try for a while. There is high demand for apps on Apple's iOS, and both the iPhone and the iPad are finding their way into businesses. As all those app requests arrive on developer desks, what is the best way to meet them? They cannot be ignored for ever.
I do not doubt the implication of Steve Jobs' essay, Thoughts on Flash, that, other things being equal, the best way to develop for iOS is with Objective C. Other things are never equal though; and for developers with a ton of existing .NET Framework applications along with skills in C# the possibility of creating iOS apps in a familiar language and framework is compelling. There may even be some code that could be ported.
Monotouch is a commercial product, though you can get started for free, with the main limitation being that you can only deploy to the iPhone emulator.
Installation is not difficult, though there are a couple of big dependencies: Apple's iPhone SDK, and the full desktop version of Mono for OSX. You probably also want MonoDevelop OS X, the Mono IDE. Oh yes, and a Mac of course. Then I got started. The New Solution dialog presents a choice of several iOS project types: 
I picked a Windows-based project. MonoDevelop created the project, and I could even compile and run it in the emulator, though it displayed nothing but a beautiful white space.
So far, so familiar for a Windows developer, especially as MonoDevelop feels like a cut-down Visual Studio; but double-click MainWindow.xib in the solution and you are in the alien land of Apple's Interface Builder. Still, thanks to the MonoTouch Hello World tutorial, I soon added some visual elements to the window. Then I selected the AppDelegate class, and added outlets so I could reference them from C# code. You connect outlets to visual elements by drawing a connecting line between them.
My goal was to create a to-do list app, so I added a UITableView for the list, a text input field for new items, and a button for adding them. Removing items can wait for version 2.0. Here is how it looked:
I saved, and returned to MonoDevelop. As promised, I could now reference the outlets in code. I drew shamelessly on this example of how to code UITableViews in MonoTouch, added a few lines of my own, and soon had a working to-do list app running in the emulator.
Admittedly it is not likely to quality for the App Store just yet; but even so I was impressed with how quickly you can assemble something like this.
I was also impressed with MonoDevelop.The code completion and error reporting was excellent.
From the user's perspective, a MonoTouch app behaves like any other iOS app. The main snag is that the Mono runtime library has to be packaged with every app, bloating the size to 5MB or more. In the context of the 16GB or more in an iPhone or iPad, that is not too bad. Note this comment in the discussion on the subject on StackOverflow:
I have 21 apps now on the App Store in MonoTouch. All going fine, great comments from users and lots of sales
In the end, that is what counts. If you are a C# developer with a need for some iPhone or iPad apps, MonoTouch is worth checking out.