Recently I was put in the position of having to handle the merging of two iOS teams working on two different apps into the one larger development team working on one app. I was given this position as I was the Team Lead of one of the teams and the Head of iOS for both of them. This post is about tha…
For some time now I have been thinking about how best to use branching on my projects to ease my overhead and allow for all the possible states that an iOS app can be in during development. I've been using the following branching model for just over a year now and I'm finding it works very w…
As developers we read all the time about the benefits of organising our projects into classes that have a single well-defined purpose however we tend not to think this way about our apps. This results in our apps directly doing more than they often have to. A Core or Common project is where some cod…
Cohesion is important for your application. Each unit of work should have a clear purpose and clear area of responsibility, this is known as the Single Responsibility Principle [https://en.wikipedia.org/wiki/Single_responsibility_principle] (SRP). If you find that you are working on a method/class t…
Dependence injection (DI) is a useful technique to have in your unit testing toolbox. It's were we take implicit dependencies that our method/class rely on and make those dependencies explicit. It's especially useful when writing unit tests as it allows us to avoid using the black magic of m…
If you have ever written a unit test, chance has it that you used either black or white box testing techniques to determine what that unit test was testing. In this post I want to explore both these techniques and look at when we should be using them. Black-box techniques Black-box testing is wer…
I find it surprisingly hard to get new developers to really engage with unit testing but then when I think back to when I had just graduated and what I thought about unit testing: I'm here to write code, not to test! I shouldn't be surprised. Unit testing works slightly counter intuitivel…
"appledoc is command line tool that helps Objective-C developers generate Apple-like source code documentation from specially formatted source code comments. It's designed to take as readable source code comments as possible for the input and use comments as well as surrounding source code…
iOS hasn't always been the most unit-test friendly environment, but since Xcode 4 this has changed - a lot of the setup has now been automated away for us. These improvements make adding unit tests to your application easier than ever. However, the question remains: What should be tested? Wha…