Session 5

Issues with View Controllers

Session Materials

Resources

Assignment

In this assignment, you will create a application that will allow you to visit your new favorite website: GitHub Issues. The key technologies utilized will be UITabBarController, UINavigationController, UITableViews and NSURLSession to query and present the GitHub Issues API. This assignment will require the use of both storyboards and programmatic interface design.

The application will have three tabs allowing you to view open issues, all issues and the number of open and closed issues. Please implement the following features and behaviors.

Project Setup

Figure 1. Use a UITabBarController with three tabs for you application.
Figure 1. Use a UITabBarController with three tabs for you application.

View Controllers

The application will implement a UITabBarController that will coordinate three view controllers (four if you choose to implement an additional view controller for the 11th point).

TabBarController

IssueTableViewController

Tip: Remember to set the Custom Class name of the Scene in Storyboard's Identity Inspector.



Figure 2. Create a custom table view cell to display the issues.  Declare properties in your custom cell's class to allow you to access them by name.
Figure 2. Create a custom table view cell to display the issues. Declare properties in your custom cell's class to allow you to access them by name.
https://api.github.com/repos/uchicago-mobi/mpcs51030-2017-summer-forum/issues?state=open
Tip: Remember to set the cell identifier's name of the Scene in Storyboard's Identity Inspector.



Figure 2. Display the most recent issues and the their author.
Figure 2. Display the most recent issues and the their author.
IssueDetailTableViewController
Tip: Style the view as you like. Look to Apple's Human Interface Guidelines for guidance.



AllIssuesTableViewController
Tip: Remember to set the Custom Class name in the Identity Inspector.



Figure 3. The status of the issue should be indicated by varying the image in the cell.
Figure 3. The status of the issue should be indicated by varying the image in the cell.
https://api.github.com/repos/uchicago-mobi/mpcs51030-2017-summer-forum/issues?state=all

CircleViewController
Figure 4. Draw a circle the encompasses the number of open and closed issues.
Figure 4. Draw a circle the encompasses the number of open and closed issues.

Issue Data

Tip: You can view the raw data by putting the query into a browsewr.



App Functionality

Grading

The application should compile with no errors or warnings and perform all described behaviors. If the app does not compile you will receive a 0. If the app has any error or warnings, you will receive a 0. Feel free to explore additional enhancements to improve the appearance or functionality of the application.

An 11th point will be awarded to applications that add an additional tab to the tab bar controller. This tap should be named Activity and should contain a table that lists the most active users (as evaluated by the number of issues they posted) on the forum. Show their Github id and number of Issues they have posted. You can obtain this data using the all query.

Requirements Reminders

Due Date

Assignment 5 is due July 26, 2017 at 5:29pm.