:::: MENU ::::

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.

The Lumia devices are extremely well built, they look amazing and they are pushing the boundaries all the time.

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.


Nokia Future Capture Hackathon Apps Available Now

In late August I participated in the Nokia Future Capture Hackathon in Lund, Sweden with 9 other teams of developers. We had all been invited and flown to Sweden based on ideas submitted on how to utilise the Nokia Lumia 1020’s amazing 41MP camera. The aim of the hackathon was to develop a concept of the idea and then present it to the Nokia imaging team. It was an awesome event.

And now, a few months later the apps are starting to emerge in the Store. Below are the top 3 apps from the event, which are all now available in the store.

Smart Resize

The winning app is now available in the Store for free! The Smart Resize project lets you resize photos and the algorithm in the app magically knows what the boring bits are, so you don’t have to. It is a very clever idea and well executed. You can even outline areas that cannot be erased, areas that have to be erased and apply filters to the finished image.

Available here.

Smart Resize  Smart Resize

Social Scene

This is a big undertaking by Jason letting users capture images at all corners of the globe in a collaborative way. It was the runner up at the hackathon. Social Scene lets all users create time lapse videos by recording the exact position of each scene, guiding new users to the spot at any time to contribute to the experience. The app is very well presented and polished, and is frequently updated with new features. Give it a go and create your own Scene.

Available here.

Social Scene Home  Social Scene Directions  Social Scene Profile

TapShoot

To address the issue of taking photos of yourself, Matt has built an app that lets you pair two phones and let one act as the viewfinder and the other as the camera. So you aim with one phone and can then see the image on the other phone so you can position yourself juuuuuust right. The idea doesn’t stop there though. Matt has built it in a way that you can control the camera from anything that uses his api, in fact Matt had the camera hooked up to a 200×200 pixel black and white smart watch. Very clever idea.

Available here.

Tap Shoot Guide  Tap Shoot Guide  Tap Shoot


First Pluralsight Course Published

This morning I published my first online video course with Pluralsight, titled Building Windows Phone Apps that Stand Out. It has been a long journey with an insane amount of hours spent writing, recording, editing and polishing everything off. It has given me an appreciation of how much work goes into producing high quality content for the World’s best hardcore developer training site, and I am immensely proud of the outcome.

Below is a small taste of my course, giving you the outline of the content. If you are a Windows Phone developer, this course will add that important knowledge gap of how you can make your app be awesome (and make you more money in the end).

So go ahead and check it out. You can get a free 30 day trial, so there really is no excuse to not start learning now.