Inspiration

The idea came from a game my friends and I played a lot. We would start a blind test video on YouTube and keep score by hand or in our heads, which sometimes led to arguments 😂 I wanted an app that runs the whole game, so everyone can just play.

What it does

ZikPop turns a room full of iPhones into a music quiz. One iPhone hosts: it picks any Apple Music playlist and plays a 15-second excerpt out loud, through its speaker, headphones or an external speaker. Up to 8 friends type what they recognize on their own phones, and ZikPop scores everyone instantly: points for the title and the artists, a bonus for the fastest answer and for finding everything, and a joker with four choices for half the points when you're stuck. No more keeping score by hand, and no more arguments.

Joining is free forever and needs no account. Only hosting is paid, starting with a free 24-hour trial.

How we built it

Everything is native, written by me:

  • SwiftUI with Liquid Glass for the interface, and Core Animation for the timer waves and the confetti.
  • MusicKit for playlists, playback and saving songs to the Apple Music library.
  • The Network framework for local multiplayer, with peer-to-peer links so a game works even without a Wi-Fi network.
  • RevenueCat for the passes, the subscriptions and the paywall offering.

All along, I got a lot of feedback from my peers at the Apple Developer Academy in Naples, where I spent a year as a student.

Challenges we ran into

  • Grading free-text answers. Players type whatever they hear, in any order, with typos and missing accents ("dua lipa levitatin"). The matcher has to accept that without letting wrong answers through, and credit the title and each artist separately, featured artists included.
  • Time-limited passes. Non-renewing products carry no expiry date, so RevenueCat can't make a 24-hour pass lapse on its own. I kept passes off the entitlement and compute their expiry from purchase dates, so they still restore on a new phone.
  • Staying simple. One answer field instead of separate "title" and "artist" fields, no sign-up, and permissions asked only when needed. Every screen had to earn its place.

Accomplishments that we're proud of

  • A forgiving matcher that makes typing answers feel natural instead of stressful.
  • Smart artist playlists: when a playlist is built around one artist, ZikPop detects it and turns the round into a hunt for the title and the features.
  • A results screen that ends every game with a celebration: confetti that stays perfectly smooth, the final ranking, and every song ready to save.
  • A business model built for a party game: one purchase covers the whole room, and every guest who enjoys it can host the next party.

What we learned

Feedback is the most important thing. Getting many different opinions let me find friction I could no longer see myself, and make the experience much more enjoyable.

I also learned that monetization is part of the design. Charging every player would have stopped the game from spreading, so only the host pays, and the free guests become the app's best marketing.

What's next for ZikPop: Guess The Song

  • A first pricing experiment through RevenueCat: $1.99 vs $2.99 on the 24-hour pass, the most important number in the model.
  • A new game mode.
  • A timer that reacts to the beat of the song actually playing.

Built With

  • cryptokit
  • musickit
  • network
  • photoskit
  • revenuecatsdk
  • swift
  • swiftui
  • tipkit
  • uikit
Share this project:

Updates

Submission history