Inspiration

We wanted to create something fun, practical, and a little romantic. Bad breath can be an unexpected mood killer—especially during intimate moments. So we thought, why not build a breath-checking app that gives you the green light for a kiss?

What it does

Kiss Permit connects to a Bluetooth Low Energy (BLE) module and collects real-time air quality data from a gas sensor. It reads TVOC, eCO₂, and AQI values from a user’s breath and visualizes the result instantly in the app. Based on thresholds, it displays personalized messages and animations to tell the user whether it's the right time to kiss—or maybe brush first!

How we built it

We used SwiftUI to build a clean and responsive iOS app. The app connects to a BLE module which transmits sensor readings (TVOC, eCO₂, AQI) from hardware. On the frontend, we customized visuals based on breath quality using color-coded backgrounds, dynamic emojis, and animated kiss marks. We used CoreBluetooth for BLE integration and real-time data updates.

Challenges we ran into

  • BLE data formatting was inconsistent and required filtering and parsing.
  • Custom font and image assets failed to load properly at first.
  • Fine-tuning thresholds for what makes a "kissable" breath was harder than expected—everyone's breath is unique.
  • Animations and UI layout needed testing across different screen sizes.
  • Due to budget constraints, we used a more affordable sensor, which detects specific gas components rather than the overall severity of bad breath.

Accomplishments that we're proud of

  • Seamlessly integrating BLE with SwiftUI for real-time updates.
  • Creating a quirky but useful app that people immediately understood and loved.
  • Designing an engaging, polished user experience from scratch, including visuals and logic.

What we learned

  • How to connect and parse BLE sensor data on iOS.
  • Using CoreBluetooth with SwiftUI in a reactive, smooth way.
  • The importance of UX/UI detail—users really respond to well-designed feedback.
  • Real-world data can be messy, but translating it into something meaningful is powerful.

What's next for Kiss Permit

  • Add Android support with React Native or Flutter.
  • Calibrate the sensor with more test data for personalized thresholds.
  • Add social sharing or history logging (e.g. “Best Breath Day!”).
  • Make it available on the App Store so people can use it on real dates 😉

Built With

Share this project:

Updates