Overview
In the last two days, we made a ton of progress. First we went and met with a friend of Will’s, an Android developer with Raizlabs. He explained the way that UI, data management and API calls are handled in three different classes… the UI, the presenter and the repository. He also explained that data types should be modeled with classes, especially when the are being passed from an API as JSON because then they can get converted into an instance of a Java class by GSON. Not to be confused with the Minimum Viable Product acronym, this is referred to as Model View Presenter in best practices.
Progress
As of now, we have the data that we got from Jump Off Campus in Firebase, fifty housing listings near the Tufts’ campus. We also have built the screen containing the map and, as of today, it populates with the data stored in Firebase. When clicked, popups appear with the capacity, address and per person rent of the given house.
We added some new tools to our belt as well. Postman & Espresso are great tools for API and UI testing (respectively) that we hope to take advantage of in the future. We were recommended to adopt Retrofit if and when we choose to integrate third party APIs, and RxJava for handling asynchronous tasks.
Challenges
We had a lot of trouble with an error where a class was apparently not specified in the AndroidManifest.xml.
We also struggled with the return type from the request to Firebase. We now understand that it is a HashMap that maps addresses to Hashmaps that mapfrom each field ie rent, latitude… to its value. Anyways, we were eventually able to get the data casted to its appropriate type.
Moving Forward
We are feeling really good about our the work that we’ve done and now feel like we have a much better sense of how to not overload the UI level while getting data from a server. The next step is to make a post request wherein users can upload listings.
Having built out the full stack, we also need to take a step back and evaluate what features of our app our the most important. The skateboard works – students have access to off campus housing listings in a map view.
But how do we get to the bicycle? Do users want feedback of properties and landlords from previous tenants? Do they want to filter options based on criteria (cost, capacity, etc.)? Would they appreciate being able to populate the map with the addresses of their friends?
Before the code, we need to poll students, however informally, to determine the perceived value of these features.