• Experiences of an Windows Phone Developer

    One of the main selling points to me for Windows Phone 7 was the opportunity to write mobile apps in a .NET environment. I thought I would summarize here my experiences over the last few months from signing up as a developer, writing and deploying for the first time and working with the Marketplace.

    Becoming a Windows Phone developer could not be easier, the Microsoft Developer Network (MSDN) has a section solely for developers working on XBox and Windows Phone; create.msdn.com. Having signed in with a Windows Live ID, you complete the standard registration type form and wait for the slightly ominous sounding next step, Identity Validation. The name of this step is a lot more scary than it actually is, they simply require a scan of some form of official document to verify you are who are claiming to be. They claim this process could take up to a week however mine was turned around inside 24 hours, now either I’m really easy to track down or they aren’t checking into you that deeply.

    One of the best things about the .NET framework is the development environment, Visual Studio is without a doubt one of the best IDEs out there for doing just about anything; desktop development, web or cloud and now mobile. If you have the full Visual Studio 2010 then you can download the Windows Phone development tools as a plug-in however if you don’t have the £500 to drop on an IDE (if someone would like to donate to get me a copy I’d appreciate it) then you’re in luck you can get almost the same functionality for nothing with Visual Studio 2010 Express, this lacks some of the fancier features of the full program (plug-ins, team support, etc) however it is ideal for experimenting with Windows Phone. With either option you get a new build target of WP7, this target launches the emulator which is fluid and does not feel anywhere near as clunky the Android one tends to.

    Okay so that’s the environment, but what is it actually like to develop for Windows Phone 7? If you’ve developed for Silverlight or WPF then you’ll have no problem at all getting up to speed with the WP7 specific libraries. There is a thriving Windows Phone Developer community sharing a wealth of knowledge and components, so even if your development experiance is limited you can quickly get help when you do hit a roadblock. If you have experience with Visual Studio you will be familiar with the “designer mode” for creating UI elements, the Windows Phone SDK adds a range of phone specific version of many UI elements, better tailoring their design to the touch interface. The templates for pages and controls can be used to get you up to speed very quickly with designing within the Metro UI guidelines, however I thoroughly recommend having a read of Jeff Wilcox’s Metro design guide for developers as this will take an average looking app and give it beautiful metro polish. However there will come a time when what you want to achieve is just not in the standard toolkit of components  but designing a custom control seems a bit overkill. For many of these situations you can turn to the Window Phone Developer community I mentioned earlier. One toolkit I would strongly recommend is the Coding4Fun Windows Phone Toolkit, this contains a range of additional controls, converters and helpers to speed up your phone development. The control I needed was the TimeSpan Picker which extends the lovely looking (and very touch friendly) time picker control from the SDK to help users input TimeSpans, ideal if like me you are writing anything requiring timers. The only control in the set I am hesitant to recommend is the About prompt, while it looks very slick and makes writing a quick about info pane as simple as possible I noticed some jarring animation when running this on an actual device. If you want to write an about page for your app I suggest looking again to Jeff Wilcox who created a beautiful, detailed and performance friendly Pivot based about page for his app “4th & Mayor” which he details here. I have implemented a similar model for PBTrainer 1.2 and have to say it feels a lot more polished than using the dialog.

    Its for reasons like this that you need to test your application not just in the emulator but on real hardware, no matter how good the emulator it’ll never compare to installing and using the application on a real device. Before you can deploy your app to hardware you need to unlock your phone, now if you went the official route and have a developer account this is as simple as connecting up your phone, running the Developer Phone Registration Tool and a couple of next presses later and you are done. However if you’re just experimenting and just want to push just to you own device then there are third party solutions that allow you to side-load XAP files onto your device, however these do come with somesignificant risks. Once you have a unlocked device you can push the XAP files created in Visual Studio down to the device using Windows Phone Application Deployment Tool which painlessly installs the application onto your device where it is indistinguishable from one downloaded from the Marketplace. Another of the really nice features of Windows Phone App Hub is the ability to release your application into a “private beta” state, this means that users whose feedback you trust can get their hands on your apps for 90 days at no cost without the need for an unlocked phone. This means you can get your application out there to real users on a variety of hardware and carriers before it reaches the full Marketplace. There is a really nice write up of this functionality here.

    Now that the app is out there in the wild it’s time to watch it explode and make you a instant millionaire, right? The MSDN provides an awesome dashboard to help track the performance of the application as it spreads through the marketplace. Below is the total and cumulative download chart for PBTrainer.

    [gallery link=”file” columns=”2” orderby=”title”]

    As you can see its a fairly linear progression, with just a slight spike around the 1.1 release. This information can be incredibly useful you could see the impact of promotional drives or seasonal spikes of interest. However the dashboard provides  another even more useful resource for improving your app, stack traces. Every time your app crashes in the wild WP7 sends back diagnostic data to Microsoft (with user approval, however this is on by default). So if you rush out a new feature without testing it properly first (but you’d never do that …right?) you’ll be able to see its impact on this graph. All of these statistics can be downloaded as Excel spreadsheets if you so desire, this includes additional data that now yet available on the website but as they keep updating the developer dashboard I’m sure this information will be accessible direct from the web app soon.

    What’s next? I’m finishing off the polish on PBTrainer 1.2 which hopefully should be going in for review next week. This will add unlimited drills, an improved drill history record and a much nicer about page. Keep watching pbtrainer.andymarch.co.uk for the notification of the latest release…or just go download now and you’ll get the update as soon as its on the Marketplace.

  • Windows Phone 7 First Thoughts of an Android switcher

    Well after waiting nearly a month with no end in sight for T-Mobile to finally get some stock of the Desire HD, I caved and cancelled my contract. What prompted this? The new Windows Phone 7. I’ve fled back to O2 to get the O2 exclusive HTC HD7 and I must say upfront i’m very happy.

    As a piece of hardware its a beautiful, beautiful fingerprint magnet. The massive 4.3 inch screen dominates the device, while not as vibrant as the Super AMOLED screen on the Sumsung Omina 7 its still lovely. Some reviews have expressed concern over the build quality of the device I have seen nothing to back this up, yes the back in plastic rather than aluminium but it still feels sturdy and does not creak. My only initial concern was the kickstand which surrounds the camera sensor however having lived with the device for a week I’ve been convinced that there is nothing to fear here. The kickstand opens and closes with a reassuring snap, I’m sure if abused it would eventually break away however that is true of any phone.

    I picked my HD7 up shortly before going on the road for a week…this meant that if the setup didn’t go well it was going to be a difficult week. However I was pleasantly surprised, I signed in with a blank live id which has no associated email account for it to search, I then added my gmail account and was relived to see my contacts sync down to the phone. There have been mumblings of contacts not being synced from Google if they are not properly formatted, either my contacts are perfect (very unlikely) or these fears are exaggerated. Next up I added in my Facebook account, this is where the Windows Phone 7 Hubs feature comes into its own. As my Facebook friends synced with the phone it automatically integrated with my Google contacts where there was obviously overlap. This works surprisingly well it was even able to suitably match up account information for friends who have the same name. There were of course a hand full which have to be manually tweaked for people who I didn’t have complete information for (or had silly things in their Facebook name). Hubs makes navigating this aggregation of information really easy, when you first launch the people hub you are shown a list of all of your contacts, swipe to the left you a given a ‘what’s new’ feed with status updates from Facebook, swipe left again and you have a number of your recently accessed contacts. This panorama of data looks awesome while being beautifully functional.

    When adding a Google Account I also brought across my calendars, Microsoft has made a big deal about this one glance concept to determine where you need to be. Unfortunately if you have more than one calendar this isn’t quite true, only the default calendar for each account will be synced with the device so this means I have a bookmark to the Google Calendar page to manually check for conflicts. I hope this is one oversight that will be addressed soon.

    Windows Phone 7 ships with a GMail application unfortunately I think it is by far the weakest of the on board applications. While the application looks stunning with animations for most actions its integration with GMail is very limited. There is currently no archive button, this alone is probably the single greatest annoyance for me, the only work around is to open the message, expand the context draw and move the message to ‘all mail’. Support is also lacking for labels, starring, searching all received mail and setting the outbound address on an email. Now it may be slightly unfair to expect Microsoft to implement such tight support for a competitors mail product when I have not used the Outlook/Live Mail client. However I really hope that either this app is significantly improved or a third party developer (Google themselves perhaps) creates a better implementation

    The browser is a hybrid of Internet Explorer 7 & 8 and I must say I am really impressed, pages load quickly, pinch to zoom is buttery smooth and tap to column is great idea. One interesting niggle I did come across was with YouTube, Windows Phone 7 ships neither with Flash or HTML 5 support so YouTube was always going to be an issue. Ok it’ll just behave like Android and load the YouTube application with the desired video? Well yes you’re right it does however it will only do this if the browser is in ‘Mobile version’, unfortunately as this browser is a hybrid manner sites with hard coded browser agent settings do not know how to handle it resulting in being dumped into truely horrible site renderings (some people are reporting being given WAP compliant pages though I have not seen this myself).

    The search experience on the phone in generally is wonderful, most places within the phone you can hit the hardware search button and be transported to the customised Bing search experiance. This gives you a similar data panorama we saw with contacts with ‘local’, ‘news’ and web’ all available with a swipe. Strangely one of the only places this doesn’t happen is in the browser, a tap of the search button here takes you to uk.m.yahoo.com ermmmm yeah so what happened there? I have a sneaking suspicion that this might be a concequence of a the O2 build I have, unfortunately there is no wayt to change this default at present so if i want to start a new search I am currently hitting the home button first to avoid the uglyness of the Yahoo page.

    Windows Phone 7 uses the Zune desktop software to manage the device and as such has an inbuilt Zune application for enjoying your music, videos and podcasts. The Zune software has been migrated wonderfully and provides a really nice experience, combined with the standard 3.5mm headphone jack I have been largely ignoring my Zune in favour of the phone.

    The Marketplace has finally landed in the UK, up until the latest Zune software release the Marketplace was off limit to any Zune users outside the US. I must say I’m very impressed its a lovely way to explore and purchase music. One thing I am disappointed by is the Zune pass, this allows you unlimited streaming access to music on the Zune Marketplace for £8.99 per month. Unfortunately this is  lacking what would be in my mind one of selling points of this over services such as Spotify which is that US Zune pass subscribers are allowed to download 10 tracks per month to keep this perk is not available for UK users at the moment. From the app perspective in the Marketplace it is currently early days with the US launch expected later this month we can expect to see the number of apps rapidly increase. However currently the Marketplace is far from a barren wasteland with solid showings from Seesmic, EA Games, IMDB and Redbull providing glimmers of the future that the Marketplace will be able to reach once it moves past the 99p fart apps.

    One of the hardware requirements that Microsoft placed on all Windows Phone 7 handsets is a minimum of a five megapixel camera sensor. Having just synced the pictures I took over the weekend I must say I am reasonably impressed. I have to confess I am far from an expert photographer but the quality and clarity of shots seems good from a phone, and that clarification is important there is some graining when looking at large blocks of colour (ie sky). The HD7 I have boasts a duel LED flash, unfortunately this is little more than an annoyance in low light as can be see from the sample photos below it has a tendancy to bath everything in a orangey light while successfully blinding the subject. The default for the flash is automatic so it is only used when required, having found the flash annoying I disabled it in the settings only to find that when the camera app is closed and reopened this default setting is restored. This applied to all of the settings for the camera including the resolution for the video camera which defaults to  VGA 640x480 rather than 720P 1280x720. I hope that this is one of the first things that Microsoft addresses.

    Another thing this device does well on is battery life, one day I took over 80 photos and spent a lot of time fiddling with the device and still had a half charge. The last few days have been a bit more ordinary 9-5 with some mail checking and calls and I’m seeing about three quarters charge after a full day. Obviously this battery is new so we will see how this stands up over a longer period but the initial signs are good.

    Ok this post has had a lot of negatives in however I must say that without a doubt there is a certain buzz from using Windows Phone 7 that I never got from Android. Every person who has played with the device has commented how polished it feels and I hope we see Microsoft rapidly push updates to the software to address some of the issues which are being seen.

    [gallery link=”file”]

  • Firesheep, making Facebook hi-jacking even easier

    There’s been a lot of press floating about today about a new Firefox extension called Firesheep. This extension sniffs networks for HTTP cookies for a number of popular social network services and captures them ready for one click session highjacks. Thanks to the publicly available APIs for these networks Firesheep performs a lookup to see exactly whose’s cookie you have allowing greater refinement of attack.

    A lot of people have responded to this by advocating MiFis and VPN solutions to prevent ever using public WiFi in the first place. However this requires extra kit and therefore extra expense, you could recommend users only use the SSL encrypted pages but really how many people while remember to do this for ever site they visit?

    In the mind of fighting fire with fire you can fight extensions with extensions, KB SSL Enforcer for Google Chrome provides a near zero effort solution to the problem. This extension will automatically redirect the user to a SSL encrypted copy of the page if one is available. All the security with much less hassle.

  • Reading Entity gets Tanked

  • Zune Software 4.2 and the case of disappearing functionality

    Last week saw the push of the latest release of the Zune desktop software, normally a new release is the indicator of new functionality. Following the update there was a flurry of postings to the Zune community forums complaining about the mysterious disappearance of serveral parts of functionality, namely all of the social functionality and the recently introduced Smart DJ function. As these posts rolled a pattern emerged…they were all from international users.

    Now Microsoft has prior for attempting to block international users from accessing the Zune social, which I have discussed at length here before so rather than drag that up again we’ll focus on Smart DJ. Smart DJ was introduced with the Zune 4.0 software and greeted with applause, it provided the functionality to automatically build a playlist of similar songs based on a selected album, track or artist ala last.fm. This feature obviously adds value to the product, and competes well against iTunes Genius playlist, there seems to have been no reason to limit this to US users only.

    Fortunately EwanD over on the Zune.net forums has posted a cunning work around which re-enables Smart DJ.

    • Close Zune software
    • - Run Regedit.exe
    • - Navigate to HKEY_CURRENT_USER \ Software \ Microsoft \ Zune
    • - right-click and create a new Key under \ Zune, called FeaturesOverride
    • - Open that key (folder, essentially) and right-click, create a new DWORD (32-bit) value called QuickMixLocal
    • - Open that key, set the value to “1”
    • - Start Zune software … et voila!

    Under that FeaturesOverride key it is possible to add a number of new values which re-enable all of the functionality which international users have been blocked from.

    · SignInAvailable

    · QuickPlay

    · Marketplace

    · Picks

    · Videos

    · Social

    · MusicVideos

    · Podcasts

    · Channels

    · Games

    · SubscriptionFreeTracks

    · FirstLaunchIntroVideo

    · MBRRental

    · MBRPurchase

    · MBRPreview

    Hopefully the sheer number of international users which have expressed their feelings over this direct attack on them will provoke Microsoft to take strides to make the Zune platform available outside of the United States.

  • Not dead merely sleeping

    …well damn its been a while since I’ve written a post on here. But life has been more than a little hectic over the last few months, exams, moving house, graduation and starting a new job.

    Well four years after I started there I have graduated from the University of Kent with an upper second class bachelor of science with honors in Computer Science with a year in industry. It has without a doubt been an amazing four years, I’ve met some brilliant people, experienced so much and enjoyed myself immensely. I’d like to thank all of those who have been there over the last four years, early morning drives to practice, late night coding sessions, many awesome nights out and just kicking back to watch the world pass by. Without these people I would not have been able to achieve what I have.

    I’ve been very fortunate that I’ve been able to secure myself a job, which I will not go into on here for many reasons. Its nice to be in a position to apply what I have learnt over the last four years, spend my working day with people who have an genuine interest in technology and most of all enjoy the work I do. After all what is a 40+ hour working week if you are only waiting for the other 128 hours?

  • Dick Wall Open Lecture

    Last December I was fortunate enough to attend the ‘Annual Centre of Excellence Distinguished Lecture’ from Dick Wall (of The Java Posse fame). At the time I was intending on writing a short post about it but it never quite materialised, however the other day while rummaging around the departments open-lecture series announcements I came across the recording from this lecture and I thought I would share it with you all. It is publicly available from the Kent Computer Science department here. Dick covered a range of very interesting topics including the progress of Computer Science in the last 20 years, the abundance of frameworks, open source, stateless computing and the Furby grid.

    One of the points Dick mentioned that really grabbed my attention was the habit of graduates to build everything from the ground up dispite the wide availablity of open source solutions. Instead he emphasizes how much more important it is to work on the problems no one has tackled yet, it is this ambition to push development that really drives me to continue expanding my knowledge. It was truely fasinating to attend and having spent the last hour enjoying it again I highly recommend you take the time to download it and give it a listen.

  • ColonyFS an Introduction

    Chris has written an interesting introduction to our final year group project on his blog.  Our project has been an to implement a working secure peer-to-peer file system over the internet with anonymity as the key. I can honestly say it’s without a doubt one of the most enjoyable projects I have worked on in a long time.  The core of my work has focused around the development of the Windows GUI and I’m working on a post about this, until then I highly recommend giving Chris’ introduction a read.

subscribe via RSS