MKAnnotationViews and AutoLayout

Having just developed a plist-based design framework that works in Interface Builder, I’m more interested than ever in using xibs and storyboards to design my views.

I also like using AutoLayout. There are significant advantages when it comes to things like labels that make it so much easier to deal with than manually setting frames everywhere in code. Things like Dynamic Type, accessibility, and localisation all become easier and there’s less room for error.

There are some things that do become more complicated with AutoLayout (mostly transforms) but there are well established workarounds for most of these.

I was recently designing a new app that involved using MapKit and I wanted to use AutoLayout to design a subclsss of MKAnnotationView but this isn’t entirely straightforward.

Continue reading “MKAnnotationViews and AutoLayout”

Getting the Nintendo Switch Connected Abroad

A photo of the Nintendo Switch in a bag with a copy of Zelda Breath of the Wild

I had a lot of trouble getting my Nintendo Switch to connect to the internet while staying at our otherwise lovely villa here in Bali. While trying to join a network it would give the “registration is required to use this network” warning, then launch the browser to try to show me the registration page.

Except instead of a registration page, it would just show the default page. This means that no registration was actually required and the Switch was online but, because it hadn’t passed registration, it thought it wasn’t and no services would work.

Continue reading “Getting the Nintendo Switch Connected Abroad”

Controlling Interface Builder with Plists

I have an appearance manager that reads styles from a plist file and applies then throughout the app through the use of the appearance proxy and through notifications to various custom subclasses of the standard UIKit views and controls.

This works great and allows for of a lot of easy features like different coloured themes or dark modes. The major downside right now is that none of the changes to the plist are reflected in Storyboards or Xib files.

Continue reading “Controlling Interface Builder with Plists”


“We’re thinking of selling the house.”

William beamed at me with his disarming smile. He was still handsome at 40, with long salt and pepper hair, but I turned away from him to process what he had just said. 

The three of us were sat on beanbags in their treehouse, drinking tea from a tea set laid out on the floor between us. Betty was flicking through a magazine propped up on her lap with one hand and holding a cup in the other. She was striking in the soft afternoon light, with short cropped hair and an easy smile. They made a beautiful couple. 

Continue reading “Treehouse”