top of page

Shuffle Bingo

Shuffle Bingo

What I Learnt

○ Apple Music API
○ Developer Tokens & Keys
○ Media Player
○ PDFKit
○ CoreGraphics
○ CoreData
○ Accessibility
○ SwiftUI Animations & Modifiers
○ Client Provisioning Profile
○ Development Agreement

Latest Release

March 2021

AppStore Category

Music Game


2021 John Holmes

About the App

Another personal milestone for me, Shuffle Bingo was the first application I had built for a client. It was of course not without technical hurdles (Provisioning Profiles comes immediately to mind), but on the whole, I was extremely happy with the outcome of the finished product and the new relationship with the client.

From early discussions and concept designs, it was clear that music was going to be the key to this app, so I began by developing the Apple Music API interaction. This proved more challenging than APIs I had used before, having the addition of tokens, user authentication, regional store IDs and configurations such as search terms and result types (e.g. songs, albums, playlists).

However, once I had everything decoded into custom models and MPMediaItems, integrating the UI to search for Media Library and Apple Music tracks was straight forward. The data structure I had chosen even allowed me to save games to persistent CoreData storage with moderate ease.

Next on the list was the auto-generating PDF, as you cannot play bingo without bingo cards! Thanks to a helpful PDFView tutorial by Ray Wenderlich, learning the framework was pain-free and building the custom designs using the CoreGraphics framework was great fun.

With a few rounds of refactoring the code into repeatable methods, the outcome of the PDF generator was a quick loading, randomising algorithm with the flexibility to allow the user to select from 3 bingo card sizes and a player count between 1 and 100.

The last screen to develop was the Music Player, which had me revisiting my data (and CoreData) model to add new properties; required for the logic to calculate the start and end time for the 30- and 60-second audio snippets. Once the UI was built, tested and notifications added to watch for changes to the MediaPlayer state, the app was almost complete.

Final touches included the onboarding UI, haptics, animations and accessibility features before handing the project back over to the client to test and publish on the App Store.

bottom of page