Swift and XCode deep dive

Patchhero is the missing screen for your Sequential OB6 or Sequential Prophet 6 synthesiser.

Patchhero is an iPhone app available now on the App Store. It was released in 2022 and was received enthusiastically by its users. It reached number 55 in Apple’s chart for paid music apps.

It was an opportunity to do a deep-dive into Swift, the multi-paradigm, compiled programming language that powers all of Apple’s devices. Having no prior experience I spent a lot of time on Udemy and StackOverflow. Swift is a rich and expressive language that is strongly typed. Add XCode to the mix and the whole experience was positively luxurious compared to the sprawling ecosystem that is modern JavaScript.

As well as the programming, I did the design, UI, UX, documentation, support, public beta-testing, microsite and marketing. Everything, in other words. It was an exhausting but highly rewarding project.

Patchhero is the missing screen for your Sequential OB6 or Sequential Prophet 6 synthesiser. These contemporary instruments are inspired by vintage counterparts, namely the Oberheim OB series of the 1980s (think Van Halen’s Jump) and the Sequential Circuits Prophet 5 of 1978 (think The Human League’s Don’t You Want Me?).

Consistent with this heritage, both instruments have only simple numerical displays. Hidden in the data for the sounds (or patches) are names and categories. The numerical displays are unable to show this information.

Many musicians find descriptive patch names more memorable and inspiring than numbers, and when auditioning sounds it’s helpful to organise them by category. The app allows you to navigate, name, categorise, and filter patches; features that are otherwise unavailable on the instruments themselves.

Technical skills

Core skills are those that I use every day, or at least frequently. Legacy skills are those that are deprecated or that I rarely use and my experience is likely to be a few versions behind.
  • JavaScript
  • React, JSX
  • CSS3 and SASS
  • Bootstrap
  • HTML5
  • Adobe CS
  • Sketch, Zeplin, Figma
  • GIT cli, GitHub, SourceTree
  • Webpack, Gulp, Grunt
  • JIRA, Confluence
  • Agile, SCRUM
  • Visual Studio Code, Sublime Text, WebStorm
  • StackOverflow
  • AngularJS
  • jQuery
  • Foundation
  • Adobe Flash
  • ActionScript
Deep dives
Deep dives are where I’ve completed, or contributed to, a significant personal or professional project, but would not consider myself to be up to commercial standards.
  • iOS, Swift, XCode
  • C#, Unity
  • C#, .NET
  • Java
  • Vue.js
  • Node.js
  • PHP, Laravel
  • Python
  • Arduino
  • Processing
  • C++
  • Zilog Z80 assembler
  • Motorola 68000 series assembler
  • Multiple BASIC compilers
  • Pascal
  • MAX
  • FMOD

Non-technical skills

  • Project management
  • Can work in teams or independently
  • Writing briefs
  • Documentation
  • Wireframing
  • Sympathetic to financial, business, and technical constraints
  • High standard of written English
  • Creative writing
  • Able to present technical subjects in simple terms
  • Able to communicate appropriately with clients
  • Able to communicate effectively with all roles found in a typical production environment
Personal qualities
  • Calm, friendly, and approachable
  • Solution-focused, can-do attitude
  • Willing to go outside my comfort zone
  • Curiosity
  • Eye for detail
  • Eagerness to learn new things
  • Fast learner