Along with JSON it looks like creating a new layout engine or wrapper is the biggest iOS industry, so why don't I do everyone a favour and add to the ever increasing bucket of unnecessary layout libraries?Read More
In my last post, where I refactored a typical download-and-parse workflow, I said this about the downloader:
"There is still some work to be done to make the downloader testable, though"
I probably didn't write that as correctly as I should. It's not that I should have written the downloader to be more testable, I should have written a test-friendly downloading pattern.Read More
I originally wrote this on the ios-developers slack #code-review channel, and a few people suggested I make it a blog post. I wasn't really interested in doing that, code reviews aren't really a subject I write about. But they are super important, so here goes.Read More
When setting up Firebase in your app you have to call an API to configure it. It should be done once, at launch time, so you know where this is headed, you put it in the AppDelegate. Or at least that's what you're told to do.Read More
I'm a big believer in using dynamic type as much as possible. However, the API for dynamic type preferredFont(forTextStyle style: UIFontTextStyle) is a class method on UIFont and only returns the system text (SF) font. This is not so helpful when using custom fonts in your app.Read More
As a developer, once you start dealing with dates you quickly realise that anyone who is comfortable working with them is truly a master of the Dark Arts. Timezones, formatting, comparing, incrementing, isolating individual components and a whole lot of other headaches abound.Read More
I got a design requirement recently for a button to be placed in the bottom corner of the screen and for it to be the same distance from the trailing margin as the bottom. The work turned out to be more complicated than I thought.Read More
What do romantic comedies and software development have in common?
But while the rom-com has a fascination with ensuring that the coupling has occurred, and that it will be everlasting (until the sequel) software runs away screaming at the very idea. But how far can we take that principle?Read More