As a a group of college students, we've all experienced the moment where you start to meet too many people or nobody at all. You'll try to meet up with friends, but it seems like no one's schedule can work out in the real world. To bridge this problem, we decided to build an app entitled "Down4_." It's app to effectively see what your friends are down for doing. It's similar to how on Steam you can see what games your friends are playing, so you can hop on and play with them. This app is an opportunity to meet up with those friends in the real world. We hope to build a world where no one has to be alone.
On the more technical side of things, the app is built on top of Firebase and the Google Maps API. None of us have ever worked with these, and writing asynchronous code in Java took some getting used to. Thankfully, Firebase was a breeze to setup, so we could focus on developing the features of our app, but the Google Maps API still gave us trouble.
We used users' UID to act as the document id in Firestore to allow users to interact with the database while also managing what data belonged to which users. While creating markers on the maps was easy, getting it to seamlessly interact with the app was not. Using Intents from the Android SDK was a solution, but we also had to take care of cases where addresses could not be found, or if there was an error while selecting the address, etc. The habit of checking these cases was established as we worked due to the number of inputs taken from the user in which we had to validate inputs to avoid the Firebase APIs from throwing errors.
We created high fidelity mockups and prototypes in Adobe XD, which accelerated the development process since we had a clear goal of what features we wanted and how the app would look. Instead of playing with code to get what we want, we iterated through a few designs and were quickly able make it a reality.
We hope to finish up this app and get it on the app store soon. In our time crunch, we were not able to incorporate the messaging system that we had planned. We want to overhaul the UI/UX to create a more modern design with Google material design while also attempting to not oversimplify it. We will also transfer from Android to React Native.