Wednesday, August 18, 2010

On how I might be a hypocrite

I recently started looking at Windows Phone 7, and based on my previous anti-iphone/ipad rant I figured I would hate it. My main criticisms still apply (vendor lock-in, forced application registration, no multi-tasking), there is something about the architecture that I really do like.

I figure my excitement comes from the fact that MS make really good application development tools and frameworks, and as an MS developer for some time now, I am pretty confident that should I want to do something with my phone, I could probably do it. The thing I don't like is the need to register as a developer ($99/annum fee), but that does give you access to the MS store if you do decide to release any software. I guess if I was an apple person, I would feel the same way about the iPhone, so it makes me a big fat hypocrite.

Although it will be heavily criticised for the lack of multitasking, which will kill it until they bring it in (work on this is 'in progress' but won't make launch), I think the other application design features are pretty cool.

The way you interact with core services is very interesting. As each application uses isolated storage, it is not possible to create an application that will access the images on your phone directly. However, in order to list and select images from an application is as simple as invoking an image chooser service, that loads the built-in image browser/selector ('tombstoning' the parent application), and when complete, the parent application is restored. This effectively provides a number of core features within the phone accessible, with a consistent interface and usability.

Sure if the core services suck, then you are stuck with them, but it does improve phone security (you can't create a malicious app that will upload people's photos to the internet) and usability (to find a photo in app A is exactly the same as app B).

The other thing I really like is the messaging service that MS has developed for Windows Phone 7. There are core APIs that will allow web services to publish events to windows phone accounts (not individual phones). Once linked, your phone can receive these message much like push email notifications. These messages can update an application icon (to show that a new email has arrived on the home screen for example), or it can 'pop-up' a message on the screen no matter what you are doing, and you can choose to action the pop-up (loading the appropriate app), or ignore it and continue working. This sort of thing has been around a while, for example when a new sms comes through on my nokia I get a popup that i can action to load the sms. However the scope of this service is such that it can be used for any notification via web services.

An example of how this could be cool is a turn-based multiplayer game where each player receives a notification message when it is your turn. The game does not need to have each player running the app at the same time, each player can open the game, make a move, and the game server will issue the update to each other player. The players can receive the notification and view the move (loading the game), or ignore it until they have the opportunity to load the game in their own time. When it is a particular player's turn, they can also be notified by a separate message letting them know that the rest of the players are waiting.

Anyway, I admit it, I am somewhat excited by Windows Phone 7 and will be playing with the beta development tools. Early next year I will be due for a new phone, and by then there should be a couple of windows phone 7 devices out, so it'll be interesting to see whether android, wp7, or nokia will be my poison this time.

No comments:

Post a Comment