Capstone Update #5: Calendar Tab

 Overview

In the Calendar Tab, users can view the scholars calendar of upcoming events. Although a scholar’s calendar is available on the scholar’s website, having the calendar in the app with a personal to-do list will help scholars to better plan which events to attend. The calendar in the app is the actual Google calendar that scholars see on the website with the same functionality, events, and details. This tab of the app simply allows scholars to more efficiently plan what events they want to attend and easily check event times and locations. Figure 1 below shows how the calendar looks in the app.

Figure 1. Calendar Tab

Challenges

Originally, I planned to create my own calendar interface that reads and populates event details from the Google calendar on the scholar’s website. I had made the functioning calendar interface, however, I became stuck when trying to display events on the calendar interface. I thought I could use one of Google’s many APIs to easily transfer event details to my app, but after countless Google searches and some attempts to ask older students for help, I remained stuck. I eventually stumbled upon a way around my challenging predicament: use a web view in the app instead of building an entire calendar and trying to populate events into it. The web view approach extremely simplified the problem. Instead of needing to build my own calendar interface and read events with some unknown process, I simply needed a URL to the calendar online. The web view allowed me to add a calendar identical to the calendar on the current website, which is already familiar for scholars to use. Additionally, the calendar is automatically updated on its own since it is a web page that is updated regularly outside of my app. I wouldn’t have to worry about making my own calendar interface easy to use or how I could continuously update my calendar when new events are added.

If I had more time and more knowledge of how to work with XCode and Google Calendar APIs, I would have preferred to create my own calendar interface and read events from the online calendar. Although this approach is more work, a custom calendar can be designed to fit better into the app’s overall theme and would not need internet access to load the calendar. However, with limited time left and a lack of self-teaching material online, I had to settle for a more realistic and practical solution for my current situation.