Subdivide — Programmable iOS metronome

Tap Five Development

iOS Developer
Product Designer
UI Designer
Figma
Swift
SwiftUI

What is it?

Subdivide is a programmable metronome app for iOS. We taught marching band and percussion at both high school and professional levels for many years. After using the industry-standard Boss DB-90, we started brainstorming what an ideal metronome would be. Not just for solo practice, but also for full ensemble rehearsals.
Subdivide began several years ago as an Android app. Through many iterations and testing at our rehearsals, we landed on a core set of features that led to a noticeable improvement in the efficiency and flow of our marching band and drumline practices. We were able to eliminate the clunky hardware of the DB-90 while adding programmable tracks that allowed us to press "play" once and have all of the tempo, time signature, and subdivision changes for our entire production adjust and play automatically.
Fast-forward a few years and we created Subdivide for iOS. After years of experience working in software engineering and design, we were able to expand on our original vision and build an app with performance and polish that we're proud of. We have yet to find another metronome--physical hardware or app--that does everything Subdivide can do while also being clean and easy to use. If you find one, let us know. We'd like to check it out.

Technical details

Subdivide is a native iOS app written in Swift. It makes use of the latest frameworks and standards from Apple: SwiftUI for the interface, SwiftData for local storage, and Combine for handling data flow and events.
At its core, Subdivide dynamically generates audio based on the settings that are selected by the user. Using AVAudioEngine and some fancy math, we're able to generate various tones and sounds to create a stable, consistent beat to keep time while practicing an instrument.
To better support group practice and rehearsals, users can share their metronome tracks from within the app. This is facilitated by a backend service written in Kotlin using the Ktor framework. In the app, tapping "share" in the track player brings up a QR code and a share link that's generated by the backend. If another Subdivide user scans the QR code or taps the link, the backend will fetch the shared track and display a preview in the app where it can be saved for immediate use or further editing.
Tracks and metronome setting presets are automatically backed up using iCloud and CloudKit, ensuring data isn't lost and allowing for syncing between multiple devices.
Track sharing

Design process

The design of Subdivide was rooted in the principles of simplicity, functionality, and seamless integration into the iOS ecosystem. Our goal was to make the app feel immediately familiar to iOS users while introducing thoughtful, custom features that elevate the user experience.
We started by leveraging Apple's native components and styles to ensure Subdivide adhered to platform standards, offering a clean and intuitive interface. We built for modern iOS features like dark mode, dynamic type, and tinted icons to make it a first-class iOS app. At the same time, we carefully evaluated where custom elements could enhance functionality, such as creating a haptic tempo dial for precise adjustments. These custom interactions were designed to maintain a native feel, complemented by fine-tuned animations and haptics to make them satisfying to use.
Tempo dial
User feedback was instrumental in shaping the app. Through iterative testing with musicians and educators, we refined the interface to meet the needs of both individual users and group rehearsal leaders. This collaborative process helped us balance robust functionality with ease of use, resulting in a design that's as polished as it is practical. We also incorporated a bit of joy into the app, including statistics tracking total metronome beats played and customizable appearance settings.
All designs were created in Figma, utilizing Apple’s official design libraries and augmenting them with custom components when needed. This approach allowed us to maintain consistency across the app while achieving the tailored experience our users expect. Subdivide’s design reflects our commitment to delivering a professional-grade tool that looks and feels effortless to use.
Partner With Tap Five
View Services

More Projects by Tap Five