views:

266

answers:

2

Recently one of our clients is considering the posibility of picking up an old WinMobile 5.0 project.

Several features are to be added to the point it will be a major version update.

The client is worried about the mobile market, and thinks there's a chance all the effort put in this development will have to be thrown away in a couple of year due to the dinamics of the mobile market and the deprecation of mobile devices.

So, the client is not sure whether he should continue with Windows Mobile (changing from WM 5.0 to 6.X) or starting from scratch with another technology.

From our part we have been studing the mobile market, looking for clues for which will be the winning horse.

The safe move seems to continue with WM just because re writing an entire application from scratch involves more risks and delays.

On the other hand WM seems to be losing market and the ghost of an exit on their part is growing stronger everyday.

But what can be say about Android? Everyone is talking about it and is growing at full speed but what avantagies will it bring to the table? Why should we start a fresh applicaction on this technology?

So the question remains the same.. is Android mature enough for an enterprise application? Will you recomend it to one of your clients? Will you port/rewrite a WM application to Android? What's the trade-off?

EDIT: Addressing commentaries.

  • The app is entirely built with C# and Compact Framework.
  • The app is for logistics/management.
+3  A: 

Ideally, your main core code could be represented by web services (platform agnostic services, can be accessed by Android, iPhone, blackberry, WinMo, etc) and you could only need to write the UIs for each different platform.

We've been looking at Android due to its openness, which provides us to beta test without going to market initially. This also allows us to distribute to a closed set of users, i.e. a specific organization, without having to release to the general market.

The biggest issue with Android that we've noticed is the fragmentation issue between different devices, OS versions, etc. However, if your application is purely accessing and displaying data from your web services, you're 90% free from most fragmentation issues.

As for the development, Android is in a Java-esque language, which is already similar to C# syntactically.

Adam
+4  A: 

Android:

  • Google
  • Much hyped new platform.
  • More and more hardware vendors adopt this platform (HTC, Motorola, ...)
  • Open Source
  • Java SDK
  • C++ NDK
  • New, improved OS version every couple of months

Window Mobile:

  • Microsoft
  • Final version 6.5
  • Will be replaced by WindowsPhone7
  • WM apps will not run on WP7
  • C++ with MFC
  • C# with .NET Compact Framework
  • HD2 from HTC: the by far best WM6.5 device (comparable the HTC NexusOne)
  • Availability of devices running WM6.5 in the future (from 2011, after the release of WP7) uncertain

From your post I assume that your client is still using WM5 devices.
If they do not have any additional requirements other than being able to do what they are currently doing with their old devices then I would continue with Windows Mobile:

  • Your client should update the hardware to the latest generation (e.g. the HTC HD2) running WM6.5.
  • You add the request features and make adaptions needed for WM6.5

This would give your client another three (maybe five) years of time.
After those three years a port to WindowsPhone7 (or later) might be the way to go.
I could imaging that porting an existing C#/CompactFramework app to Silverlight on WP7 is a lot easier than a complete rewrite for a new platform or moving the app to the Web.

Volker Voecking
"Every couple of months" is an exaggeration for Android; now that the platform is more stable, it's two releases a year at most, it seems.
Christopher
Christopher, so we hope :D
Adam