Last semester, we went to Santa Monica Pier with a group of friends. We were all freshmen, coming from places far from Los Angeles. It was crazy to see that even after sunset, downtown Santa Monica was bustling with street performers, restaurants, and other crazy things happening. Also, one of the things we enjoyed most was a random performer who was just shouting words that rhymed over music. The specificity and the quantity of experiences in a place like Santa Monica is a lot to digest. We wanted to create something that could capture these experiences so that everyone could see them for themselves.
What it does
P!ng is an app that encourages users to appreciate the temporary and informal nature of cities. Users make “pings” – short messages tagged with an emotion or reaction, and can browse and like other pings in their area.
How I built it
We started by dividing the project into smaller sections and assigning them to team members depending on past experience and interest. We programmed in Java using Android Studio and used the Google Maps API and Firebase, with Git to manage the project. Throughout the process we helped each other out on Zoom and traded ideas.
Challenges I ran into
We decided early on that we wanted to have different types of markers to convey the tags that people selected for their pings. It ended up being a massive time sink to not only create custom icons, but also incorporate them into the app. We went through several iterations – first we used png files, but the bitmaps didn’t look smooth. Then we switched to SVG graphics and quickly found that it is much more difficult to display these images as markers. Although this aspect of the project was very time consuming and required lots of research, we learned a lot about the Google Maps API and graphics, and we are especially happy with how the markers turned out.
Accomplishments that I'm proud of
We participated in a Hackathon several months ago, and struggled a lot. This time, we felt much more confident in our final product and the skills that we acquired from this project. From this Hackathon, we are especially proud of how much we have learned and improved on in the last few months.
We had no idea how to develop an app before the start of the Hackathon. We were set on creating something that was either web based or some computer software. However, we decided to just dive in and decided to build an app. It was difficult as the first few hours seemed like going through a maze blindfolded, but we are proud that we were able to grasp app development in such a short time.
What I learned
Despite little experience with the Google Maps API, we have developed a comfortability and understanding of how to implement, mark, and read and write information to and from Google Maps in our Android apps. Furthermore, our familiarity with Android app development has been significantly strengthened through this process and have gained key insights, like the inner workings of an app with multiple activities and UI design with .xml layout files. Though starting with some knowledge of firebase, undoubtedly our skills in utilizing it have been emboldened through its implementation here, reading and writing from our database in significantly different contexts from what we’ve seen prior.
What's next for P!ng: What's Happening?
We got a lot done in 36 hours, but we know our app can grow so much more! Going forward, we want to add additional functionality for pings. In particular, pings could include pictures or short videos.
Additionally, we could potentially incorporate other social media platforms. Since many Twitter and Snapchat posts are tagged with location, these posts could be included as pings on our map, allowing users to interact with a wider range of sources.
An option to ping specific points of interest and businesses, as opposed to pings solely being used to direct to particular coordinates, may be an interesting way to expand the possibilities of how users interact with pings. Looking for what restaurants are trendy or what scenic nature trails are most popular would be very easily and naturally achieved by seeing the popularity and content of pings at those particular points of interest, for example.
P!ng could also be used to send brief updates about an ongoing situation. Since it caters to people in nearby areas, local leaders could use the app to update individuals about public events, school closings, weather, and unusual situations.
Try It out
android-studio, firebase, google-maps, java, xml