Recently in Mobile Category

Microsoft released Windows 8 in October 2012, with its key feature being a new tablet-friendly user interface and store-driven app model, though a slightly improved desktop lives alongside it.

It is not going well. Here is a user comment on Gizmodo that says a lot about the majority reaction to Windows 8:

Im still using a computer with win7 on it, so I had not had much experience with win8. That changed when I helped my girlfriend buy a new computer for her mom. In all honesty, we found the win8 interface a huge pain. It took forever to figure out how to use it, and in the end we did everything we could to get back to a normal non-tile setup. Heck, it takes like 3 menus just to get to the shut down screen! Its insane, and the overall experience for the 3 of us was negative (two of which are very experience computer users).

Spelling and grammar left as-is! Note a few features of this comment:

  • The person who wants the new Windows machine is the parent. I notice this frequently: a significant part of the Windows market is older (I am not saying elderly!) people who are less interested in the latest shiny new thing and more interested in sticking with their existing trusted apps and familiar user interface. The changes in Windows 8 are not welcome to this kind of user.
  • The new features in Windows 8 are perceived as obstructive.
  • There is no mention of touch control or new-style apps. It is a guess, but since the largest market for Windows is low-end laptops without touch screens, it is a fair bet that this is what it was.

The business world is different, of course, and here things like Hyper-V virtualisation or Windows To Go secure deployment are more likely to be appreciated. People are not so different though, whether they are at work or at home, and given that most Windows users spend most of their time on the desktop (hard to avoid however much you like the "Modern UI") I've noticed similar reactions from business people trying out Windows 8.

That is, if they have tried it at all. Most businesses I encounter are sticking with Windows 7.

With PC sales in probably permanent decline, in favour of other computing form factors, is Windows now set to become a legacy workhorse operating system? Will it ever break through on tablets?

Microsoft's official position, as far as I can tell, is that everything is fine. Leaked builds of the next major update, known as Windows Blue, show only minor changes:

  • New 50-50 Snap view for modern apps
  • Easier and richer Start screen customization
  • New tile sizes for the Start screen
  • Internet Explorer 11

Of course there will be more to come; the recently announced Build conference in June is when we will find out more. The stage is set for Blue to be generally available by the end of the year.

I am guessing though that Microsoft does not intend to implement what many users would like, things like:

  • Making the Modern UI easier to ignore, by booting straight to the desktop and having file associations set by default to desktop rather than Metro apps
  • The ability to run Windows Store apps in a desktop window
  • An option to use the old Start menu

I do see Microsoft's thinking here. There is not much point in making a brand new platform, and then designing it so users can easily ignore it.

It is also true that if Windows 8 had simply been like Windows 7, but a bit better, that would have done nothing to stem its decline.

On the other hand, Microsoft's attitude to the problems people have with Windows 8 seems to me denial. More could be done to help desktop (that is, most) users get to grips with Windows 8. For example, I would like to see small visual clues to the presence of menus and "Charms" features (the right-hand menu which hides many settings, search and sharing features), an easier way to raise the Charms menu with the mouse, and a visible Start button on the desktop.

Windows 8 usability is fine if you make the effort to learn it, but making that effort is hard to justify when the world of modern apps is uninspiring. This is the second and most important area that must be improved, if the world is ever going to want versions of Windows beyond 7. There are few delightful apps, and a large part of the reason is that the built-in controls available to developers for building apps tend to be blocky in appearance, inefficient in use of screen space, and short on important features.

Miguel de Icaza, of Mono, Gnome and Xamarin (C# for mobile) fame, said on The Register that "the new Windows basically has no style. The style is DOS with large fonts." A little unfair, but he has a point.

We also need to see further unification of Windows 8 and Windows Phone 8. The phone side does have some momentum now, and the app story is better. Why not enable Phone apps to run on Windows 8, as iPhone apps do on the iPad, as well as making it easier for developers to target both phone and tablet with new projects?

Finally, it is time Microsoft came up with inspiring examples of Windows Store apps that really are a joy to use. There are a few good ones. I still like the weather app, and Fresh Paint is a good effort though sadly has not made me into an artist. More is needed though, and I am guessing that Microsoft's own developers have the same problems that third parties have faced in trying to code for the new platform.

Yes, Microsoft does need to fine-tune the Windows 8 user interface to make it more enjoyable for upgraders; but what is even more important is that Windows "Blue" needs to improve the Windows Runtime platform. That is the thing to watch for at the forthcoming Build.

Could 2013 be the year that RIM recovers and BlackBerry becomes an important mobile platform again? January 30th is the key day, when the new BlackBerry 10 smartphone platform is launched.

We have seen a kind of preview of BlackBerry 10 in the unsuccessful PlayBook tablet, released in April 2011. This is the first RIM product based on the QNX operating system. QNX Software Systems was acquired by RIM a year earlier, in April 2010. That said, the PlayBook runs the PlayBook OS, not (yet) BlackBerry 10. BlackBerry 10 SmartPhones will have a new user interface and many new features.

I spoke to William Vablais, Head of Developer Relations EMEA for RIM. "We've been very successful in changing the sentiment of developers," he claims. "The interest level has been rising significantly."

One would expect him to say nothing less. But what is distinctive about the BlackBerry 10 platform; what does the it give you that couldn't easily be done on iOS, Android or something else?

Vablais points first to the diversity of development approaches it supports.

"We have SDKs for C/C++, we have entry points for designers and developers for HTML and CSS, we have entry points for Adobe AIR," he says.

There is also an Android runtime which makes it possible to repackage Android apps. Vablais observes that it can pay to offer your app on a minority platform.

"There's a community out there that developed for Android who don't have any exposure or visibility in that world because it's such an overcrowded market," he says. "They can take their application, port it to our platform, and suddenly they get visibility, generating revenue."

Fair enough, but what does the BlackBerry 10 platform give you that cannot easily be done on some other platform?

Vablais points to two key BlackBerry 10 features that he believes will draw users to the platform. One is social netwok integration. "We have the social network capabilities built into the OS," he says, referring to BlackBerry Flow and BlackBerry Hub:

BlackBerry® Flow is a new user experience that allows seamless navigation across open applications and the BlackBerry® Hub. All messages, notifications, feeds, and calendar events come into the BlackBerry Hub and no matter what the user is doing with the device, with a simple gesture, they can peek into the Hub at any time.

says the press release,

More important to business users though is security. "What no-one else has is that the OS and the framework has been based on security. The user interface and some of the components allow you to split out work related data from your personal related data."

This is the feature called BlackBerry Balance. Again, here is the official description:

BlackBerry® Balance™ offers the most elegant way to satisfy both customer and corporate needs without compromising on either. With BlackBerry Balance, personal apps and information are kept separate from work data, and the customer can switch from their personal to work profile with a simple gesture.  The work profile is fully encrypted and secure, enabling organizations to protect their content and applications, while at the same time letting customers get the most out of their smartphone for their personal use.

In the era of BYOD (Bring Your Own Device), this does sound like a great feature. The industry is only just coming to terms with the idea that smart devices are personal; they do not live in the office and they will be used as home as well as at work. If BlackBerry 10 makes sense of maintaining work and personal data on a single device without compromising security or the user experience, then it could indeed be a game changer.

The success of the original BlackBerry phones was primarily based on its appeal to business users, and RIM already has tools for deploying internal apps in a managed and secure manner.

Even an excellent platform counts for nothing if you cannot market it successfully in a world now dominated by iOS and Android, as Microsoft has discovered with Windows Phone. Whether RIM has enough resources to establish yet another mobile ecosystem must be an open question.

At the same time, there is a lot to like. QNX has long been an excellent embedded operating system, and if the devices are excellent and the security lives up to its promise, BlackBerry 10 could be a significant platform for mobile buisiness apps.

Mark January 30th in your diaries and watch with interest.
 

Thinking of developing an iPhone or Android game? Make sure you understand how social gaming works. Gaming is changing, and so are the people that games are targeting.

Stories of people who produce a mobile app and cash in are exciting to listen to, but the reality is somewhat different. There are 700,000 apps in Google's Play Store, and just a little more than that in the iPhone App Store. Getting noticed above the noise is a challenge. It's a little-known fact that Rovio, the company behind Angry Birds, produced tens of games before it finally hit on a that winning series.

There are at least two tricks to producing an effective mobile game. One is to create a game with a social element, so that your players become an effective marketing force. If a game improves as more people play it, then players become evangelical about it, wanting others to play it too. This is at least part of the reason why Farmville developer Zynga became so successful.

Perhaps the most significant tool up a developer's sleeve, however, other than social game structures, is devops. In enterprise application development, devops is a technique to close the gap between development and operations. It takes feedback from the operations team that deploys a system, and uses it to mould the next iteration of the product. Software bugs, or even anomalies in user behaviour, can help development teams to make informed decisions about software structure and interfaces.

Mobile platforms are great for this, because they can be used to collect data about how the games are being used, and what is being done in them. Users may leave the game at certain points, or make in-game purchases at crucial junctures in the game. Broadly, information can be collected about the types of game being purchased on each platform. One games developer told me recently that the winning model for her game on the Android platform was free-to-play (purchasing items in the game, rather than paying to download the game in the first place). iPhone users seemed to prefer a premium-casual model, where they could buy a full version of the game after playing a restricted version. 

All of this information can be collected in real time, as games are played, thanks to the connected nature of the platform. This presents some amazing opportunities for developers to refine their games - both at a technical level, and at a business level.

The real trick for developers may be to understand how to interpret this wealth of information, understanding what is important and why, and choosing the most important elements to inform future developments. Game developers used to focus heavily on gameplay, interface design, and graphics programming. Now, analytics may be just as important.

Now, in an age of mobile gaming, the emphasis may shift, and an entirely new set of analytical skill sets may be needed. It is, quite literally, a game-changing development. 

Windows 8 has been released to manufacturing, along with Windows Server 2012 and Visual Studio 2012. There is also a major new version of Office, Microsoft's other mainstay, due for completion around November this year.

These releases are more than just the usual round of updates. On its tablet-friendly Metro side, Windows 8 has a new runtime and user interface which is almost a platform within a platform. Microsoft consciously reformed the Windows API, with much of it unavailable from the Metro side, applications sandboxed, and asynchronous programming enforced.

If you do development in Microsoft Office, you will find a new application model there as well. Called Apps for Office, this is a way of embedding web applications either in a document (only supported in Excel at the moment) or in a task pane alongside a document (supported in Excel, Word and Project). Outlook 2013 does not have a task pane, but uses a similar approach for new-style Mail apps, a separate pane that displays alongside an email.

The significance of Apps for Office is that being web-based, they also work in Office Web Apps. This means that an application developed for the new model will run on platforms where the Office 2013 client is not available, including tablets and Macs.

There is a lot of sense in Microsoft's approach, whether or not you like the blocky Windows 8 Start screen, or the washed-out user interface in Office 2013. That said, it is a big ask for developers. The problem is not only the amount that developers will have to learn, but also what they need to throw away.

When Visual Studio 2010 was released, frameworks including Silverlight, Windows Presentation Foundation and XNA (for games) were positioned as strategic APIs in which developers could invest their time and effort with confidence. A few years later, and all those frameworks look like legacy.

If Windows RT (that is the ARM version) takes off, developers have to come to terms with a wave of Windows devices that do not run their desktop applications at all.

On the mobile side, loyal Microsoft-platform developers have endured a rollercoaster ride trying to keep up with how the company says you should develop today. Windows Mobile 6: C/C++ is in. Windows Phone 7: C/C++ is out. Windows Phone 8: C/C++ is in again.

The question developers will be asking as Windows 8 and Office 2013 roll out is this: how can we be sure that innovations like the Windows Runtime or Apps for Office will still be worth developing for by the time Visual Studio 2014 comes around?

I am inclined to agree that the Windows platform needed reform, and despite a few jarring changes there is a lot to like in the 2012 wave. But what the company now needs is a period of consistency and consolidation, otherwise its developer community will simply lose faith.

 

I have been spending some time with the recently released Sencha Architect 2. This is a development environment with three core components:

Ext JS 4.0 Framework: an HTML5 application framework for desktop browsers
Sencha Touch 2.0: an HTML5 application framework for mobile browsers
Sencha Architect IDE: a visual development tool for both Ext JS and Sencha Touch
Architech is a commercial product, but there are free and open source versions of Ext JS and Touch with various licensing and support permutations available.

I installed Sencha Architect on Windows, which works though I cannot quite describe it as Windows-friendly; there is a Mac flavour to the documentation and nothing quite works in Internet Explorer, Chrome or Safari is recommended.

What you get though is an elegant IDE which is focused 100% on applications, rather than general HTML design. It is not Eclipse-based, which I found interesting having recently also tried the latest Titanium IDE from Appcelerator, which is built on Eclipse. Although Eclipse is a wonderful thing, it does add complexity and overhead compared to a lightweight, dedicated IDE like Sencha Architect.

sencha1.png

The frameworks are also interesting. Both Ext JS and Sencha Touch (which are similar in many respects) are based on a Model-View-Controller design, and this is neatly expressed in the IDE which shows Controllers, Views, Stores, Models and Resources in its Project Inspector. A store is essentially a collection of model instances, and might for example be an Ajax proxy retrieving JSON data from a remote URL. The image below uses this technique to show bars in London. The app is designed for a smartphone, though I am displaying it in Google Chrome to test.

sencha2.png

A great feature of the latest Sencha toolkit is that you can package apps as native apps for Android or iOS. Support for RIM Playbook is also planned. You can even package for iOS on a Windows machine, though of course without the benefit of the iOS simulator. Sencha's approach to native packaging is similar to Phonegap/Cordova, in that it uses the embedded browser on the device. However Sencha is not using Phonegap, but as far as I can tell, draws on technology acquired from Nimblekit, a small company specialising in native apps for iOS with HTML and Javascript acquired by Sencha.

These frameworks are not the easiest to pick up quickly, but I was struck by the clean design of both the code and the IDE. Further, Sencha apps generally look good and in many cases the visual components come close to what you can achieve with native code.

From what I can tell, the pressure on developers to create apps that play nicely with a variety of devices, from Windows desktops and laptops through to iPads and Android smartphones, will only increase. Sencha is worth a look.

It is a little early for a review of the year, but not too early to state that 2011 has brought profound changes to the software development world. Although I am thinking mainly of the client, I would also argue that client and server are so intertwined that both are affected. As an example, I have heard developers moving away from SOAP web services not because of any conviction that REST is a better approach, but because the move away from Windows and towards HTML clients makes SOAP web services more difficult to consume.

So what's changed? Simply put, three platforms which once seemed strategic are now in obvious decline. Getting the nuance right for these platforms is tricky. Lots of software still runs and is still widely used long after it has ceased to be strategic for the company which supports it. All the platforms mentioned negatively below are still in active development; they are not going away and will still be running ten years and more from today. They come with health warnings though: depending on these platforms means that your software will gradually become more difficult for users to run and will be left behind by new technologies.

The decline of Silverlight

In the run up to the launch of Microsoft's Visual Studio 2010 I spoke to a number of Microsoft platform developers. The consensus then was that Silverlight was very important and possibly the future of Microsoft's client. The view was supported by the company's energetic development efforts for Silverlight. It also made a lot of sense: a lightweight, secure, cloud-centric client that escaped the GUI limitations of Win32, worked in the browser or as a desktop application, and as a bonus run on Mac as well as Windows. Silverlight, as I noted in several articles, is client-side .NET done right.

This is not the place to write a long screed about why Silverlight failed, but rather to note that at the end of 2010 it became obvious that Microsoft was changing direction. At the Professional Developers Conference, October 28-29 2010, it was hardly mentioned, and the company focused instead on HTML and Internet Explorer 9. The full extent of its new strategy was not shown until this year, at the BUILD conference in September.

It is not only external developers that were surprised by what seemed a sudden change of direction. The same seems to be true of many within Microsoft itself. Nor am I sure exactly when someone decided that Silverlight was no longer strategic, though there are clues in the Silverlight release schedule. When Silverlight 4 was unveiled in November 2009 it was still ascendant. Silverlight 5, due out shortly, suggests that it was still considered important in early 2010. Visual Studio LightSwitch released this year was likely planned in part as a way of boosting Silverlight, since it builds Silverlight applications. But nobody is talking about Silverlight 6.

Silverlight is still the development platform for Windows Phone 7, but many observers, myself included, believe this will give way to a variant of the new Windows Runtime (see below) in a future version.

This has been a costly experiment for Microsoft. If the company had done the Windows Runtime, rather than Silverlight, back in 2007, imagine how much stronger would be its position now. That said, it is not all wasted. XAML, the presentation language in Silverlight and in Windows Presentation Foundation, continues in the Windows Runtime, and so does the essence of the cloud-centric, client-secure development model.

Adobe Flash Deprecated

Back in 2007 Silverlight seemed to be in part a competitive response to the increasing popularity of Adobe Flash. This month though, Adobe went though wrenching changes of its own, announcing the end of Flash on mobile browsers and a fundamental shift in business strategy away from enterprise development and towards content creation and distribution.

There are plenty of parallels with the Microsoft case. One is that the changes also came as a surprise to many within the company, who just a few weeks before, at the MAX conference in Los Angeles, were talking confidently about the future of Flash and of Flex, the application-centric SDK for Flash. Here is Doug Winnie, a casualty of the inevitable layoffs:

The product managers, evangelists, community managers, and developer relations team members found out the news and the way it was communicated at almost the same exact time you did. They are wrestling with the news and your reaction in real time--so please be supportive of them as they dig through everything.

and here is Duane Nickull:

While on the 3rd day of my vacation in Mexico, I got the call with the explanation that Adobe is doing a major refocus and as part of that, many of us "enterprise" types are no longer required. "Überflussig" I guess is the correct German word for the situation. Keep in mind that I now speak as an individual, not as an Adobe employee. I missed most of the official story due to the timing of my vacation but caught up with a few news outlets to get the rationale.

But isn't Flash still going strong on desktop browsers, and the Flex SDK heading for great new things as an open source project at the Apache Foundation? Well, maybe. Adobe is not betting on that though; it is betting on design tools for content, HTML5, and packaging and distributing publications and apps. Its Flash technology is still critical to how that is done under the covers, but Flash itself will be invisible.

Adobe also says that its LiveCycle middleware will continue to evolve in two specific niches:

We will continue to sell and support our LiveCycle products in the government and financial services markets, two areas where the LiveCycle value proposition remains especially strong.

Again, maybe. This sounds more like Adobe keeping faith with some important customers, than a strong future for LiveCycle.

Win32 Deprecated, .NET changes

Microsoft announced another profound change in direction at its BUILD conference in September. Although related to the decline of Silverlight, this one deserves its own heading. What we saw was that the Win32 platform on which Microsoft has built its prosperity for the last twenty-one years or so (Windows 3.0 came out in 1990) is now being shunted aside. "Shunted aside" is the right term because it is still there in the forthcoming Windows 8, but it is side by side with the new Windows Runtime (WinRT) and a touch-friendly user interface called Metro. The company's goal is to create a platform that will succeed against Apple's iOS. It runs on ARM as well as Intel x86 and has its own Windows Marketplace, similar in concept to Apple's App Store.

Leaving aside the merits of WinRT, the big news here is that Microsoft is finally moving away from the Windows desktop on which most of us have done our work day to day for the last two decades. The reasons are obvious: mainly the rise of iOS and the iPad, but also the success of the Mac among developers and at the premium end of the laptop market. Windows was already in decline.

Your Win32 applications will work forever, but Microsoft's energy is now going elsewhere.

What about the .NET Framework on the client? It is still there, and thanks to the excellence of the C# language I expect it will be the most popular approach for coding for Metro. Parts of the Framework will no longer work in Metro though, and it may even be that HTML5 and JavaScript, which is equally well supported, will gradually supplant it. Nor do I take the success of Windows 8 for granted; Microsoft may find the tablet market already largely absorbed by iOS and Android.

That is speculation; but the long-term decline of Win32 is not.

Platforms ascendant

If these platforms are in decline, what the ones that are rising fast? That is simple to answer. Apple iOS, Google Android, and HTML5 in general. Are these good for the next two decades as in Win32, or will be on the deprecated list in a few years? That is hard to say; if I had to rate them in order of likely longevity I would guess this:

1. HTML, JavaScript and CSS

2. Apple iOS

3. Google Android

Predictions though are a dangerous game, and I would be interested in other opinions.

I have posted before about Delphi, a rapid development tool forgotten by some, but still the best option for Windows native code development combined with a productive visual component library. That was over two years ago though, shortly after I met with Embarcadero CEO Wayne Williams who promised a version of Delphi that would compile for the Mac as well as Windows.

I had nearly given up waiting; but a couple of months back Embarcadero released a new Delphi with features which, on the surface at least, exceeded my expectations. Here are the highlights:

  • 64-bit Windows development.
  • A new cross-platform framework called FireMonkey.
  • A cross-compiler for Max OS X - develop on Windows, compile for the Mac.
  • Support for iOS development - Apple iPad and iPhone - again using FireMonkey.
  • A new data-binding feature called LiveBindings, that lets you bind any visual object to any source object using expressions.

It is an amazing list of features, particularly considering the rather disappointing first version of Delphi XE. Embarcadero seemed to have done everything promised and more, in one release.

I was keen to try cross-compiling for the Mac, and set it up in what seems to be the most popular way, using a virtual machine on a Mac to run Windows, and running Delphi in the VM. When you install Delphi, or the full RAD Studio which includes C++ Builder and other features, it installs several components that you then run on the Mac side, including the FireMonkey libraries and a server calls the Platform Assistant. You then create a remote profile in Delphi that connects to the Platform Assistant, password protected for security.

Everything worked first try. I added an OS X target to my Windows FireMonkey app, clicked to run, and my simple app opened like magic as an OS X application on the Mac desktop.

Coding for iOS was more work, since you end up exporting the project to Xcode and compiling with the Free Pascal compiler rather than simply using Delphi on Windows, but it did run successfully, and I was able to use my simple test application on an iPhone.

Embarcadero is promising to add Android support at some future date, making this an interesting tool for those who need to support multiple platforms.

Is this the Delphi we have been waiting for? There are a few things that spoil the product. It does seem to have been rushed, which is hardly suprising when you realise that Embarcardero acquired VGScene and DXScene, products for Delphi that form the basis of FireMonkey, from a company called KSDev only around 6 months before RAD Studio XE2 was released. I am not sure what plans Embarcadero had for a cross-platform framework when I spoke to Williams in 2009, but does look like the KSDev deal solved a number of problems.

This rush shows itself in the immaturity of the FireMonkey framework. There are some performance issues as well as limited features compared to what was available with the VCL (Visual Component Library) for Windows. The VCL may be wedded to Windows, but it is hard to leave behind sixteen years of VCL evolution in favour of the first release of a new framework. Existing applications will not necessarily port easily. It is not only a matter of porting from the VCL to FireMonkey. Delphi developers are used to calling the Windows API when necessary, creating code that will not run cross-platform.

It is also worth noting that all FireMonkey controls are custom drawn. There are always compromises in cross-platform development, and in the case of FireMonkey you are giving up the advantages of using native controls on Windows or Mac.

As a cross-platform development tool, Delphi is now up against Adobe Flash Builder, Appcelerator Titanium, PhoneGap, and others. I have been impressed with Adobe AIR in this context, and PhoneGap also has lots of momentum and is ideal for web developers who now need to create mobile apps.

There is every sign though that Embarcadero is serious about FireMonkey and investing in its future. Existing Delphi developers now have a way to move beyond Windows while still using their preferred tool; and the product looks likely to attract new users thanks to its cross-platform capabilities.

Finally I should add that while it is the cross-platform aspect that is most eye-catching, the VCL is not dead and with 64-bit support Delphi is better than ever as a Windows development tool.

I was interested to read Martin Fowler's piece on Cross Platform Mobile. Fowler is Chief Scientist at ThoughtWorks, which does software development and IT consultancy:

I think cross-platform mobile toolkits are a dead-end. It's just too hard for them to really mimic the native experience. If it's worth building a native app, it's worth building it properly, including an individual experience design for that platform.

I do not altogether agree, though he makes a good case and I accept that there are significant obstacles to success. I recommend his piece; all the issues he mentions are real and considerable.

On the other hand, I see it more in terms of acceptable compromises than a binary choice. An Aston Martin is better than a Ford, but a Ford will get me to work and costs less.

The question then becomes: how much compromise do you have to accept if you build a cross-platform mobile app?

Another issue: Fowler says web apps are a capable alternative route, but he adds:

When you do the web app, don't try to make it look and feel like a native app - make it look like a mobile web app

It sounds like good advice; but is there a UI standard for mobile web apps? I am also not sure what this advice means if you wrap a web app as a mobile app using a tool like PhoneGap. Even if you do not want to do this, it may be necessary in order to get access to more native features of the device. Should such an app aim to look more like a web app, or a native app, or is the whole idea a mistake?

Another tricky problem is that with multiple form factors, it is not clear when to apply mobile standards and when to apply desktop and laptop standards. An Apple iPad is a mobile device, but its screen resolution is 1024x768, which is pretty much a full size screen.

There is also a cost involved in not doing cross-platform development. If you only need to support, say, Apple iOS, then fine, get stuck into Xcode 4 and Objective C in the Apple-approved manner. If you need to support more than one platform though, the case is more difficult. Creating an "individual experience design" for each platform means that you have two code bases to maintain, and ensuring parity of features and fixing bugs in both become issues. Multiply the platforms, and it gets worse.

Adobe's Creative Suite is an interesting case. It works on both Mac and Windows, but the UI is more tilted towards consistency between the two versions, rather than looking native to each platform. Dreamweaver CS5.5, for example, looks nothing like a standard Windows application, with its buttons in the top frame of the main window.

However, I would rather have that, than what Microsoft has done with Office on Mac and Windows. The UI is different, the release cycle is different, the features are different, and in general I find it a better experience on Windows than on the Mac, whereas I am equally happy with Creative Suite on either platform.

My guess is that Adobe, with its own internal cross-platform tools, succeeds in sharing more code between the two than Microsoft manages, which is why it is able to deliver synchronised releases. It has tilted the balance towards consistency across platforms, rather than looking native, and that is a valid compromise.

That said, I have been conducting my own experiments with cross-platform toolkits and it is not going all that well. Each toolkit has involved compromises, even with a simple app, and performance has been an issue.

I can also see that the way navigation between difference screens in your app generally works is different on iOS than on Android. Which do you choose?

Cross-platform toolkits may not be desirable then; but they may be inevitable (like death and taxes) unless you have huge resources or are willing to lock-in to a single platform.

I also believe that performance issues will reduce as devices get more powerful, and that web technologies which are common between all the main mobile platforms form a runtime that goes a long way towards solving cross-platform issues.

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.

Welcome to the post-PC era: Smartphones are outselling PCs

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.

atrix-small.jpg

Android is everywhere

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.

Nokia's influence fades as Windows Phone begins

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.

After several years of paranoid news articles, it seems as though the age of mobile phone hacking might finally be upon us.

As smartphones took off, anti-malware companies spent the last few years warning about the potential of smart phone Trojans and viruses. Some of them have even released products designed to protect these endpoints, but aside from a few proof of concept binaries, little seems to have happened.

A few things recently suggest that the mobile phone security threat may be gaining traction.

Cisco's latest annual security survey, released yesterday, has found that criminals are investing more resources in exploits specifically targeting mobile device users. It is only a nascent trend, the company says, but it is a distinct one. Significantly, Cisco believes that we have reached a tipping point with traditional PC security. Companies are getting better at building security into PC platforms and making patches available more quickly, the report said. Look out for exploits targeting Apple and Android operating systems this year, it added.

Both iOS and Android phones are getting sophisticated enough to allow malware to do some pretty devious things. Security researchers have developed an Android Trojan called Soundminder, for example, that listens for spoken or dialed credit card numbers or PINs, performing the necessary analysis to convert them from sound recordings into text that can then be sent back to an attacker. 

That may be little more than a proof of concept trojan, but other researchers have found a real one, in the wild, that is being bolted onto legitimate Android apps. It effectively converts the phone into a bot, enabling it to take remote instruction from a malicious attacker.

There is another reason why smart phones might be the next significant attack target for criminals: mobile payments. Right now, smart phones are frequently enabled for online payments in one way or another. The iPhone features an in-app payment mechanism, for example, and many applications connect to services with stored credit card information. Bump, a popular mobile application that enables two phones in the same vicinity to exchange information, publishes an API that companies like PayPal use to facilitate mobile transactions.

Large retailers are starting to get in on the act. Coffee giant Starbucks has started taking mobile payments from the iPhone in the US, via a Starbucks Card Mobile app that connects the phone to the user's Starbucks card account.

I guess it was only a matter of time. After all, modern malware writers look for sensitive information that could be sold on. Smartphones are beginning to store more of that sensitive information, and are also connecting to a greater number of sensitive online services. My bank, for example, released its online banking iPhone app recently.

But the real inflection point for mobile payments will be Near Field Communications (NFC). This radio technology, already used in payment card and ticketing systems, is being prepared for phones, and one big rumour is that it will make its way into the iPhone 5. This would effectively turn your phone into a digital wallet, able to pay for things in cash. What self-respecting cyber criminal wouldn't want a piece of that action?

Current Vacancies from CWJobs

(* Required field)










Preferred format