We started off this project with the goal of creating something so annoying that you might end up smashing your phone. From a timer that requires approval before it rings, to a QR code "scanner" that requires manual input of each pixel, we brainstormed crazy ideas and ended up with the most annoying one: A keyboard that jumbles the keys after each tap, making it really unusable.

What it does

The Tybbit keyboard can be used independently (if you are crazy enough) or as part of a typing game. There are 2 modes available and both will drive you nuts:

  1. Mislabeled Mode: The actual keys follow the QWERTY layout, but the labels are all wrong.
  2. Jumbled Mode: All keys would jumble up every time a key is pressed.

The typing game would generate a random quote from a free API and the player would need to type it out in the shortest time. In addition to the personal high-score, there is also a global high-score tracker that shows the ranking of the fastest plays for each mode, viewable from a web app.

To use the keyboard, simply start a game and you will be prompted to enable and select it. Alternatively, it can be enabled and selected manually from your device's settings app, like a normal keyboard.

How we built it

The components of the apps were first planned out in Figma. Then, we worked on the app in Android Studio, using InputMethodService to create a working keyboard for Android devices. Concurrently, we also worked on the logic and design of the game in a separate Activity.

The global leaderboard was set up using React as frontend and PostgreSQL as backend, accessed via python flask.

The artworks were drawn in Procreate.

Challenges we ran into

  • Using Retrofit to send results to the backend
  • Resolving merge conflicts all the time

Accomplishments that we're proud of

  • Completed the keyboard, the game, and the leaderboard.

What we learned

  • Working on an Android app as a team
  • How to set up React app

What's next for Tybbit

  • V2 is coming soon, with more modes and crazier punishments 🤡😈

Built With

Share this project: