I created an app for Swift Student Challenge 2024: a post-mortem

Some afterthoughts and reflections to conclude this short but exciting journey.

--

Background

I spent a significant chunk of my childhood in rural Taiwan, in a seemingly distant past where I had no access to electronics or even a high-quality television set. Instead, outside of home was where the fun was. I could always recall my grandpa holding a firm grip on my hand as we jostled amongst crowds of other towering adults, fighting our way to get a clearer glimpse of a story unfolding on a neon-lit stage. As the deafening sound of drums and cymbals played alongside the firecrackers, two pale, porcelain puppets moved out from the shadows at the whim of the masterful gestures of the puppet master. I found myself lost in the momentary fantasy, unable to forget those moments even as I grew up.

Taiwanese Glove puppetry (布袋戲) has been a magical experience for me as a child. Combining that with my passion for drawing and programming, I wanted to share its beauty with the world through my own means for the Swift Student Challenge 2024.

Bo-dei demo video

Creating Bo-dei (布袋)

Bo-dei is a small app developed with Swift Playgrounds on the iPad that allowed users to control the movements of a “Glove Puppet” to the sound of cymbals and drums. SpriteKit allowed for joints to be created between puppet parts and simulated effects such as restricted rotation and gravity.

Tap around to move the puppet, with puppet physics!

Users were also able to activate different stage effects such as stagelights, fireworks and moving neon signs using the Speech library recognising

Tap on the mic icon to start detecting traditional mandarin phrases and activating stage fx!

To learn more about about the brief history of Taiwanese Glove puppetry, users can also tap on “Learn” to move away from the stage.

Tap on “Learn” to find out more!
Historical nuggets of Taiwanese Glove Puppetry

Reflections

  1. I placed a heavy emphasis on the functionality of the app but neglected several factors such as UI/UX, code tidying and app performance. Allocate time to keep these in check!
  2. After the announcement of the Swift Student Challenge 2024, I hesitated on the various ideas I had and did not start building until much later, which meant lesser time to polish features! Start early and fail fast!
  3. I did not spend enough time writing the accompanying project description and did not realise its importance until after viewing several videos and blogs covering how crucial was it in letting your project stand out even more. Spend more time improving and putting in thought to your write-up!
  4. Read the rules carefully and adhere to them! Some of the challenge rules included only using English within the app and not using any features that relied on an internet connection. I may have violated some of those rules (I’m not too sure )within the app by including traditional Chinese characters and also using the Speech library, which sometimes contacts servers for more precise voice-to-text translation.

Though I did not win a coveted spot among the 350 winners for the Challenge, it had been an exciting journey fumbling around in foreign technologies and exploring what was possible with SwiftUI, AVFoundation, Speech, and SpriteKit. To future Swift Student Challengers, I wish you the best of luck in your journey.

Keep exploring!

--

--