William Boles

William has been an iOS developer since 2010, after all these years he just hopes that the String API will stop changing now.

  • 94 posts

Step-by-step Core Data Migration

November 30, 2017

This post is now out-of-date, please instead see: "Progressive Core Data Migration". People really care about their possessions. Nowhere do you see this more than on public transport. It's not unusual to see bags occupying seats while people stand. As a Brit, we have developed a powerful non-verbal based form of communication to indicate that you want someone to move their bag - maybe a slight shuffle, eye contact with other standing commuters and tutting. Even with these clear signs some people…

Roadblocks to repaying tech debt

August 30, 2017

I've found that talking about tech debt is a favourite subject among developers (especially if the developer responsible for introducing that tech debt is no longer on the project 😉). However, often talk is all that happens. As with any potentially ambiguous and daunting task it is easier to talk about it than to actually do it. In this post I want to explore some of the roadblocks that can come up during these tech debt discussions, what the motivations for those roadblocks could be and how we can overco…

Casting my vote in the great CI election

July 09, 2017

Last year we started using Swift for any new features that we were developing at Memrise. Swift has a lot of great language features however the tooling support still leaves a lot to be desired and by introducing Swift into our existing Objective-C project we seen a significant increase in our build times. A quick search on Google brought up a lot of articles and talks about workarounds to try and reduce compilation time (an especially good talk is by Uber). We implemented a lot of the recommendations and d…

SwiftLint easing conflict

April 30, 2017

Anyone who has ever worked in a team knows only too well that there is no such thing as one true way of formatting code. Everyone has their own way of formatting and provided it compiles, all of those formatting choices are valid. So when it comes to formatting, it really is a personal choice based on some aesthetic. Often one of the first questions I ask when joining a new team is: "Can I see the coding style guide?" However, even when there is a style guide and I've read and followed it, I wi…

Coincidental duplication costs really add up

April 26, 2017

When working in a team, different groups of people within that team have different concerns - developers, tester, designers, product, etc. These different concerns mean that different members of the team approach issues in ways that address their concerns. When working well, this approach allows people to specialise and ensure that a range of views is heard when discussing new functionality. However, it can also lead to a situation where the different groups assume that they have a shared mental mapping of…

Firefighting developers

April 21, 2017

Firefighters are portrayed, quite rightly, in our society as heroes. They courageous run into dangerous situations and save people. However, let's think about why we need firefighters. We need firefighters because our man-made environment has been built up over hundreds (or even thousands) of years, by many different hands with differing ideas on what's important. This legacy of inconsistent design, coupled with our differing attitudes to fire safety has meant that we need a professional fire service in co…