Berkeley can be a dangerous place. It's important to help create a safe environment for everyone.

What it does

Walks with Friends searches your Facebook friends to find available friends (utilizing geofencing and whitelisting in the process), and allows you to ask them via push notifications to walk back to a destination with you in some timeframe. Friends can accept or reject the offer to walk back, but when a friend does accept, both users can see an embedded google map with markers for current location and destination. The map also displays the route that both users can walk to reach the destination.

How we built it

We started exploring various API's, including the Facebook login API, various Google Maps API's, and push notifications API's as we all started learning Swift, Xcode, and some JavaScript. Our app has a front end built in Swift, which communicates with a web server running MongoDB that stores user data and utlizes the Apple Push Notifications service to communicate with devices. Users can perform certain actions to prompt the server to change data values (e.g. changing personal preferences) or send push notifications (e.g. requesting friends to walk with them).

Challenges we ran into

With a combined 0 experience with iOS devlopment, we started running into challenges right away. We had no idea how to approach some of the problems, and started with basic tutorials. But as we continued to read documentation, click through StackOverflow, and test out code, we eventually acquired most of the required skills. Push Notifications and the Google Maps API's were particularly difficult to incorporate because of unclear documentation and technical problems, but with help from mentors we overcame both.

Accomplishments that we're proud of

Each of us picked up a particular skill, whether it be utilizing Google Maps API's or creating detailed storyboards, which we're all happy about. Some especially proud moments included finally getting a map to display on the screen with a current location marker, and receiving the first successful push notification. We also set up a web server from scratch, and although it's occassionally plagued by bugs, it's been a rewarding experience.

What we learned

We learned that carefully reading documentation and fully planning out our implementation before starting to code are both incredibly helpful. Individually, we each learned many useful skills, from iOS development to JavaScript. Most prominently, however, we learned that sometimes you have to get stuck for a long, long time before being able to move forward.

What's next for Walks with Friends

There's a lot of our implementation we didn't get to, and features that we planned but ruled out right away as being part of Phase 2 (after Calhacks). We wanted to include a better interaction framework for users (such as a built in messaging system), the ability to set meeting points, and support for large groups among many other things. We plan to finish our implementation after Calhacks and hopefully release it on the App Store soon to make Berkeley students safer.

Share this project: