Youtube link to Bump demo: link
Inspiration
A lack of simplicity, convenience, and natural flow when sharing contacts with new people. Ever met someone on the go? A person you've had a short conversation with and wanted to continue further? Bump is the perfect way to connect with new people without the inconvenience that comes with saving contacts manually! Meet the unknown without an awkward phone-contact-exchange barrier at a conference, a hackathon, around campus, or at a concert for FREE.
What it does
Bump is a revolutionary networking app! Bump takes advantage of the Apple Watch's multiple hardware sensors such as the accelerometer, haptic, and bluetooth to trade contacts between two users. Simply fist bump another Apple Watch user with the Bump app installed + bump with the watch hand. The application runs in the background and trades contact information with the other users Apple Watch that will then save on each users phone (if approved).
How we built it
IDE: Xcode Languages: Swift Libraries: SwiftUI, UIKit, CoreBluetooth, CoreMotion Hardware: Accelerometer, Haptic, Apple Watch, Bluetooth
Challenges we ran into
Github and Xcode interactions.
Unable to push feature branches. Certain files for build tracking were being pushed breaking local repos and causing issues. Property list desyncs!
Documentation
Scarce resources for learning and example projects in the domain. Nobody has done this publicly for Apple Watch until now so we had to invent our own protocols for the architecture Limited libraries for hardware (on several occasions, we found libraries that only after spending time building and researching realized it was FORBIDDEN by Apple to be used on watchOS Multiple members ran out of bundle identifiers causing them to be unable to test the latest builds on their devices. Sometimes Bluetooth Core gave us a lot of trouble because the documentation still uses old syntax and project structures.
UI Elements of different resolutions caused re-scaling issues with other UI elements.
One element being in a different size would break a view.
Our first big Swift project, we were very inexperienced given the ambitious and complex nature of the project.
Accomplishments that we're proud of
- Transferring contacts over Bluetooth using our trigger mechanism
- Coming up with the design ourselves and handling all the curveballs that came along with our first sensor based project
- Overcoming many "impossible" obstacles in our path, like when we found out accelerometer data might not even be accessible from a background process, which would effectively end BUMP. Or when we found out WatchOS devices can't facilitate Peer-to-Peer (P2P) communication because Apple limits their library access and had to modify our architecture to use the phone as a peripheral, creating a more complicated (but working) system. Even when we had an hour left of hacking and everything seemed to be breaking at once we kept moving forward without giving up because we wanted to see our vision come to life so badly.
What we learned
How to code in Swift and familiarize ourselves with the IDE and it's imports How Bluetooth Low Energy (BLE) works How to work effectively as a team of software engineers to creating a CI/CD pipeline and creating extensive documentation for architecture.
What's next for Bump
Releasing on the App Store! and adding / refining the features we wanted to include during the hackathon, but didn't have enough time for.
Built With
- contactsapi
- core-bluetooth
- core-motion
- foundationdb
- github
- swift
- swiftui
- watchconnectivity
- xcode


Log in or sign up for Devpost to join the conversation.