PhotoHunt is an application that demonstrates the features and benefits of Google+ Sign-In and other Google+ Platform features across three clients: web, Android, and iOS. Its goal is to illustrate how easy it is to get up and running with the Google+ Platform, and also to demonstrate how Google engineers would ideally write an end-to-end Google+ application. Use PhotoHunt as an example when integrating your own app with Google+.
PhotoHunt itself is a fun application that allows users to participate in scavenger hunts for the best photos representing a daily theme. Users can vote on each others' photos if they think a photo represents the day's theme particularly well.
A backend server running the PhotoHunt API contains the core app functionality and allows users to interact with the app from any device. In order to try out PhotoHunt, you will need to run an instance of the PhotoHunt server and at least one of the three client apps.
From any of the three client apps users upload photos based on a daily theme and vote on their favorites. PhotoHunt incorporates the following features:
- User identity and customization is handled with Google+ Sign-In.
- Android installs are driven through over-the-air installs.
- Content is targeted for a user based on their profile & social graph data from people in their circles who also use the app.
- App activity is written to Google during photo uploads and voting.
- Users can promote their photos on Google+ using interactive posts.
- Interactive posts bring users from Google+ to the right place in the app through a call-to-action button. The posts also use deep linking, which can direct users to the specific content within the mobile app on the correct platform.
Try PhotoHunt on your preferred platform
Using a PhotoHunt client requires that you setup an instance of a PhotoHunt server. Options for server platforms are provided below.
All PhotoHunt servers include a bundled web client, allowing you to access PhotoHunt from a web browser.
- PhotoHunt Java
- PhotoHunt C# / .NET
- PhotoHunt Python
- PhotoHunt Ruby
- PhotoHunt PHP (coming soon)
- PhotoHunt Go (coming soon)
Each PhotoHunt user has a name, profile photo, Google ID, and Google access token. Basic user information is acquired by using the people.get method and authorization information is acquired using an OAuth 2.0 flow, which is handled by the Google+ Sign-In button. A user's name and profile photo are shown next to each uploaded photo and clicking their profile photo links to their Google+ profile.
Themes contain a short string, such as "Delicious," that inspires users to upload creative content. The app developer can schedule daily themes.
Users upload photos for the current theme. These can be uploaded from Android, iOS, or from the web. On Android or iOS, the user can upload photos directly from the camera.
Users vote on photos. The number of votes determines which photos are most popular.
People in your circles
PhotoHunt customizes the user experience by more prominently displaying photos that are uploaded by people in their circles.
Typical user flow for PhotoHunt
- User goes to the PhotoHunt web app.
- User clicks Google+ Sign-In button.
- User accepts the app authorization dialog.
- If the user has an Android device and does not yet have PhotoHunt installed, the Google Play install dialog displays. They can choose to automatically install the PhotoHunt app to their Android device.
- User uploads photo to match daily theme. An app activity is written to Google for the upload.
- User promotes a photo on Google+. The post contains a call-to-action button that says Vote. This button makes it clear to other users that when they click the button in the Google+ stream they will be taking an action in the PhotoHunt app.
- User votes for photos. App activities are written to Google for each vote.
- User browses the stream in the Google+ mobile app and sees an interactive post from someone else.
- User clicks Vote.
- User is taken to app.
- If the user has the Android app:
- The user's vote is cast. An app activity is written to Google for the vote.
- If the user does not have the Android app:
- The user is taken to the Google Play Store.
- The user downloads the Android app.
- The user is returned to the photo in the Android app and the vote is cast. An app activity is written to Google for the vote.
- If the user has the Android app:
- User continues to upload photo, vote on photos, and share photos.
- Same as Android, except the user is taken to the App Store instead of the Play Store.