Storyboards, Nibs or Code - Anatomy of an App.

I have seen a number of excellent posts that explain the differences between storyboards, nibs and code for creating UIs. I have also seen (recently) people asking "should I only use nibs?" and exclaiming "I only ever use code to write my apps". I thought it was about time to add my own thoughts and […]

It's Not Working or How to help your tech support help you.

I've worked as a developer (on various different languages and systems) over the past 6 years. Before that I worked in tech support and help desk support for a couple of companies. Something that has acted as a constant across this entire time are the three words "it's not working". As a developer/tech support person, […]

Using a static UITableView as a layout device

The problem It wasn't long after I started iOS development that I realised that UITableView can be used not just as a way of displaying a list of items but also as a way of managing a vertical layout of almost any interface. Especially when the height of the interface is variable and needs to […]

Controlling "animations" with a UIScrollView

This is something that I've done a number of times myself but also something that I see fairly regularly popping up on Stack Overflow. The idea is to change something based on the content offset of a scroll view. Example of changing the background colour based on scroll position. I wouldn't actually do this in […]

Animate with springs!

Today I was having a look at some of the different UIView animation block methods and I noticed one that I'd never seen before. I read the docs and it is an amazing little function added for iOS 7. The function (which is a bit of a mouthful as usual) is... [UIView animateWithDuration:(CGFloat)duration delay:(CGFloat)delay usingSpringWithDamping:(CGFloat)damping […]

Why I wish I'd never used Magical Record

The first time I used Core Data I thought it was amazing. However, I got it all very wrong. I had "helper" functions in the App Delegate, I didn't use any relationships in the data model, etc... All very wrong. Then I learned more about it and did it all myself again, this time it […]

NSCalendar isDate:equalToDate:toUnitGranularity:

During the beta releases of iOS 7 there were several mentions of a couple of new functions on NSCalendar. - (BOOL)isDate:(NSDate *)date1 equalToDate:(NSDate *)date2 toUnitGranularity:(NSCalendarUnit)granularity; - (NSComparisonResult)compareDate:(NSDate *)date1 toDate:(NSDate *)date2 toUnitGranularity:(NSCalendarUnit)granularity; When I first saw these it was awesome. It makes comparing dates a hell of a lot easier and puts a lot of maths […]