Inspiration
In school, Kahoot and Quizlet Live are well known multiplayer games used to study. However, they are awfully inconvenient and are often buggy. We wanted to be able to easily and instantaneously start a quizzing game with a friend to compete and help each other study. We were surprised that Quizlet hadn't made an app or extension like this themselves, so we went ahead and made one.
What it does
Within iMessage, players may search for any public Quizlet study sets and send one as either an untimed or timed game. The two players then go back and forth in a point competition until all terms are gone through. Answers are written at first, but if you are unsure, there is an "I don't know" button that will automatically generate four multiple choice answers. Two points are rewarded for answering written and one point is rewarded for answering with multiple choice.
How I built it
We use the Quizlet API to gather data for public Quizlet study sets. We use Xcode 9 and Swift 4 as well as Apple's Messages Framework to make an iMessage game. Parameters are passed/sent with every iMessage to allow data to go back and forth.
Challenges I ran into
iMessage extensions have many more restrictions than iOS apps. For example, Apple's Messages Framework doesn't provide functionality for simultaneous interaction. There are considerably less documentation and information on iMessage apps compared to regular iOS apps, so we had to experiment a lot to get things working.
Accomplishments that I'm proud of
This app is something that my friends and I will all benefit from and can use practically to study.
What I learned
How to communicate through HTTP requests and passing parameters in iMessages. Even if something seems simple to make, there are always little mistakes and bugs that mess it up and set you back.
What's next for Flashcards with Friends
Adding features such as shuffling terms, reversing term and definition, and making it simultaneous through the use of a web socket and self-made backend.
Log in or sign up for Devpost to join the conversation.