Tom Taylor - Software Engineer

Kinda Funny Soundboard

Kinda Funny Soundboard

Kinda Funny Soundboard is a simple soundboard app for the Kinda Funny podcast, allowing users to play sound effects from the show. This project was a fun side project to learn more about Android development.

Growing up I absolutely loved this gaming/comedy podcast and the group dynamic, so I wanted to strech my very early Android knowledge to make this app happen. It is one of my most downloaded Android apps, and by far the most positively reviewed.

I sought permission from the Kinda Funny team to build this, and the main guy, Greg Miller, happily approved so long as I didn't monitise it.

Technologies used

  • Languages: Java, SQL
  • Database: SQLite
  • Framework: Android Studio
  • Deployment: Google Play Store
  • Source Control: GitHub

Why a soundboard?

This was made at a very, very early point in my career.

I had just started app development at work and wanted to improve my skills outside of work. Being part of the fan community for this podcast, I thought there was no better way to do this than to build a soundboard app for the show.

A soundboard is exactly what it sounds like. A series of sounds that are activated and played at the press of a button. This project was by no means complex, but as with all Android apps, it has to be built correctly and appropriately for all devices, including tablets.

Instead of hardcoding a bunch of buttons and sounds, the app is backed up with a simple SQLite database that stores the name of the sound effect, the name of the cast member who said it, and the name of a photo to use on the button in the app. This makes it completely dynamic and maintainable without diving into code every time.

If I want to add new clips, I simply add a photo and the sound, and add a line to the DB. In hindsight for a project of this scale, a simple JSON file would have likely sufficed, but hey! I got to learn SQL on this project.

Open sourcing for the community

As time went on, the app maintained popularity, but unfortunately internal events at the Kinda Funny organisation made my interest move away. And thus, the Kinda Funny soundboard app was in danger of becoming abandonware.

I wanted a way to pass the project onto the community, but I didn't want to hand over the entire source code to the internet as it uses some of my own internal and private Android libraries that I had built and didn't want to open source just yet.

Instead, I open sourced the database, sound files and images onto Github. This allowed anyone to branch the repo, make their additions, and raise pull requests with their new sound effects and images. I could then come along and rebuild the app with their changes without modifying the code. A 20 minute job for me allowed the community to keep the app alive and well.

Lessons learned

  • Community: I learned how to engage with a community and take on board their feedback. Ultimately this product was made for the community, so I wanted to ensure they were happy with it.
  • SQL and relational databases: This was my first hobby project that used a relational database, and I learned how to use SQLite in Android for simple SELECT and JOIN statements.
  • Open sourcing: I learned how to open source a project without giving away the entire codebase, allowing the community to contribute. Using GitHub is and always has been easy but this required some thought to permissions.