Session 3

What's in the News...

Session Materials



In this assignment, you will create a application that will allow you to quickly review top Apple and business news stories of the day. The key technologies utilized will be UITabBarController, UINavigationController, UITableViews and NSURLSession to query and present the data from Open News API. This assignment will require the use of both storyboards and programmatic interface design.

You will need to sign up for a free API key from Open News.

Figure 1. A news reader application using the Open News API.

The application will have three tabs allowing you to view news about our favorite fruit company, Apple, business news and the number of articles written about Apple from the previous day. All the information will be downloaded from the Open News API.

You will need to sign up for a free API key from Open News

Please implement the following features and behaviors in your application.

Project Setup

Figure 2. 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).



Remember to set the cell identifier’s name of the Scene in Storyboard’s Identity Inspector


_Figure 3. A UIBarButton with the system ‘action’ icon allows users to view the full article in the Mobile Safari system app.


Since you are reusing almost all the same code between them, consider different software engineering to prevent rewriting code.<you_api_key>


Figure 4. Draw a circle the the number of Apple articles from the previous day.

Open News Data

DispatchQueue.main.async {
    // Anything in here is executed on the main thread.  
    // You should reload your table here.

App Functionality

Read and reread all the requirements for this application. Many of the functionality is repeated between view controllers so it would prudent to think about how to organize the project. In general, the application should behave as described below:

There are a few things (as discussed in class) that we did not go over. You will need to search out these out on your own and begin to learn how to navigate the documentation and other resources.


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 Stock and should contain a table that lists the following information for Apple, Inc. (AAPL) :

Note this will require you to seek out and find another API that provides stock information. You will also have to update the networking code and custom structs to parse the data.

Requirements Reminders

Due Date

Assignment 5 is due February 2, 2018 at 5:29pm.