All posts

Latest.
Everything, newest first.

Swift on a chip — Part 1
IoT

Swift on a chip — Part 1

First Embedded Swift project. Tilt an accelerometer, draw the result on an OLED, write the wrappers from scratch.

June 2026

Article ·Quick Watch
artifact image →
IoT

Swift on a chip — Part 2

Picking the project back up: pushing the wrappers further and finding where iOS-Swift intuition stops working.

June 2026

Article ·Quick Watch
artifact image →
IoT

Flappy Swift

Building a working arcade clone in under 500 lines of Swift, with one accelerometer and a 128×64 OLED.

June 2026

Article ·Quick Watch
Find a Good Place
Web

Find a Good Place

A side project that scores and compares UK areas on what you care about — and what I learned shipping it end to end.

June 2026

Article
IoT

Pong

A second arcade clone — two paddles, one ball, and the column-window fix that finally cracked the OLED.

May 2026

Article
Coin Flip Game
Mobile

Coin Flip Game

A small SwiftUI coin-flip game from end to end.

December 2021

Quick Watch
Class Inheritance vs Protocols
Mobile

Class Inheritance vs Protocols

When to reach for class inheritance and when to reach for protocols in Swift.

December 2021

Quick Watch
Easy Machine Learning on iOS
Mobile

Easy Machine Learning on iOS

Recognise foods with CoreML in around a hundred lines of Swift.

August 2021

Quick Watch
Custom API Calls
Mobile

Custom API Calls

A step-by-step walkthrough of building custom networking calls in SwiftUI.

November 2020

Quick Watch
WidgetKit Intro
Mobile

WidgetKit Intro

An introduction to WidgetKit and the code structure behind home-screen widgets.

October 2020

Quick Watch
Fetching JSON from an API
Mobile

Fetching JSON from an API

Decode JSON into Swift types and render it in a SwiftUI view.

October 2020

Quick Watch
Simple Core Data
Mobile

Simple Core Data

The minimum amount of Core Data plumbing needed to persist data in SwiftUI.

2020

Quick Watch
HTML String Rendering
Mobile

HTML String Rendering

Rendering HTML strings inside a SwiftUI view.

2020

Quick Watch
Helicopter Game — Part 2
Mobile

Helicopter Game — Part 2

Finishing the helicopter game: collisions, scoring, and game over.

August 2020

Quick Watch
Drawing the SpaceX Logo with Paths
Mobile

Drawing the SpaceX Logo with Paths

Vector drawing in SwiftUI: recreating the SpaceX logo using Path.

2020

Quick Watch
Spaceship Docking to the ISS
Mobile

Spaceship Docking to the ISS

A small iOS game in SwiftUI inspired by SpaceX docking sequences.

2020

Quick Watch
Object Collision Detection
Mobile

Object Collision Detection

A simple geometric collision-detection routine for SwiftUI games.

2020

Quick Watch
Horizontal Page Indicator
Mobile

Horizontal Page Indicator

A horizontally-scrolling page indicator component for SwiftUI.

2020

Quick Watch
Creating Custom Colors
Mobile

Creating Custom Colors

Defining custom colors and using them consistently across a SwiftUI app.

2020

Quick Watch
Core Data CRUD App
Mobile

Core Data CRUD App

A small CRUD app built on Core Data and SwiftUI, end to end.

July 2020

Quick Watch
State & Binding
Mobile

State & Binding

How @State and @Binding work in SwiftUI, and when to reach for each.

July 2020

Quick Watch
Insert Element Mid-ForEach
Mobile

Insert Element Mid-ForEach

Inserting elements into the middle of a SwiftUI ForEach loop without breaking layout.

2020

Quick Watch
Simple Loading Animation
Mobile

Simple Loading Animation

A clean loading animation built with native SwiftUI animation primitives.

2020

Quick Watch
Helicopter Game — Part 1
Mobile

Helicopter Game — Part 1

Building a classic helicopter arcade game in SwiftUI. Part one of two.

July 2020

Quick Watch
Drag Gesture
Mobile

Drag Gesture

Handling drag gestures in SwiftUI.

July 2020

Quick Watch
Tap Gesture
Mobile

Tap Gesture

The basics of tap gesture recognition in SwiftUI.

July 2020

Quick Watch
Random Colors
Mobile

Random Colors

Generating random colors at runtime in SwiftUI.

July 2020

Quick Watch

Don't miss the next one.

Subscribers get new videos before they go public, early looks at the hardware I'm building with, and first dibs on giveaways and launches when there's something to ship.