:::: MENU ::::
Browsing posts in: Development

Recording iPad Screencast on your PC with AirServer

I am currently recording a kids’ course for Pluralsight. It is a great experience to get a new generation interested in technology and in this particular case it is programming. Teaching kids is not something I have a great deal of experience with, although I have worked with plenty of kids in the past as a tutor, mentor and adult learning-partner.

In my opinion, kids respond much better to visuals, and Death-by-PowerPoint is very easy to cause quickly. I settled on using an iPad (which is shock and horror to my regular readers), as it is a device many kids have and there is a lot of educational apps for it.

Here is the problem: How do I record the screen of an iPad, when all I have is a PC, some USB cables and a wireless network? I had lots of ideas

  • Perhaps I could record the screen with a video camera?
  • Perhaps there is an iPad emulator I could use?
  • Perhaps I could borrow a Mac, a Mac TV and 184 other proprietary devices to build my own Rube Goldberg machine?

I really didn’t know. And my whole course really depended on this working. Continue Reading

Ten reasons to be a Windows Phone Developer


One of my favourite parts of being a developer is the DVLUP portal and network. Essentially it is a gamification initiative to provide encouragement and incentive to developers to build and enhance apps with specific features. As a developer you earn experience points (XP), which you can then trade in for really cool stuff like device, earphones or design reviews and licenses for tools. It really gives you an extra push to get your apps done by a certain date to get that Lumia 1020 or an hour in the hands of a designer that can help you get the right workflow and layout.

DVLUP is free to join and fully integrates with your Microsoft account as well.

DVLUP Continue Reading

5 Tips to Improve User Efficiency

This post was first published on blog.dvlup.com

I have developed a few apps in my time, but nowhere near as many as I would like nor have ideas for. There is always more apps to build and my mind is never short of projects to do next. However, I endeavour to build apps that are useful, well tested, solves a worthwhile problem and I can be proud of. Part of that process is to make sure that the app is as efficient for the user as possible. In particular I keep the following five areas in mind when developing. If the users of your app can do what they need to more efficiently, they are much more likely to continue using your app and recommend it to others as well as giving it favourable reviews.

Continue Reading

Win a Nokia 625 and Build an Awesome Windows Phone App

[Update] The deadline for submission in the competition is over. The winners will be announced soon.

I love the Windows Phone eco-system and I truly believe it is the most awesomest place to be as a developer. And that is why I want to give something back to the community. I have a Nokia 625 to give away to one passionate and ambitious developer that wants to get into Windows Phone development. Nokia 625 What I expect from you:

  • Keen and ambitious attitude. If you get selected I expect you put in the effort to design and develop your first Windows Phone app.
  • No prior published Windows Phone apps.
  • A great, original idea (describe below).

What you get from me:

  • Personal mentoring and help throughout the development of your app.
  • One new Nokia 625 (Australian edition).
  • Help to market your app.
  • Tips and pointers on building the best app possible.

The final day for entries is Sunday 9 March 2013. Disclaimer: I pick the winner at my complete discretion. It is my decision entirely. I will post the Nokia Lumia 625 with the cheapest and safest service for the winner’s destination (no on ever said Windows Phone development would make you a millionaire). Fill in the form and let me hear about your brilliant ideas (multiple submissions are welcome). [formidable id=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.