General Instructions: Put the entire app directory into one zip file and submit as an attachment under Content à Homework 9 for this course on the Blackboard Learn system by the above deadline. Note that you may submit multiple times, but only the most recent entry submitted before the above deadline will be graded.
For this homework you will write a standalone app, still called QuizApp, but allowing the user to generate questions and answers pertaining to nearby locations of interest. See screenshots below. Specifically,
Add a Table View Controller embedded in a Navigation Controller to the app. The table view should have prompt “Quiz App” and title “Queries”. Add some queries to the table; at least the four shown in the screenshots, but you are welcome to add more.
Add a Question View Controller to display the question, a button to get the answer, and a Map View. The prompt should be “Quiz App” and the title should be “Question”. When the user taps on a row in the table, the app should segue to the Question view and show the question “Where is the closest place for X?”, where X is the query selected from the table.
The Map View should show the user’s current location. When the user taps the “Get Answer” button, the app should send the natural language query, and then the map should show the nearby places returned on the map. If no places are returned (e.g., for the “Stewed Gagh” query), then the app should show the error alert.
Inside the Question View Controller, you will need to check for authorization to use location services and start updating location if authorized. If not available, or the user has disabled them, then the error alert should be displayed when you load the Question View and/or tap the “Get Answer” button. Be sure to add the “Privacy – Location When In Use Usage Description” to the Info property list.
Be sure that auto layout constraints are set so that the view elements are appropriately displayed with no overlap regardless of device orientation.
Initial view After tapping any row After tapping “Get
for the first time. Answer” and
zooming out a bit.
Error if no results returned.
User disables location services for app.
Error for any query when location services disabled.