How I added a Siri Shortcut to an existing app in under an hour* using the open source framework Flint

I take you through the real journey I took to add Flint to an existing app, so that I could add Siri Shortcuts and get the app released in the store. Read more →

The Making of Soundproof, part 1: iPhone 6 made our huge play button look tiny

Some background: the first release of our [music practice Soundproof](https://soundproofapp.com) was “Waiting for Review” in the last week of September when my iPhone 6 arrived. I ran the app on the iPhone 6 and of course got the stretched up iPhone 5 UI. It was OK, but a bit “Duplo” shall we say. Also our very subtle background gradient was being stretched. Nobody else would notice but… there is pride to consider. Read more →

UITableView move handles not showing?

Today, I had to implement UITableView row re-ordering for the first time. The cells had showsReorderControl set to YES, and my delegate was implementing tableView:canMoveRowAtIndexPath: returning YES and still the handles would not show when tableView.editing was set to YES.

The solution? Your dataSource must also implement tableView:moveRowAtIndexPath:toIndexPath: for the handles to show, even if it does nothing – although it must do something to have any lasting effect on your model. The docs do state this but it is easily missed.

Debugging tools for OpenGL in XCode

My first iOS app has some UI elements that use OpenGL. It’s been interesting learning to optimise this particular part of the app for 60fps (60 frames per second) rendering. You hear 60fps being talked … Read more →

Why is my button triggering the wrong gesture?

I had a fun little problem in my work-in-progress iOS app recently. The app recognises a pan gesture on the main view, but also has some buttons as subviews of the main view. Think a … Read more →