Date

Lecture Date: Friday, October 5

Prof. Sherriff is out of town today, so here is what you'll work on today (and next week, if needed):

  1. Pick your platform: iOS or Android. (Ideally, you'll choose the platform you're planning on using for the final project.)
  2. Sign up for an API key to use UVA's building info REST web service here: https://devhub.virginia.edu/API
  3. On your platform of choice, build a VERY simple app that will allow a user to make a basic request to the buildings API to look up info about a building at UVA. You do NOT have to provide an interface for EVERY option in the API, but you are welcome to expand upon the basic request outlined here.
  4. The app should have an EditText / UITextField that allows a user to type in the building name and a button that initiates the search. The info should be displayed in the app somehow (i.e. not to the console through Log.d or print()), but it's up to you how you want to do this.
  5. Your app does not have to be fancy in any way, but please make it "neat and clean..." I would prefer not to grade sloppy looking apps.
  6. Accept this GitHub Classroom assignment and make sure your final version is pushed by class time on Friday, October 12: https://classroom.github.com/a/ZqUvPkKL
  7. Note that this is an individual assignment.

Android

I highly suggest using Retrofit (https://square.github.io/retrofit/) to make your calls. Using native Java is pretty painful in my experience. There are other libraries that do this, but Retrofit is the one I see used the most.

Check out their GitHub repo for some samples (https://github.com/square/retrofit) along with whatever else you can Google. Note that to add Retrofit to your build path, you'll need to add implementation 'com.squareup.retrofit2:retrofit:2.4.0' to your Gradle build file along with the other implementation lines.

iOS

I would suggest just using the built-in Swift libraries, as they are relatively straightforward, but you can use other libraries if you like. Chapter 5.5 in the Swift book outlines exactly how to do this. This Xcode Playground shows you how you could make a JSON REST call against iTunes - the concept is the same: http://cs4720.cs.virginia.edu/resources/iTunesSearch.playground