Mobile Software Development

We develop software for iOS iPhones, iPads, and Mac computers.

Some of our iOS applications are:

Beat-It Drums

Tools Used: iOS, Swift, Swift UI, Combine

John was retained by drumming expert Bob Everett to create an iOS app for teaching drumming. If his name sounds familiar, it may be because his son, Shawn Everett, is a six time Grammy award winner as the recording engineer for groups such as The Killers, Alabama Shakes, and The War on Drugs.

Bob's idea was to replace traditional drum notation with something more intuitive: a bit like a video game. Vertical lines represent items in a drum kit. Symbols on those lines represent ways of striking the drum kit item (for example, a rim shot, or a symbol crash).

The drum score drops down the screen at the song's tempo, and you make each sound at the moment when its symbol hits the "play line". The user can pick which lesson to work on, and what tempo to play at. Icons representing the player's hands and feet flash when they are to be used.

Dr. Heerema, who has many years of experience in iOS app development, used the declarative Swift UI language to build the user interface, and Swift for the application itself. The drum sounds, recorded at the Banff Centre for the Performing Arts, are played with sub-millisecond timing precision. The Combine reactive framework is used to send event messages to various components of the user interface, such as the hand and foot icons.

A video of the App in action is shown below:



For more information about this App, please visit our client's website, or the App Store.


Visual Music

Tools Used: iOS, Swift, Objective C, SIMD vector processing.

Developed iOS software to perform complex analysis of audio signals, and show the results in a way that intuitively helps non-technical musicians to improve their playing and singing skills.

The joint time-frequency digital signal processing algorithms developed during John’s doctoral research are currently the best in the world for perceptual pitch analysis. The algorithms are highly optimized for mobile devices, and the user interface is intuitive and responsive.

Software development started with Objective C, but when the Swift language was announced in 2014, software development switched to the new Swift language, using the first beta version available to developers. The language has changed significantly over the years, so the code base has continuously evolved to take advantage of new Swift and iOS features.

The software is primarily written in Swift, with some bridging to Objective C for features not available in Swift. It also makes extensive use of vector-optimized assembly language libraries for data analysis function.

Most of the user interface is developed using storyboards and flexible layout rules that allow it to adapt to different device sizes and orientations. Custom user interface view controllers are used for more advanced user interface features. The user interface adapts to various device sizes and orientations.

The application makes use of an on-device database to provide persistent storage and user interface continuity. The application provides sophisticated graphing with support for navigation gestures such as pinch and zoom.

In keeping with the principals of test-driven-development, a set of automated unit tests was developed in concert with the main application. These unit tests can be run to confirm correct program operation after refactoring operations.

The tools and techniques used for this software are applicable to a wide variety of mobile applications, including advanced financial analysis.


User Survey

Tools Used: iOS, Swift.

Developed an iOS application that presents a series of tests, and with the user’s informed consent, sends the results to a central location for analysis. The user responds to each task by moving sliders and tapping buttons.

The tools and techniques developed for this project are applicable to a variety of user experience surveys.


Game Development

Client: University of Calgary, US Department of Defence.

Tools Used: OpenGL, Game Engine development.

Our “Booze Cruise” driving game received national attention for it’s entertaining approach to educating drivers about the effects of alcohol on driving. We received a first place award for it at the FuturePlay 2007 competition, and it was later purchased by the U.S. Department of Defense.

The player navigates a maze under the simulated influence of alcohol. Scores are awarded for completion speed, and deducted for driving errors.

For more details, please refer to Dr. Heerema's personal resume.