Mobile application for yacs.me
~~ What's commited so far ~~
When I first started working on a mobile app for YACS, I started working towards a 3 view application very similiar to the original YACS website. On the first view I wanted a single search bar at the top of the page underneath a title "YACS", followed by a table view cell controller for the different departments at rpi (again, very similar to the YACS website). Each search or selection of a department would bring you to a new view (This would be the same layout-wise as the 3rd view in the tab controller.) The search result view would contain a list of classes, information about each class, and a list of their sections. The 2nd view is a UICollection view to make the different schedules, undoubtably the hardest part of the application. The 3rd view is a list of all the selected sections and their respective classes. I also have the colors and fonts added to each subclass of UIColor and UIFont.
~~ UI changes to implement ~~
After having multiple talks with Stephan Gallager, I decided to change most of the way the UI was going. The current way was a giant wall of text, admittably unappealing to look at. So after meeting with Courtney who knew one or two things about user experience I decided what needs to be done. I'm going to shift the application into alot more views, but lessening the orginial three tab bar views. I'm only going to have two tab bar views, one table view cell controller which contains a search bar, the title, and a list of departments sorted by their schools. From this view after searching or selecting a department, a new view will display the courses with minimal information displayed. An information button will be located next to each course title that brings you to a new view with information such as professor name, class description, sections and associated times, and CRNs. The second tab view will be the UICollection view that will be the displayed schedule. Each cell in the collection view will display minimal information, with a button that will bring up a new view with more information. There also will be an edit option for the collection view that will allow a user to select times to "grey" out(make unavailable, like it is on the website). There will also be a view before a course/section is added to the schedule. It will display a list of courses with the illegible section grayed out due to restrictions, and currently selected sections highlighted in light red in the UIColor subclass I created. Generally we want to move form wall of text to readability, the number one complaint from using yacs on a phone.
~~ Future work that needs to be done ~~
Most of the work that needs to be implemented is with the UICollection view controller. After that the data from the api needs to be implemented. For the UICollection view there are a few options. The first being to use a preexisting calander application or use a cocoa pod such as https://github.com/erichoracek/MSCollectionViewCalendarLayout. The issuses with these options is that they both require serious modification. For the YACS scheduler, the schedule is 5 days from 8am to 10 pm, for the other options they are 7 days a week 24 hours. Another option is to write a completely new UICollection view scheduler from scratch, but that will be very difficult. Another option is to render an image from thw website application, but this would be very inefficient. Based on the screen restrictions for a phone, we might have to make the Collection view landscape, to create more horizontal screen room.