I’m a software developer based in London and Sevenoaks, UK, where I’m currently creating iOS and macOS apps with Swift, SwiftUI and UIKit. I have over 35 years experience in the industry in many different roles and with a range of technologies.


My Apps

 

Writerly

Think like a Writer

Want to write? Start thinking like a writer! Writerly will show you how.

Writerly is for everyone interested in creative writing. From first steps to advanced topics, Writerly is loaded with advice, exercises, ideas and prompts to help you develop as a writer, whether you’re a beginner or a seasoned pro. And our unique and addictive ‘generators’ will inspire and delight you!

Have fun while you learn tried and tested techniques to unlock your creativity. It’s like having your own personal creative writing tutor!

Writerly includes a huge amount of unique content that has been extensively tested and trialled by professional authors and creative writing students. So have fun, get inspired and get writing!

Developed by an award-winning team

Writerly is developed by a team which includes:

  • A writer whose work has won multiple awards nationally and internationally. She has over fifteen years’ experience teaching creative writing in schools, adult education institutes and universities, and twenty years as a literary consultant whose clients have gone on to secure agents, see their work published, staged and winning awards

  • A prize-winning author whose novels have been published in the USA, UK, Germany, France, Japan and more.

  • A software developer with over 35 years of professional experience in the software industry

Originally developed for iOS in Swift 5 and UIKit, Writerly has been completely re-written from scratch for iOS, iPadOS and macOS using SwiftUI.


Retreev

When you really need a ride home

Retreev was developed in reponse to a simple, but common problem: how to quickly and easily request a ride home from a parent or friend and let them know exactly where you are!

The app displays a map showing your current location and postal address. Tapping a contact zooms the map to show the location of both you and the contact, as well as the distance between you. Tapping the “retreev” button generates an SMS message that includes a predefined (editable) message, your current location address and an annotated map showing the location and distance.

The app was developed in Swift and UIKit and uses the Contacts framework to import user-selected contact details and CoreLocation to Geocode (get lat/long from an address) and Reverse Geocode (get address from lat/long).


Other Projects

 

StoreHelper (In-App Purchases)

Implementing and testing In-App Purchases with StoreKit2 in Xcode 13, Swift 5.5, iOS 15 and macOS 12.

Dropbox File Explorer

A Dropbox API app created with Xcode 12 and SwiftUI that runs on iOS and macOS clients.

MyGitHub

A SwiftUI app that uses OAuth2 to authenticate a user on GitHub and allows viewing of the user's repos and profile.

SwiftUI-KeyboardOverlapDemo

Adding support for avoiding the on-screen keyboard hiding important UI in SwiftUI apps.

SwiftUIAPOD

A simple SwiftUI Astronomy Picture of the Day demo app.

SwiftUINavDemo

SwiftUI navigation demo. Shows navigation between multiple levels of views with a single NavigationView (avoiding multiple nav bars), and sharing data between views using @State, @StateObject and @EnvironmentObject.

IAPDemo

Implementing and testing In-App Purchases in Xcode 12 and iOS 14, including local receipt validation.

IAPHelper

In-App Purchase Helper solution, including support for on-device receipt validation.

HelloIAPWorld

Minimal In-App Purchase example for iOS 14 and Xcode 12.

PixabayCollections

Programmatic UICollectionView with a Diffable Data Source consuming REST API.

Sign in with Apple

How to use the new Sign in with Apple service in a UIKit and iOS 13 app.

Speech Dictation and Transcription Demo

An iOS speech recognition demo that transcribes live speech.

Dark Mode. Updating an existing App Store app

Preparing for iOS 13 Dark Mode.

iOS 13 Modal Styles Demo

Exploring the differences between presentViewController and pushViewController with new iOS 13 modal presentation styles.

Context Menu Demo

How to display a context menu in iOS 13.

Image API Alamofire

Alamofire Pixabay Image API Demo with Swift Package Manager.

SwiftUI and Combine Notifications

Using SwiftUI and Combine extensions to NotificationCenter.

SwiftUI Hosting UIKit Views

How to use UIKit UIView and UIViewController in SwiftUI.

Hosting SwiftUI Views in UIKit

Using UIHostingController to display a SwiftUI View in a UIKit app.

SwiftUI State

Using state and binding to create a UI that responds to user input to modify internal state.

SwiftUI Navigation Bar

How to select either large navigation bar (the default) or a small, inline bar.

SwiftUI List

Creating an editable list with SwiftUI with support for navigation.

SwiftUI Image API

Using SwiftUI to consume REST API with image data.

SwiftUI Alert

Using SwiftUI to display alerts, actionsheets and popovers.

Hangman Game

Simple, non-graphical Hangman game.

Siri Shortcuts. Show Random Color Demo

Demo of Siri shortcuts for iOS 12 using Intents.

Siri Shortcuts. PicSearch

Demo of Siri shortcuts for iOS 12 using NSUserActivity.

Pixabay Image API Demo

App that requests image data using the Pixabay API.

Calendar Demo

Demo for getting events from iOS calendars.