Farewell Windows Phone

This is still my favourite my favourite ever phone. I got it nearly four years ago. Four years. That's several phone lifetimes ago. It has wireless charging and a fantastic OLED screen. Just like the phone that Apple are touting as revolutionary but haven't started selling just yet.

I found my Windows Phone far easier to use than anything else. It was as if a bunch of people had looked at iPhone and Android and asked "I wonder if we can do this better". Turns out that they could, but nobody cared. And now Microsoft have announced that they don't see mobile devices as a priority any more. Oh well.  

I've always seen things like phones and whatnot as pendulums swinging around. Microsoft had the mobile space to itself for quite a few years, then the pendulum swung to Apple and Android. Perhaps when Apple manage to properly drop the ball with the iPhone and people get annoyed with buggy Android devices that never get patched we might see a return to Microsoft. 

Until then I'll get my wonderful Windows Phone out every now and then, play with it and wonder at what might have been. 

Bye Bye Windows Phone 8.1

Three and a half years ago I got the best phone I've ever had. A Lumia 1520 running Windows 8. Amazing screen, snappy performance, brilliant battery life, fantastic camera. And now Windows Phone 8 is dead. 

Sigh.

Ten years ago number one son was kind enough to bring me back a first generation iPhone from his travels in the US. It was the cheapest version with only 4G of storage, no 3G, no GPS, no proper email, and barely enough applications to fill the home screen. One of the first apps was a compass, that's how desperate they were to get things to put on there. And yet it was obviously the future.

I'd show mine to Microsoft folks at conferences and tell them it was going to eat their lunch and the response was usually that they knew this, but the folks upstairs didn't see it as a threat.  And anyway, how can you sell more copies of Windows and Office using a mobile phone? 

After a year version 2 of the iPhone brought 3G, GPS, an app store and proper email. I was second in the queue to get one at the O2 store. Around this time Microsoft seemed to think that the future was hexagonal menus.

I got more worried. I even emailed Steve Balmer (and, to his credit, got a response). But nothing happened. The version of Windows Mobile that was supposed to solve all problems and re-discover the high-ground was suddenly pulled and replaced with not a lot.

Finally, Windows Phone 7 came along. I loved it. A genuine attempt to move the field forward. Quite a few others loved it too. Not enough to get back the all market that Windows Mobile used to have, but enough to build a sizeable user-base. 

Then, just as Windows Phone 7 was starting to get traction (I thought), along came Windows Phone 8. This was a staggering technical achievement. We now had "full fat" windows running on a phone platform. And it worked really well. Snag was, it needed new hardware. And Windows Phone 7 owners suddenly found that they didn't own the future any more. 

And by now Android was taking over where Windows Phone should have been, picking up the 80% of the market that Apple don't tend to bother with. Microsoft hit back by making compelling, wonderful, devices like my Lumia 1520. But it was all for nothing in the end. 

I still have my Lumia 1520. It now runs Windows 10, wonderfully well. The user interface is streets ahead of my iPhone. I can't use it in real life of course, because lots of the things that I want to use on a daily basis are either unavailable or don't work properly. But I'm going to hang on to it to show people when they pull our their latest "wonder phone".

Windows 10 Mobile Mostly Rocks

True confession. This last year or so I've been packing an iPhone 6 and Apple Watch. As a Windows Phone lover I'm not particularly proud of this, but I reckon that needs must. I like the iPhone because everything just works, and you can do everything. 

But, when we went to Chicago on holiday I took along my Lovely Lumia of old. I wanted to use it as a mobile hotspot. T-Mobile do this tourist plan which gives you lots of data over 30 days for only 30 dollars. For some reason they fail to mention in the snazzy adverts that you also have to pay 20 dollars for a sim to load the plan on to, but hey, 50 dollars for 30 days of mobile internet abroad, I'll pay that. So I bought the sim after a bit of muttering in the store, popped it in the Lumia 1520 and off we went. Before I'd left I'd put the latest build on Windows 10 on the phone and it makes a really good mobile hotspot, worked a treat. 

And then I found myself using the Lumia in preference to my iPhone for most of my daily stuff. It is just easier, nicer and quicker to use. Reading mail is a lot, lot, easier. I prefer the screen and everything just works. Navigation was a snap, the maps app is easily the equal of the Apple one. Even the Guardian app was easier to use to read the (depressing) news each day. Remember that this is a phone I bought in December 2013. And it was as snappy and usable as state of the art devices. Battery life was fine and I remembered how much I loved Windows Phone. 

And then I rediscovered the stopper. One of the main reasons that I don't use Windows Phone any more. The Amazon Kindle app doesn't work. And by doesn't work, I mean it doesn't let you read books properly. It misses out chunks of text. You find yourself switching between horizontal and vertical orientation, or flipping back and forth between pages, just to get a line or so of the book to appear. At first I thought that I was actually going mad but no, it turns out that Amazon Kindle on Windows Phone is incapable of remembering where it got to in the book from one page to the next. Astonishing and awful. I read a lot of books on my phone, this is a deal breaker. Game over for Windows Phone. 

I hope this can be sorted out. You would think that, what with Amazon and Microsoft being neighbours in Seattle, Satya Nadella could pop round to borrow a cup of sugar from Jeff Bezos and, during the conversation on the doorstep casually mention that the Amazon Windows Phone app could do with some love, and then casually point at the truck load of money he happens to have brought with him. 

Stuff of dreams perhaps, but if Kindle worked the Windows Phone would be a very compelling platform for me. The iPhone is great if you want to experience state of the art smartphone user interface design. As long as the state of the art is 2007. But the Windows Phone interface just feels like the future. It's properly thought out, well solid and just easier to use. But I can't read books. And that's sad. 

Cortana Speech Library Helper for Windows Phone

I've been playing around with voice controlled adventures ever since I discussed them with someone at a Techdays session a while back. To make life easier I've now made a little helper class that takes away all the hard work from making simple speech enabled applications for Windows Phone. You can find out all about it on the Microsoft UK Developers pages here.

Microsoft Band First Impressions

So last week, after a lot of pondering, I decided to take the plunge and get myself a Microsoft Band. I paid an excruciatingly large amount to get one specially imported and it arrived on Thursday. Then, today Microsoft go and announce that the bands are going on sale in the UK next month, at considerably less than I paid to get mine. Wah. Order yours here.

The good news is that I really like the Band. It just works. All day. In fact I reckon I could easily get a second day out of the device if I forget to charge it. I paired it with my Lovely Lumia 1520 and, apart from a hiccup that meant I had to set the region of the phone to US to get the app, I had the program working in no time.

It does pretty much everything that the Android wear devices I've been using do. I get notifications to my wrist, I can do voice searches using Cortana and it tracks my heart rate and activity quite handily. It's very light and pretty comfortable. It exerts a slight grip on my wrist, as if it is taking my pulse all the time, which is actually what it is doing I suppose.  I've not tried any of the scripted workouts that are available, but the companion app does a good job of presenting the data that is captured and I can also view it via the web.

I can preview incoming emails and texts and there is a "quick read" view that shows each word of a message in sequence on the screen. I can also create and send canned responses to calls and texts and even enter messages using a tiny keyboard (although this is bit fiddly).

Last night I took a quick look at the SDK and it looks easy to use. A program can get all the information from the band sensors into the phone including accelerometer, gyro, heart rate, skin temperature, UV levels and even skin resistance. And the app can push back tile designs and bind these to actions.

The Microsoft Band is not really a direct competitor to the Apple watch, but then again it is less than half the price. However, I think it does enough to make it worth considering. And it really does last all day.

Bye Bye Android - Hello Again Windows Phone

Yesterday I waved bye bye to my Android phone and officially ended my experiment with the platform. One of the Android wear watches went with it (I've still got a Moto 360 if anyone is interested). The good news is that it went to a very happy recipient who I know will get a lot out of it. The better news is that I'm back on Windows Phone. I've learned quite a lot in the few months I've been using an Android phone and an Android Wear watch.

  1. It doesn't really matter that much which kind of phone you have. They all work well and they all do the fundamentals. When I moved to Android I had this vision of all the new and exciting apps that I could run now I had the most popular mobile platform. True, I did download a few of these and play with them a while. But then I went back to doing the same things I've always done, which my Lovely Lumia supported very well indeed.
  2. Android has some great bits (the way that you can bind actions to events is really, really nice) and some really clunky bits. For me the most irritating aspect of the design was the way that huge chunks of the screen were given over to things that didn't add any value and just took up space. And the mail and calendar applications seemed much more confusing and harder to use than their Windows Phone counterparts. The address book and phone user interface I found fiddly too. These comments only mean that I had these issues, they don't mean that you will of course.
  3. Having notifications on your wrist is very, very nice. You might get a bit tired of the email ones, but knowing that you aren't going to miss a phone call or a text is rather pleasing and occasionally really useful.
  4. The battery life of the current crop of Android wear devices is nowhere near good enough. Much as I loved the user experience and screen of the Moto 360 watch the fact that it conked out at around 5:00 pm made it pretty much useless. You can blame me for having the "ambient" mode turned on to force the screen to hang around longer, but I like using a watch as a watch I can look at and get the time instantly. When I'm giving lectures I like to glance at my watch to see how much time I've got left, with the Moto I couldn't do this (even in ambient mode it struggled), and with the Sony watch the screen was a bit hard to use in this situation. I should have had a look at the LG watch which has a lower power screen I suppose, but I really didn't like the styling of that one.

So, I'm now back on my Lovely Lumia 1520, running the Denim update and coupled to a Microsoft Band. The Band tells the time all the time and at the end of 18 hours of heavy use has around 60% of the battery left. Splendid.

Making a Three Thing Game Auction Timer Unversal App

We are having the Three Thing Game thing auction next Monday. This is always a giggle. Teams bid "Bank of Thingland" money for things that they want to add to their games. This year all the things are student suggestions. What could possibly go wrong?

Anyhoo, one problem with the auction is that we need to get through over 120 lots in around half an hour, so the auction rate has to be frenetic. Last year I thought I'd solved the problem by fixing the auction length at 15 seconds and creating a countdown timer. Unfortunately, human nature being what it is, the result of this was that everyone sat waiting until the timer counted down and then tried to snipe with bids at the last minute.

So this time I'm trying something new. A random countdown timer that runs for between five and 15 seconds. Teams won't know when the auction is going to end, so they'd better get their bids in as soon as they can.

Of course this means I'll need a timer. I wrote one this evening and it took around half an hour. And for that I've got Windows Phone and Windows desktop versions.

These are the variables in the program. I use a DispatcherTimer to generate interrupts. I keep a flag to say whether or not the timer is ticking and I have a counter and a limit value which are used to manage the time outs.

This code sets up the timer. It ticks every second. The timer_Tick method is called each time the timer ticks. I also make a copy of the Foreground colour of the text so that I can put the timer digits back to the original colour when the timer is restarted.

This code sets the timer ticking. If the timer is already ticking the method returns straight away. Otherwise the timer is set up, the screen colour put back to normal, a random timeout between 5 and 15 seconds selected and the timer starts.

This is the third method. It runs each time the timer goes tick. If the timer is active we increment the counter and then display it. Next we check to see if we have hit our limit. If we have a sound effect is played and the counter text block is turned red. Then we stop the timer.

All this code is shared between the Windows Phone and Windows Desktop versions and it works a treat. Great stuff.

Free Red Nose Day Games

If you have a Windows 8 or more PC, or a Windows Phone 7 or more phone, you can sample my wonderful Robs Red Nose Game.

  • Windows Phone version here.
  • Windows PC version here.

Once you've played it for a while you can then go and sponsor me here.

Pro tips for the game:

  • When it asks you to touch all the noses, it means at the same time. I promise there won't ever be more noses than fingers.
  • When it asks you to turn the nose upside down, turn your phone or tablet face down. According to Peter this works really well with docked Surface machines. Or something.
  • It gets really hard in the later levels, when the noses start falling off the screen.

Windows 10 Phone Edition First Impressions

The settings screen has had a serious makeover

The settings screen has had a serious makeover

Well, right on time, as promised, we get a technical preview edition of Windows 10 for the phone in February.  The only problem is that it doesn't work on my Lovely Lumia 1520. This is a technical thing involving the size of the boot images and phone internal storage. I reckon this is fair enough. The only problem is that I really want to have a go. Enter a bright orange Lumia 630 into my life.

You can pick up unlocked versions of these from Amazon for well under 100 pounds and they are actually a smashing little phone. They have nice things like a removable back and exchangeable battery, along with a socket for an SD card to boost the rather internal memory.  They can also run the Windows 10 Technical Preview.  Yay!

The install process was easy enough. I did it over the afternoon, just checking every now and then to see if the progress bars had moved any. You just install the Windows Insider application (you can find it here)  then follow the instructions. There's a "red pill - blue pill" moment where you have to choose between bleeding edge or an older but slightly better supported preview version (I went for bleeding edge - of course) but after that everything runs on rails. Microsoft really are getting good at rolling out over the air updates. 

And when it has all finished you are left with the latest build of Windows 10 on your phone. And you can play "spot the difference". Lots of things look exactly the same, almost certainly because they are exactly the same just at the moment. The Settings menu has had a makeover, the keyboard is a bit different, there's a file explorer and you have to configure the phone to the US region of you want Cortana. 

From the point of view of Microsoft I think it makes very good sense to use the lower spec. phones to start with. If things run OK on the slower devices they are going to run really well on the larger ones. In fact the quality of the experience on the Lumia 630 brings out a problem that Microsoft have with flagship devices. Just what do you make the flagship do that sets it apart from the very acceptable behaviour of this low cost Lumia?

I was very pleased to find that Cheese Lander works fine on the phone, as has much everything else I've tried. I've had a few freezes in Internet Explorer but nothing that would stop me from using this phone as my daily driver. The interface is a bit choppy sometimes and there are occasional flashes of red screen as the video catches up, but it all works fine. I'm really looking forward to seeing how the system evolves in the future. 

json2csharp is magic

Json (JavaScriptObjectNotation) is a really popular way to pass information around on the internets. Lots of services will serve up lumps of json for your programs to munch on. It works very well with JavaScript (which is not surprising) but in the strongly typed world of C# (a great place to be in my opinion) it is a bit of a pain, because C# likes to have proper classes to back up the contents of the Json strings. 

That's where the wonderful json2scharp web page comes in. Grab the chunk of json that you get back from the service (in this case I pulled it straight out of the string in my app while debugging with Visual Studio) and paste it into the window at json2csharp.com and it will spit out all the class definitions that you need.

You can then paste these into your source code and hey-presto, you have all the types that you need to read and work with the json formatted data you just received.

Wonderful stuff.

Windows Phone and Pebble Watches

One of the nice things about owning a Windows Phone is that, well, it's a Windows Phone. And lovely. One of the less nice things about it is that a few things are not available for the device just yet. One of the things you can't do is Smartwatch integration. 

Except that you can. Sort of. 

I've started using my Pebble watch that I got a while back. As a watch I rather like it. Some of the watch faces look really nice and I can make it talk with my Lovely Lumia using a program called Pebble Watch Pro that you can get from the Windows Store.

The program does the best that it can in difficult circumstances. It can show you tweets, and the weather, and let you control your music. It also lets you download and install watch faces, applications and firmware updates for the watch. If you run it under the lock screen it will work when you are not using the phone too. 

It's kind of got me sold on the idea of a watch as an extension of the phone, and I'm looking forward to getting proper integration at some point in the future. When my Lovely Lumia is running Windows 10 and allows background applications this will all get a lot easier. 

Flat Out from Smashed Crab Studios

Later this week I'll be doing my talk to the new First Year students. I'm going to mention Three Thing Game. This is our game development hackathon that we hold each semester.  Teams have three "things" that they can use as the basis of a game. We have a 24 hour development session, followed by the judging, followed by sleep.

It is always fun. Last time the team "Rusty Spoons", who have taken part in pretty much every Three Thing Game during their time at Hull, ended up with "Mayhem", "Puzzler" and "of Fun". They made this really neat game which involved linking colours and then flying through them. You can see a rather shaky video of their entry here

Their game has metamorphosed into Flat Out, which is now on sale in the Android and Windows Phone stores. And getting good reviews too. The team have now graduated, which is nice, and formed a game studio, which is even nicer. 

I make the point that Three Thing Game can be the start of something big, and that we see the trajectory as one where you start with a silly idea and end with an application in the marketplace. It's great when you actually see that happen. 

Building Unified Apps for Phone and Tablet

A while back I was offered a chance to write a guest blog post for the 'Building Apps for Windows' blog. After a bit of thought I decided to write about the business of taking a Windows Phone application and converting it into a Universal app. I used my Wedding Light application as the example and it was great fun to write. I even managed to lever some cheese into the text...

Thanks to Larry and Kraig for turning it into something that makes a lot more sense. You can find it here

Moving to Windows Phone 8.1

The word on the street is that phones that are running the Windows Phone 8.1 Developer Preview will get an upgrade to Windows Phone 8.1 later next week. But I'm an impatient sort and I don't always believe the word on the street anyway. Except perhaps when it says "Give Way". 

So I downloaded the Nokia Software Recovery tool and indulged in a little time travel, taking my Lovely Lumia 1520 back to an age when Windows Phone 8 roamed the earth. This process was actually rather painless. It was a lot quicker than I thought it would be and apart from one scary moment when I thought it was asking for a pin code (it isn't) the whole thing went swimmingly. A tip: it downloads a file that is around 1.5G, so it is best to do this when you are connected to a nice fast network.

At this point I had a brand new, shiny, Windows 8 phone. I told it all about me, but because I'd taken a backup (System>backup>apps+settings>back up now) just before I ran the recovery tool I was able to get all my apps restored OK along with my text messages and whatnot. 

wp_ss_20140730_0001.png

I got all excited when I went to the update menu and saw that there was one waiting for me, but it was just the Hors d'oeuvre for the main course, which downloaded next. But eventually I got to the happy ending you can see on the right. 

If you are a Lumia owner you can find out if the update is available for your device by going here

The "proper" 8.1 has a few neat advances on the Developer Preview. For starters there are little arrows that show you when your network connections are active. 

Then there is the thing that mutters to you if you use a weaker power supply to charge the phone. 

I've just about got my start screen back to how I like it (another tip, take a bunch of screenshots so that you can remember exactly what it looks like) and next week I'll sign up to get onto the next Developer Preview.  The story continues.....

Birthday Bluetooth

It's my birthday today. I had my treat over the weekend and am now saving up for a Segway (just about doable) and a twenty acre estate that I can use it in (pretty much impossible). So I'm here in the office, eating chocolates and writing C#. Which counts as a pretty good situation in my book. 

Anyhoo, I've been playing with a present I bought myself last week. It is a Texas Instruments SensorTag. You can pick these up for a very reasonable sixteen pounds or so and they are enormous fun (if you like connecting devices to sensors). It talks Bluetooth BLE and I've fancied having a go at this for a while.

Turns out to be easy to get it to connect to a Windows 8.1 device. Just remember that for Windows you have to pair the tag over Bluetooth. It just works with iOS and Android - I hope that they remove the need for pairing with Windows at some point. 

If you fancy having a go I've written a very simple universal app and put it on GitHub. You can use this to connect to the accelerometer in a SensorTag and get events fired in your program when a new reading is produced. 

I used a superb post from Dan Ardelean to get started, and just built a little wrapper class around methods that he described.  Great fun.

Windows Phone, Wedding Lights and Bluetooth

Windows Phone connected Wedding Lights. Eight synchronized lights which can be controlled over Bluetooth. Each light contains an Arduino processor and a 16 NeoPixel ring.

I've finally finished it. I was going to write an article about my Windows Phone Controlled Wedding Lights. But instead I thought I'd do something different. So I fired up Adobe Premier and I made a video about them instead. It only lasts a couple of minutes, but boy was it complicated to make. Anyhoo, feel free to take a look and let me know what you think.

I've done something else I've not done before (and I feel a bit guilty about this one). I've put the Bluetooth code for Windows Phone 8.1 and Windows 8.1 up on Codeplex. I'm ashamed to admit that this is the first code that I've ever posted there. I really should have been posting stuff up there earlier. I'm determined to post more stuff as I come up with it.  

You can find a sample project (my Bluetooth Printer) and the BluetoothManager class that I used to communicate with the embedded Bluetooth controller. There are also details of how to configure the Bluetooth device and send and receive data. 

Nokia Sensor Core Beta now available

Nokia make some fine APIs for Windows Phone. And now they've just released a couple more. Their Imaging API is great, and make it really easy to add image processing to your applications. It has just graduated from Beta to a formal release.

The Sensor Core API, just released as a beta, is a very interesting development. It takes Windows Phone into a domain it hasn't been before. Up until Sensor Core it was impossible to do things like track user activity and do things like count the number of steps walked by the phone user, find out where they had been etc etc. But Sensor Core provides the stuff to do all that for you. 

From my experience Nokia libraries are well written and beautifully documented. I'm going to get hold of them and have a play. If you are into Windows Phone, you should too.