Skip to content
Charles Randolph edited this page Aug 10, 2017 · 1 revision

Introduction

Welcome to the Winter-Summer-School-iOS wiki! While this project is under active development and it's code base changes regularly, the Wiki should be able to instill an understanding of the core design decisions to newcomers looking to contribute to or maintain the project.

Application Structure

Opening this project for the first time in Xcode may induce despair with it's sprawling array of directories and many files. However, there is a method to it. Let's begin by examining the root directories.

  1. ViewControllers
  2. Views
  3. Nibs
  4. Protocols
  5. Miscellaneous
  6. Singletons

ViewControllers

The ViewController, represented in Apple's UIKit framework with the UIViewController class, is the controller of the well known MVC paradigm for iOS. It handles all interaction between views like UITextView and the models in which data is stored. The ViewController directory stores all controllers used throughout the project. Most are grouped into subdirectories with a related ViewController which presents more detailed representations of data in their parent controllers. Those that are not in subdirectories represent superclasses with specific behaviors used universally among their subclasses. This will be expanded on in more detail later on.

Directory Structure

  1. RGSLockScreenViewController: This VC contains the lock screen presented on first App startup. Doc Page
  2. RGSMainViewController: This VC is the initial VC after Application launch. It manages the Tab-Bar. Doc Page
  3. RGSBaseViewController: This VC enforces a theme and supplies necessary methods for handling App execution suspension / resumption to it's subclasses. All Tab-Bar ViewControllers subclass it. Doc Page
  4. Information
    1. RGSInfoViewController: Presents the main "General Info" tab of the App, a UITableView of all General Information items. Doc Page
    2. RGSInfoDetailViewController: Presents a detailed view for items selected in RGSInfoViewController. Doc Page
  5. Announcements
    1. RGSAnnouncementViewController: Presents the main "Announcements" tab of the App, a UITableView of all Announcement items. Doc Page
    2. RGSAnnouncementEventViewController: Presents a detailed view for items selected in RGSAnnouncementViewController. Doc Page
  6. Schedule
    1. RGSScheduleViewController: Presents the main "Schedule" tab of the App, a UITableView of all days of the week, expandable into sections with events per day. Doc Page
    2. RGSScheduleEventViewController: Presents a detailed view for items selected in RGSScheduleViewController. Doc Page
  7. Lecturers
    1. RGSLecturerViewController: Presents the main "Staff" tab of the App, a UICollectionView of all lecturers. Doc Page
    2. RGSLecturerProfileViewController: Presents a detailed view for Lecturers selected in RGSLecturerViewController. Doc Page
  8. Forum
    1. RGSForumViewController: Presents the main "Forum" tab of the App, but is not currently developed.Doc Page

Views