This is a test page for checking iOS system supported urls. It is a work in progress, I will continue to add links as I need them. Unfortunately wordpress.com, who host this page, suppress a few common url schemes including sms: and telprompt: so I’ll need to host elsewhere before it can be made comprehensive. Continue reading →
Code documentation, it can be tedious to write and maintain, what’s a developer to do?
I was asked for my advice on documentation today and realised just how much my approach had changed over the years. In my eager early days of development I thought the mark of a true professional was someone who in addition to taking the time to write quality code, also took the time to document it beautifully. I documented classes and methods religiously and sprinkled my code with helpful inline comments. These days I take a very different approach. Continue reading →
I use Charles proxy to debug my network traffic. This requires setting the device or emulator proxy to point to my local ip address where Charles is running. Charles can then intercept the device’s network traffic. This post outlines how to set the proxy for android devices and emulators.
I gave a talk on Apple’s new programming language Swift at Tech Meetup in Edinburgh yesterday. These are my slides. All part of my plan to get more involved with the brilliant tech community out there. Enjoy!
Javaassertions are wonderful things which help define the desired behaviour of an application. For example the following assertion states that the variable number should be non-negative:
assert ( number >= 0)
Unlike exceptions, which can be caught and handled gracefully, an assertion failure indicates that something has gone terribly wrong within the application and causes it to exit. Thus, in the above example, if assertions are switched on and number is equal to -5 the application will crash. Continue reading →
As time goes on in the life of a software project, the codebase grows and complexity increases. This along with hacky bug fixes, tacked on functionality and quick improvements can turn a project into a large multi-functional, inter-meshed mess.
Needles to say this makes feature tracking, versioning, bug isolation and maintenance difficult and limits code reuse potential. While it is best if planning and good design practices protect a project from growing into such a state, the need for rapid development is sometimes more pressing than the need to get design details perfect. Continue reading →