After arriving at PennApps, it took us at least 20 minutes of texts and phone tag to find each other at the Wells Fargo Center. We were in the same building, we just had to get face to face. We wanted to create a tool to make it easier to find people in a crowded place.
What it does
Rendezvous uses Bluetooth LE to find nearby friends broadcasting their location with the app. When friends are close, the app notifies the user and shows how far away they are. They can then use the app to navigate towards one another until they meet up, all without wifi or cellular data.
How we built it
Rendezvous was built for iOS using Objective-C and Swift. It uses the Core Bluetooth framework and iBeacon to broadcast and receive location data from other devices. We also used the Facebook SDK for iOS to authenticate users and identify location broadcasts coming from friends.
Challenges we ran into
We tried several methods of location sharing, but we found that Bluetooth LE offered the best system for close-range communication. Though we looked at making more data available as a service through Bluetooth, we ultimately found that using the iPhone as an iBeacon was more secure and reliable. The system has a range of about 100 meters and proximity information isn't precise, but it's good enough to know who's nearby and to find them.
Accomplishments that we're proud of
We think the work we put into the interface really shows in the final app and creates a seamless location sharing experience. Once you've logged in the first time, all you have to do is open the app to see who's around and start sharing your location.
What we learned
This was the first time anyone on the team had worked with iOS, so we learned a lot about Swift and the different iOS SDKs. Though we ultimately didn't use MongoDB to store location data, we had a great time experimenting with it. We also know much more about Bluetooth now than we did going in.
What's next for Rendezvous
There are a lot of directions to take the application. We didn't have time to create an Apple Watch extension, but we think haptic feedback and at-a-glance information would really enhance the experience. We would also like to incorporate more advanced data sharing over Bluetooth. The same system could also easily be reproduced on Android.