Recently in Mobile Category

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?

Richard III saw this as the season of his discontent, but in 2010, winter is proving to be a happy time for computer users. It sees the launch of app stores both for Mac OS X and for Google's Chrome OS. Both have already been announced, and Google's is already available.

The Chrome App Store brings together Internet-based applications in a way that makes it easier for people to consume them. It lists them all on a single, searchable site, and presents them in an attractive layout, similar to that found in Apple's app store for the iPad and the iPhone.

Now, Apple is doing the same. It will feature an app store in its OS X operating system bringing together applications that it approves of in a single place. This won't stop third parties from selling applications not listed in the app store, but it will make it easier for users to find and download the software that they like.

What's here for the enterprise? The concept of providing users with online catalogues of applications and online services could revolutionise the way that they interact with the IT department. Ask yourself how your users procure applications for use in their work, and how you provision them? How easy is it for users to find and access the functions that they want? How fluid is the exchange of information about those applications and how well they perform?

The combination of app stores with cloud computing environments could bring new vitality to IT in the workplace. Cloud-based companies such as Salesforce are already providing application platforms that independent software vendors can use to develop custom services using their infrastructures. These are then made available through AppExchange, its cloud-based app store, and applications can be rated by users.

It is easy to see how techniques such as these might make it possible to promote cloud computing and service-oriented architectures to line of business managers and users. If cloud-based applications and services developed by internal departments and third party partners could be displayed in this way, it would bring home the benefits of an online application infrastructure to users. It might also soften the blow when organisations pursue desktop virtualisation and find themselves trying to convince an unwilling user base.

Rudimentary versions of this concept have been pursued before. In the early 2000s, Universal Description Discovery and Integration (UDDI) gave companies a software stack that enabled them to publish centrally accessible services, based on the then-new concepts of SOAP. Today, SOAP, other forms of XML-based API, and architectures such as REST are enabling far more applications and services to integrate with each other online. The time for cloud-based app stores in the enterprise may just becoming of age.

This concept could promote the use of IT in general as a more responsible, user-oriented business function. It could, in short, make IT sexy again in the enterprise. And as CIOs strive to redefine their departments as corporate assets and strategic partners, that could be a powerful tool in the battle to win the hearts and minds of business users.

Current Vacancies from CWJobs

(* Required field)










Preferred format