:::: MENU ::::

Nokia Hardware – Future Gadgets

In the last few months there has been a lot of rumours about Nokia and its future hardware strategy. Especially after Microsoft has purchased the Nokia Handset division, the rumours have seen to keep on coming. To me, Nokia has always been a symbol of superior hardware that is both durable, beautiful and convenient. Even when Nokia chose to go with Symbian for the majority of their devices I still drooled over the handsets, but the OS put me off.

Now that the brilliant and superior Windows Phone eco system has found its way to Nokia, the combination is a match made in heaven for me. I want every handset that comes out (although the “boss” doesn’t agree with this). There are new handsets coming out all the time, and the rumours keep that strategy alive for us consumers and developers. The line now consists of low end phones like the Lumia 620 to the incredible Lumia 1020 with a 41 Megapixel camera that outperforms not just mobile phone cameras on other devices, but dedicated digital cameras in droves. There is the new “phablet” Lumia 1520 with its gorgeous 6 inch screen and even a new Windows 8 tablet, the Lumia 2520 (which was said to be a “bizarre move” back in April).

But where does the road lead ahead. Lately a few drips and draps of information has come out of the rumour mill that is the Internet, and I will try and make sense of them below. Please add any devices or ideas I might have missed in the comments below.

Goldfinger and Moneypenny

According to Mary Jo Foley from ZDNet, the next iteration of Windows Phone is reaching RTM stage at the end of March with possible public availability early May. I would fully expect new devices from Nokia to be launched as part of the big fanfare, and apparently two new devices, code named “Goldfinger” and “Moneypenny” are in the works. Goldfinger is the flagship model of the two and comes with a unique 3D touch feature, which will recognise 3D gestures. Currently the Lumia Glance feature will show the time if you wave your hand in front of the screen, but this could be much more. I hope they will open it up to developers, so we can get a play with app specific gestures. It could be really interesting for games depending on accuracy. The fact that Nokia is planning new handsets for the 8.1 release is very exciting.

Nokia 3D Touch Patent

Nokia 3D Touch Patent

Lumia 1820 – 5 inch Phone

On the back of the great reception of the Lumia 1520 Phablet, Nokia is planning a smaller 5 inch model of the same family, dubbed the Lumia 1820. This means a full HD screen and the new Lytro-style main camera. The camera can take a picture and you determine the focal point after the fact. Apparently it also sports a full metal body, which would be a style change for Nokia. Hopefully this means the enormous amount of cracked screens I see will go down. But probably not.

This could be a possible replacement for the flagship Lumia 1020, but I am doubtful about that. I have used my 1020 for about 5 months, and I absolutely love it. I have already filled up the memory with photos once, and I now rarely carry my large DSLR anymore. A possible replacement device would need to have equal or better camera performance for me to change. Having said that, Nokia continues to amaze me, so I am not making any bets.

Lumia 2020 – 8 Inch Tablet

In the same vein as the 1820 above, the 2020 is a Windows 8 tablet, which will fill the gap in the product line. Hopefully it will not be running the RT version, but maybe it will. I don’t know much about this device, but nonetheless it is on all the rumour gauges for Mobile World Congress in Barcelona at the end of February 2014.

Normandy Android Phone

This is an interesting one. Apparently Nokia has an Android project in the works, and the hardware is similar to its Lumia line-up. There has been so many rumours that it is probably true, and it certainly raises a few questions initially. The most pressing one is: If Microsoft has bought Nokia, why is there an Android device being born?

If you look at the leaked photo, it is somewhat resembling the Windows Phone start screen. This could be a way of getting a low cost Nokia device into the hands of more people, and then making the switch to Windows Phone is less arduous, when that time comes. I wouldn’t be surprised if it would share some features of the current Asha platform as well. It is very likely to be a low end device, and only sold in emerging markets.

It is likely that this device will also be launched or premiered at MWC in Barcelona.

Nokia Normandy

Smart Watch

Finally there is the matter of Smart Personal Object devices, in this case a Smart Watch. This is all rumours and there is no actual evidence of its existence, but considering Samsung has brought out the Galaxy Gear, it seems more likely.

It is unclear what the functionality or hardware would be, but I could imagine a camera, viewfinder for your Lumia’s camera, notifications and calendar/reminders. Oh, and it might show the time too.

If it is anything like these designer concepts from a Facebook Phone Designer account, we can start to drool all over again.

Nokia Smart Watch 1 Nokia Smart Watch 2 Nokia Smart Watch 3


Unit Tests Could Save You $$$

First published on blog.dvlup.com

Most developers have at some point in their career of building software solutions come across unit testing. There are a variety of reasons why you start using unit testing. In some cases it is a matter of necessity to sort out what works and what doesn’t in a legacy project you are taking over. It could be a client requirement to meet a particular quality requirement for delivery, it could be an internal policy to keep software maintainable or meet a certain KPI (shudder!). Whether you current project is, don’t be mistaken: Unit testing could save you both time and money. In fact it is extremely likely it will.

In all of the projects I work on now, there is a very clear line of when I choose to use unit tests. If I am building a production ready product, there is no question. Unit tests are a first class citizen from the beginning. If I am building a prototype to test a technology or prove a point, I use unit tests more liberally in areas that have great importance. In either case I always implement unit tests, because they make my life easier. And as a developer I am inherently lazy, so anything that make my job easier I will use.

We have established that you should always use unit tests, but why? Although the aim of this article is not to teach you how to write unit tests (there are plenty of resources on this), it is worth noting the reasons for including them.

  • Quick way to identify logic errors in code. Even if your code compiles, it does not guarantee that the logic is correct.
  • Details change daily, but the sentiment rarely does. Your product is a living being, and you will make changes to it all the time. However, existing features should remain consistent.
  • Allows you to make big changes to code quickly. Your functionality can be tested quickly at every step of the change.
  • Refactor with confidence. Code wide refactoring can be done quickly using your favourite code refactoring tool, and then unit tests can verify the legitimacy of the changes.
  • Instant visual feedback. You can run unit tests automatically as part of your build process and the results can be displayed on a dedicated screen.
  • Red means broken, green means go. Quickly identify where an error is by looking for failed tests.
  • Great unit tests can help document code. Often unit tests will tell a story if done appropriately. This will help any future developers understand the code quicker and with more confidence.
  • Improves coding efficiency. Adding unit tests to a project does not mean writing the code twice. Because you know what the code should achieve you will get there faster.

Any of the reasons above can be applied to most projects, and even if you are just a single developer, don’t think it is only for larger projects. Writing apps for Windows Phone is often a single resource project, but all of the above points still apply. You might think you know the code intricately, and you most likely do, but when you finish the project and don’t look at the code for 6 months, unit tests can help you can back on the horse quick smart.

How Do You Identify Test Cases?

Unit tests are there to confirm your logic and to give you confidence that your code is solving the problem you set out to. But how do you know what to unit test and what to leave? You shouldn’t unit test every single aspect of your project, as that is highly inefficient and a lot of tests will be unnecessary.

In general the areas to test are

  • Domain logic. Any calculations or workflow logic you have should be unit tested. The same goes for any business values that affect your application.
  • Application specific areas. If an area is specifically used only in your application logic, make sure it is tested thoroughly. You won’t be able to rely on built-in functionality if you have built it all yourself.

Likewise there are some areas you shouldn’t test.

  • Framework functionality. If you are using a framework, such as the .NET framework, don’t test it. Whoever built it, i.e. Microsoft, have done a lot of testing before releasing it. This includes generic collections, web handlers, I/O functionality etc. Always assume that a framework is working as expected.
  • Testing across layers. Don’t test across logical layers, such as between database and business logic. This falls under integration testing and is a whole other area of testing.

Keeping Unit Tests Alive

The most important thing when it comes to your unit tests is that you love them. Care for them and give them plenty of attention. Don’t leave them in the corner to face into obscurity, because you might as well not have created them in the first place.

Unit tests are first class citizens and must always be treated as such. If you change code involving one or more tests, make sure you update the tests where necessary as well. Broken tests must be fixed and not just commented out and forgotten. Unloved tests will almost certainly come back to bite you.

If you want to know more about unit testing, integration testing, performance testing, error management and much more in that area for Windows Phone, watch my latest Pluralsight course on the topic, Windows Phone Testing and Error Management. It will make your app robust, reliable and successful.


The Best Start is 5 Simple Steps

I see this over and over again: a client/friend/kitten gets an idea for a project. For arguments sake, let’s say it is a Windows Phone app (kittens are especially good at those). As they talk more and more about it, this app idea grows and grows. They might all be great ideas and features that are discussed and agreed on, but sooner or later they want to begin the project and they have no idea where to start. So they just start coding and soon something is produced and working, but it is not quite like they had imagined. The next feature is difficult to implement and user reviews state they aren’t as successful as their promising idea was meant to make them. Hmmm, then what. Usually the project is neglected and the grand idea gets put on the backburner once more.

What has happened is that they forgot the KIS principle. Keep It Simple. There is nothing wrong with being enthusiastic and starting something new. The problem is that they try to do everything and all things from the beginning. The best start is a simple one. Once the initial brain storming is completed, a few simple steps will ensure you won’t become disillusioned, burnt out and lose focus.

  1. Decide what your app is good at. You need to have a core focus for your app, which you can say in a single sentence. For example, “I help get people faster to the airport”, if you provide some sort of traffic or flight services.
  2. Define a minimal viable product. Of the ideas and features you have brainstormed, focus on the minimum set that can achieve the core of your app.
  3. Plan the next iterations with the remaining features.
  4. Develop your awesome idea. Make the best, but simplest, version of your app. Make sure you do one thing really well and focus on that.
  5. Move to next iteration. Once you have published your app, it is time to move to the next set of ideas and features. Don’t forget about bug fixes though!

With these simple steps you can get a great start to your app, and have the best chance of making it a success. If you have any other tips, I would love to hear about them in the comments below.


Kids Corner Improvements in Windows Phone

One of the differentiating factors for the Windows Phone platform that I pointed out before is the Kids Corner. As a parent it takes away all the angst of having fart emails sent to your boss and your language changed to Hungarian (which I am sure is a beautiful language, but of very little use to me). Having a restricted area of the phone meant for little nosy monkeys, means I have much less hesitation of handing over my phone to my partner’s 8-year old monkey to use the games (and for some reason the Here Transit app).

But as good as it is I have a few recommendations for future versions of the feature on the Windows Phone platform.

1 Battery Level Restrictions

I tweeted about this idea the other day. One of the few issues I come across when monkey-boy is using my phone is that he loves the games, especially the ones that gorges electricity, nom nom nom. In a short period of time he has manage to get the battery level to critical (it is a special kids talent), and not long after I get handed back a dead phone. Geez, thanks boy.

If there was a restriction to log kids out of Kids Corner once the battery level got to a pre-set level that would counter the need to frantically find a charger in an emergency. It would perhaps even bring up a warning when the level was 5% off.

 

2 Developer Hooks

Due to my geekdom I would like to be able to hook my Windows Phone apps into Kids Corner. It could be during installation, the user would be prompted to add the app to Kids Corner, or maybe it could even be a flag to identify apps that would only show in Kids Corner.

I could image a use for an API that would allow stats to be produced from Kids Corner on usage, especially data usage. I am just spit balling here, but the better you can customise the Kids Corner application the more use it would likely get.

3 Independent Password

I still believe this is a bug/oversight from the development team. Initially when you set up Kids Corner you can disable the password on Kids Corner, but if you miss it at that step, touch luck. For some reason there is no second chance.

Surely it would make sense to have a separate password or no password at all on Kids Corner. In my experience kids love the Kids Corner as they feel it is their part of the phone, and they take ownership of it. If they could have their own password or none (set up by the parent of course), this would only emphasise this sense of possession.

4 Restrict Access to Photos

I get that kids love photos and seeing themselves on the phone is a part of that. But I would love to be able to set up a separate folder that little Mr “know-it-all” would be allowed to access. Currently all photos on the phone and the camera can be accessed through the customize function, and there is nothing you can do about it.

Similarly, certain online albums of for example the family, could be granted access too as well. There might be sensitive photos (aheeemm) or pictures of their birthday presents you don’t want them to access.

5 Multiple Instances

I only live with one 8-year old (going on 32), but if you were succumbed to more instances of small humans, then they could each want their own Kids Corner. I could just imagine putting my favourite Barbie game on Jordan’s screen. He probably wouldn’t talk to me for several minutes. If combined with the password feature above, each kid could have their own little corner and collection of apps. Or you could just buy more Nokia Lumia phones. Win-win really.


10 Reasons Why Windows Phone is Superior

Yesterday my best friend Alex received his Nokia Lumia 1020 after years of using iOS. He had had enough of the stale and uninspiring Apple framework, and decided to make the switch. Safe to say I didn’t stop him. I thought about why he changed and why others would make the switch, not just from iOS, but from other platforms as well. This list is highly subjective and is a view on what I think makes the platform stand out. It is a mix of features I like as a consumer, as well as a developer.  Feel free to agree, disagree and suggest other advantages in the comments below.

1 Nokia Lumia Devices

My absolute favourite physical thing about the Windows Phone universe are the devices from Nokia. The Lumia devices are extremely well built, they look amazing and they are pushing the boundaries all the time. There are a million reviews out there that you can read on each device, but my favourites at the moment are the Lumia 1020 and Lumia 1520.[pullquote]The Lumia devices are extremely well built, they look amazing and they are pushing the boundaries all the time.[/pullquote] The camera on the Lumia 1020 is without equal. Period. The 41MP camera with Pureview technology is so good, that I now rarely carry my great big Nokia DSLR with me. The digital zoom on the 1020 is so good, that you can now really do post image processing on your phone. When I have shown the camera and related apps on the phone, all but the most hardcore Apple fanboy is truly impressed. The Lumia 1520 is the latest 6 inch device, dubbed a “Phablet”. It is gorgeous. It is remarkably easy to hold in your hand, unless you are a hobbit, and the extra row of icons on the start screen is really useful. It has a whopping camera too, and 4 individual microphones for directional sound recording on video. I could go on and on about the Lumia devices (as friends and colleagues will testify to), but I’ll stop for now.

Courtesy of http://wmpoweruser.com/

Courtesy of http://wmpoweruser.com/

2 Eco System

One of the reasons I believe so much in the Windows Phone platform is because of the eco system. Microsoft is the only company that has managed to create a complete environment that caters for business, privates and consumers. Not only do they have Windows Phone for on the go, but Office 365 gives you Office on the go, SkyDrive gives you backup and universal access to files. Xbox is at home connecting your entertainment needs with all of the above and finally Windows gives you a fully featured operating system for all your tasks. You now use the same id across all these platforms and devices, and your apps and programs are starting to flow across as well. No other eco system can provide all of these with one experience. From a developer point of view, Windows Azure gives you the ability to provide this experience to your users by using cloud services to host information and provide value.

3 Start Screen

The first thing you see when you open up your Windows Phone is the start screen. This screen of square live tiles is the biggest advantage and differentiator of the operating system. The philosophy of “glance and go” makes so much sense in a day-to-day life where information is thrown at us all the time. Each individual app that the user chooses to pin to the start screen can be live and show a huge range of information. As a developer this is the most important thing I focus on and teach to other developers. If you can convince your users to pin your app to the start screen by providing value on the live tiles, they are much more likely to use your app regularly. The start screen is where users can customise the look and choose colours, tile sizes and make it a true representation of the kind of information that is important on a regular basis. It is a combination of apps that you want to keep close to open all the time, and apps that you mere glance at, such as the email, text messages, twitter and other frequently updated apps. The start screen experience is superior to any other platform and allows the user to be more efficient and not having to open an app to check a quick status.

Start Screen

4 Hub Integration

Windows Phone provides what is called “hubs”. These are essentially integration points, where various streams of information are collated and presented in a unified view. The People hub lets you see all contacts from your contact section of outlook.com, Facebook, Twitter and LinkedIn. The phone will automatically link contacts, so you have one page per contact, which shows all their details from the various services. From the contact page you can then directly phone, text, write on their Facebook wall, email them and so on. In addition you have a news feed that integrated news from all the various services in one location. No more opening one service at a time to check what is new. You get a similar experience with the photos hub, and there is also the games hub and more.

People Hub People Hub - News

5 Business Integration

Back in the good old days, Windows Mobile was the choice for enterprise users, as it neatly integrated with all of you corporate infrastructure. Blackberry came and stole some of that thunder, but now Windows Phone is supporting all of your business needs. There is full integration with user management, exchange and you can even set up a corporate Store to distribute internal apps for your own devices.

6 Driving Mode

This was recently introduced in the GDR3 update, and gives you essentially safer driving. When set up, once your phone connects to a specific Bluetooth connection your phone is muted. This means that if you connect to the Bluetooth in your car, you will not be distracted by notifications, text messages and phone calls. You can alternatively choose to enable text messages and phone calls if you have the appropriate equipment to answer calls. You can even set up an automatic text message that is sent to mobiles calling you. For example if Alex called me, driving mode would reply in a text: “I am on the road at the moment, but will call you right back when I am free”. Really nifty. The driving mode is a simple idea, but really effective when staying safe on the road.

Driving Mode

7 Kids Corner

One of the features that makes my phone ownership experience all the better. If you have kids, you will know of the frustration when the littlies send your boss a fart email or buy those kitten themed chop sticks on eBay. In my case all the settings would be changed and the OS language would suddenly be Hungarian. I am sure you have heard of this happening if not to yourself. Kids Corner is a separate start screen experience aimed solely at kids. As the adult/administrator of the phone you choose which apps are available on Kids Corner, and any notifications are hidden so your part of the phone stays happy and intact. Kids can customise the screen as they want, and they often feel it is “their phone” when using it. This makes a great difference and I have no hesitation in handing over my device to the monkey (if he has deserved it). It still doesn’t prevent them though from running the battery flat in about 4 nanoseconds. That would be a nice setting to restrict access on battery levels. As a developer I haven’t found a true integration point to take advantage of Kids Corner. I have heard of users that use the feature to separate experiences for their own use and in essence have two start screens.

Kids Corner

8 Location Sharing

I am guessing this is one of those hidden features that gets overlooked. If you have ever been late and needed to tell how far you are away it used to be that you would find out where you were then make an educated guess and then text back to say how long you would be. Windows Phone has an integrated feature in the message app that lets you send your location as a map. It is a fully interactive map that you can send with a message. If the recipient has a Windows Phone device they will receive a fully interactive map too. If not, they get a link to one. This means you can now easily send location to contacts in whatever scenario it would help in. Easy to do and really useful.

Location Attachment

9 Groups

You can set up groups of contacts to easier find and communicate with a particular segment of your connections. You can set up a group for your sports team, user group, family or whatever makes sense. It is super simple to do as well. Just go to People Hub -> All -> New and add your contacts. You can then easily send group texts, emails or even chat. If you pin the group to the start screen as a live tile, you will also get updates only from that group. All in the spirit of “glance and go”. If you use the group feature on Facebook to group your friends, then Windows Phone will pick this up as well and use those.

Groups

10 Rooms

Rooms are private invitation only sections, where you can share photos, appointments and chat in a private setting. It does require all members to have a Windows Phone to get full functionality, but it works really well in a family scenario. You can share family photos, a calendar and even notes. Share the shopping list in a central location and all members can add to it. It is often not used to its fullest as most users don’t quite understand how it works.

Rooms

A Note

It is not really a point for the list, but I very often get the argument that “there isn’t enough apps”. For some reason the number of apps is a yard stick for many. Instead I would love it if people said “The new Kitten-in-bow-ties app is not available”. I can work with that and find an alternative. The fact is that the majority of apps are available on Windows Phone. In some cases they are called something different, such as 6Snap for Snapchat by Rudy Huyn.


Nokia App Folders – Why I Think They Are Wrong

Today all the rage was about Nokia’s announcement about their App Folder app. This is essentially a way to group tiles into another tile and give it a title. Let us just establish that I am the biggest Nokia fanboy around, and I think the App Folder app not only is pointless, but it also encourages the wrong behaviour, which may damage the perception of the platform.

Apple and iOS, as well as Android, has had a similar feature for a long time, in act the first version was very similar to the App Folder app. This feature on iOS has now moved on and is must more polished. But it fits into a platform that is all about icons and more icons. They can be grouped.

On the Windows Platform it is a completely separate matter. The entire point, in my opinion, with the home screen is to be able for users to “glance and go”. I have said this over and over again, both in conversation and in my online courses: Live tiles on the Windows Phone platform is the single most effective way to engage your users and keep them returning to your app. If they don’t want to pin a tile to the home screen, then they use the list of apps. By allowing apps to be on the home screen, but not fully, and placing the app icons on a tile, the whole purpose of the home screen becomes polluted.

To me the appeal of the Windows Phone platform has always been that it was simple, intuitive (except for the back button) and predictable. Especially as a developer you can provide great value through a live tile by updating and customising them frequently. This is potentially lost now.

To comment briefly on the app itself, it is a very first attempt. It is not terribly intuitive, and it is really cumbersome to use. Because it is not part of the OS itself, you have to go into the app, then set up the tile, then pin it to the start screen. Unlike iOS you then can’t just tap to expand, but has to tap, tap, tap to get to the icons.

If you need the folders, then you are not understanding the thought behind the basic Windows Phone OS. Instead I would have loved to see a way to organise the long list of apps by for example category or by user choice. That would have been both useful and in line with the design of the platform.

Install App Starting Name Folder Select Apps Home Screen


Featured in the latest PSA from Pluralsight

Today the latest promotional video from Pluralsight was released. It takes form as a public service announcement (PSA) to highlight a world where everyone is a developer. It is pretty funny, and I just happen to be featured in it too. Check it out below

 


Building Quality Apps for Windows Phone

This post was originally post on blog.dvlup.com

With the rise of Windows Phone globally, mainly thanks to amazing Nokia Lumia devices, the number of apps has started to grow rapidly. With more than 200,000 apps in the Windows Phone Store, it is now more important than ever to build quality apps and distinguish yourself from the competition.

It is really important that the first time a new user tries your app they are amazed and impressed. Users have to feel confident that you can solve their problem, whether it is showing a list of nearby museums, taking a photo which puts moustaches on all the faces, or provides a list of recipes for a certain ingredient. Whatever it might be, there is no second chance for a first impression. If your first impression is not up to scratch, you might have one or more of the following unintended consequences:

  • Users will leave negative reviews, which can take a long time to balance out. We always want to start with positive reviews, and then build on that momentum
  • Amazing features lodged deep inside your app might not be discovered.
  • Download numbers will suffer.

There are many apps in the WP Store, and users can find an alternative to your app with a couple of clicks and a spare 30 seconds. If your app is not impressing users on a first run, they are very likely to just discard it all together. I know I have.

Make Every App Amazing – Right from the Start

Here is a list of easy steps you can use to ensure your new app is truly amazing from day one:

  • Use unit tests to ensure logic is sound and accurate (more on that soon). This can easily be set up when you develop your app.
  • Use a beta release to invite trusted users to help test and evaluate your product before a public release.
  • Use a logging framework such as Bugsense to capture any failures and events such as usage counters of important areas and features.
  • Provide a feedback mechanism for such as email or form from within the app, rather than only depend on reviews for feedback. Be responsive to your users, and act on their requests and feedback whenever possible.
  • Release many small enhancements on a consistent basis, rather than large overwhelming updates.

If you make these simple points part of your development plan and roadmap, there is very little overhead. It will become second nature to you, and the pride you will have in your product will shine through.

It really is a true win-win scenario for you and the users of your app.

If you want to know more about unit testing, integration testing, performance testing, error management and much more in that area for Windows Phone, watch my latest Pluralsight course on the topic, Windows Phone Testing and Error Management. It will make your app robust, reliable and successful.


Using Bugsense with Windows Phone – Part 1

When you develop and app for Windows Phone there is always an urge to get the project published and start making an impact on your future users. However, if you don’t make sure you have some visibility of usage and behaviour in the wild, it becomes a guessing game to enhance and maintain it.

Why Use a Logging Framework?

Once you have published you app, it is in the wild. You can decide which markets it is in and what types of devices, such as high powered and certain hardware requirements, but you can’t pick and choose the users that download it. Once you get that message saying your app has been published, you got to let your baby go. Or do you? One of the problems I have had, is that as well as you can test your project there is always that niggling doubt that you missed something or that a certain edge case will cause your app to break. I don’t like uncertainty, and when your app is in the wild that is pretty much what you are left with. How do you know when something fails? What can you do if the app does crash on the devices, displays the information incorrectly or can’t find that web service half the times it tries. With a traditional web application or desktop application you can monitor things and set up event logs. Further, how can you tell how often it fails? So not only might your app fail on a particular scenario, but how often does it happen? You need to know if it is a part of a critical path, resulting in a large percentage of failures, or if it is only in some obscure edge case, in order to prioritize the bugs you have to fix.

How can you know which features are popular and could benefit from being extended further? How do you update the project in the right places and with the most valuable features, if you are blind to how the app is used?

How can you manage the bugs that you do become aware of? How do you keep track of current and future bugs? There might be a number of bugs that come to your attention in various ways, but if you don’t have the full picture, you might be fixing inconsequential bugs instead of the real road blocks.

By being a developer for the Windows Phone platform you do get some help out of the box. You can use the Microsoft Crash Reports that are part of the Developer portal, which does give some indication of errors, but the information is only available for unhandled app process exceptions thrown.

 

Crash Report

Crash report from Windows Phone Developer Portal

You can get the stack traces from those crashes, but I have had apps crash that produced no reports and I only knew because users were telling me. You have no context, and relying on users to tell you what happened when the app crashed is like finding bitcoins at the end of the rainbow. You could also catch exceptions and events and store them manually in your own proprietary logging system, which a number of high profile apps do. But that is effort building a non-core part of your project and will waste time. Time you need to build features that will sell your app and give you that return on investment you want.

Bugsense

Bugsense Setup

What you need to use is an already existing logging framework. Introducing Bugsense. There are several plans with Bugsense, even a free one which is a great way to get started. Go and sign up for a free account now. Go. Do it. Done? Okay, excellent. Let us get started with the fun part then. Put your code hat on and away we go.

First create a new Windows Phone project, or choose an existing Windows Phone project you want to implement Bugsense into.

New WP8 Project

New WP8 Project

Next step is to install Bugsense which is done via a simple NuGet package update. Use either the Package Manager Console

Package Manager Console

Package Manager Console

Or the Package Manager Dialog in Visual Studio.

Package Manager Dialog

Package Manager Dialog

Next we need to add one line to the installation. Yes, one line. That is all. Open up your App.xaml.cs and in the App constructor insert the following

Insert Bugsense API key

Insert Bugsense API key

Now you are ready to start logging. Bugsense lets you log both exceptions as well as manual events for areas you want to monitor and log. You can also now remove the default unhandled exception handler, as Bugsense will take care of business for you.

Remove Unhandled Exception Handler

Remove Unhandled Exception Handler

That is it. You are now capturing exceptions with Bugsense. I could imagine you are after a bit more flexibility and functionality though.

Part 2 of this series on Bugsense will look at manual events and how you log custom information.


DDD Brisbane 2013

On Saturday 7 December I presented at the developer conference DDD Brisbane on my favourite topic of Windows Phone. Despite some flight issues I managed to get to QUT and deliver my talk Building Your First Windows Phone App. The audience was very keen to learn about Windows Phone, and there was a lot of great questions and discussions during the 60 minute session. I managed to convince most that Windows Phone is the superior platform and best opportunity for developers (at least if you ask me). The attendee with the best and most thoughtful questions I decided to give a brand new Nokia Lumia 625 generously sponsored by Nokia Australia. I also gave out Nokia Luna headsets and trial subscriptions to Pluralsight, so people can go watch my online training courses on Windows Phone.

Me explaining how awesome Windows Phone is.

Me explaining how awesome Windows Phone is.

The conference also had a special guest speaker in Scott Hanselman, who talked about all the new amazing features in Visual Studio and what is to come in the near future. Scott also joined a panel of Joe Albahari from Linqpad, Joel Pobar from FaceBook and Hadi Hariri from JetBrains in a panel Q&A session, which was very interesting and very unscripted.

Me and Scott Hanselman

Me and Scott Hanselman

I hope to join everyone at DDD Brisbane again next year and if you want more photos check out Bronwyn’s blog post. Thanks also to my awesome employer Kiandra IT for getting me to Brisbane and supporting my efforts in Windows Phone world domination.