Thursday, August 28, 2014

Half a million views - wow!

According to the stats in blogger, earlier today, views of this blog passed the half a million mark.
It sounds like quite a big number so it must be a big deal. I don't know people who talk about how many people actually view their blog so don't really have anything to compare it with. I expect that there are many with fewer views and many with more though.


So, many years ago I started a blog as an excuse to write stuff. A few years I started posting mostly about Windows Phone development related topics and renamed the blog.
It was really after this point that anyone really started reading what I've written. I still just write what I want to write but I've also tried to document things I've discovered that weren't documented anywhere and may be of use to others.
It's good to know that some people have found what I write useful and interesting. It still shocks me that people at Microsoft even read this stuff (sometimes) and I've even known some of them find solutions to their issues here. You're welcome.

I've no plans on stopping writing here. I'm just going to continue writing about what I want when the mood takes me (so it'll continue to be intermittent). Do feel free to tell me if I write something of use to you. :)


Friday, August 08, 2014

OCR in Windows Phone and Windows Store apps

Over the years, lots of developers have asked about having OCR (Optical Character Recognition) capabilities in their apps.
Well, last week a preview of the ability to do this was released by Microsoft.
I've not seen much publicity of this but know many people will be interested so I'm trying to help spread the word.

If you're interested, it's the same code that powered the Bing client on Windows Phone, Bing Translator app, OneNote and OneDrive.

You can find the documentation (and sample) on MSDN http://msdn.microsoft.com/en-us/library/windows/apps/xaml/windowspreview.media.ocr.aspx and the NuGet package at http://www.nuget.org/packages/Microsoft.Windows.Ocr/

Thursday, July 24, 2014

On "Responsive Design"

What your design should be responding to is the context of the user. Not just the device they're using.

It's about more than just screen size and capabilities.

It's about enabling the person using the software to get the value they want out of using the software regardless of which device they are using.

Of course, understanding the context of the user (so you can best give them what they want) requires consideration of more than just the size of the screen.


And although it should go without saying you can't put all the logic to do this on just the client side or just the server side. (Assuming you have both - some apps may only be client.) Some of the logic to do this will need to be on the server and some on the client. The client will tell the server general information to the server which will impact what the server returns. The client will then refine this to the specifics of the device. Allowing for consideration of its current configuration and its current environment.

Wednesday, July 09, 2014

Think before you truncate

There is a convention on Windows Phone to not wrap text but let it overflow the right edge of the screen.
This shouldn't always be done though.
There are cases where the text at the end of a sentence is REALLY important and it's more important to compromise the convention or the layout so that the information that matters can be seen.

Take a look at these directions (from the maps app).
In the second step, is the street I should take on the right or the left?
It's important I know. 
This shouldn't have been clipped.
The arrow doesn't make it obviously clear either. 


Fortunately, in this case, the apps supports rotation and by switching to landscape I can see that I need to take the road on the left.



It's a work around for this instance but not all apps are as good.
Even in this case though it would have been better if the app didn't give me that initial moment of confusion and frustration.

Is there anything you could do to your apps to make sure that the most important information is always visible?
Or would supporting both portrait and landscape orientations in your app allow the people using it to see things more clearly?


Friday, July 04, 2014

If you previously built Windows Phone games with XNA...

I'm still regularly asked what options people have for taking forward the games they originally built for Windows Phone 7 with XNA.
If you're not aware this question is driven by the fact that Microsoft removed XNA tooling and support from Windows Phone 8.

There are 2 main options: MonoGame or Unity.

MonoGame is an open source project that aims to provide the same options and APIs for building apps across platforms as were available for building with XNA on Windows.

Unity is a game developing ecosystem for building apps that work across a wide variety of platforms.

So which should you use?

If you already have a code base (based on XNA) that you want to reuse then MonoGame is the obvious choice.
If you have no existing code base or are happy to rewrite it then Unity is probably the way to go. Microsoft seem to be putting more emphasis on this as a solution for game development as it is popular with many big game studios and has a strong cross platform story. After all why would you build for just Windows when you can reach more potential users for your game by targeting multiple platforms?

Is this how things are likely to remain? Well, I don't see Microsoft changing their opinion about Unity in the short term. They've just bought a company who makes a plugin for Visual Studio to help with building with Unity.