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.