Simple voice search for things you're in the mood for.
We were inspired by the wealth of data in TripAdvisor's API and wanted to build an entertaining app with that data. There are tons of place-finding apps out there. We aspired to make on that wasn't just simple and easy-to-use, but also one that was fun and interactive.
What it does
Users can use the voice command to search for something they're in the mood for — such as "burgers" or "museums". The app will search the nearby area for attractions and restaurants, and will save that query as a recommendation to others when they shake their phone and get a random query. Users can shake the device at any time to retrieve a random query from someone in their local area.
How we built it
The app was built for iOS (Swift) and hits our server (coded in PHP and deployed on Apache), which contacts TripAdvisor's API and keeps track of queries so they can be returned as random recommendations for people in the area. We wanted to make it as simple as possible, so we implemented AT&T's various speech to text recognition.
Challenges we ran into
- Integrating the AT&T SDK in Swift — the source files were written in Objective-C and required us to write a bridging header to allow their use in Swift. Additionally, their authentication sample code was written in Objective-C (pre-ARC), and required additional setup to implement correctly.
- Implementing the Tripadvisor API — a slight change (+/- .01) in coordinates would return somewhat bizarre results. We used the coordinates for Saint Louis and hardcoded them into the app for now.
Accomplishments that we're proud of
We were able to add a fun twist to the app — the ability to shake your phone and get a random query from people in your local area. It was a blast to use while we were developing this project.
What we learned
Keep your project goal reasonable, and execute a small idea as well as possible.
What's next for CityMood
There's a lot of potential for existing functionality to be improved upon - for example, adding a place to a favorites list so that it can be recommended to others in the area. Another idea is to sort results by fields such as distance, percent recommended, and rating.