Ferry Transit App

Overview: An iPhone application that improves the experience of looking up WSDOT Ferry Departure information.

Results: I designed and built a working prototype of an easy to use iPhone application that allowed for quick digestion of current ferry departure details.

Role: Prototyping, UX Design, Development (Swift)


The to work to create this application originated on a trip to Orcas Islands, WA. After work, I drove from Seattle, WA to the port at Anacortes, WA. The passenger downloaded the existing WSDOT and attempted to decipher when we would likely catch the ferry and if there were any relevant alerts for our trip. While we were able to catch our ferry without issues, we found there to be great room for improvement in the experience of looking up ferry departures, available car space, and getting realtime alerts for route issues. While ferry traveling for us was a special occasion, we knew that many people rely on ferries everyday to commute and I wanted to design an application that would improve that daily routine.


I started out the project by going down two paths; one in researching the existing information architecture and user experience designs of the existing applications and websites provided by WSDOT, the other in researching the available public APIs that could be consumed by a new application.

Existing Options for Travelers

Reviewing the WSDOT website and mobile application, I found the former to contain all the possible bits of information a traveler would want to know while traveling, albeit scattered throughout differently architected websites with no conforming hierarchy or organization of information.  The latter, the WSDOT iOS App, contained a much smaller subset of information for ferry travelers that was also partially obfuscated in a hierarchy pertaining to all sorts of transportation throughout the state of Washington.

For example, to find a departure time, the user has to navigate 4 levels deep. Even when favoriting a schedule, the user still is required to navigate 2 levels deep and the navigation toggle to access 'favorites' is not always accessible, requiring the user to navigate up to the top level from wherever they are to then switch to favorites and navigate down to departures for a route.

In my review, I made note of the positive aspects of the application and explored what were its negatives. I also reviewed the App Store's reviews from customers that used the application and collected what they felt weren't being addressed and analyzed why they felt that way. I used this research and analysis to compose my feature requirements that in turn helped define my information architecture and user experience design for the prototype application. Tag cloud derived from low app store reviews of existing mobile experience; further reading of individual reviews was required due to ambiguities and low volume.

Review of Datasources & APIs

The second task outlined for this project was to identify the source of information that would populate the intended design of the application.  The proved to be tricky at the time of building the application, the APIs that would support the data requirements were separated into endpoints, at different locations, that existed in two different formats — JSON, and WDSL/SOAP.  Semi-fortunately, I reached out to the WSDOT developers and was given early access to a JSON replacement of the SOAP endpoints, that now exists today (a small refactoring made the API portion of my codebase much simpler).

The realtime webcam feeds were an additional bonus feature I wanted to add that was not captured in the primary WSDot Application nor in the base API feed.
The app brought together three API feeds. Here I mapped them for use in building the model of the iPhone app..


Armed with what the APIs could do, I connected the dots from the feature requirements to the available datasources and iterated on a application flow and wireframes.

Application flow detailing the main components of the initial version of the application

After defining the application information architecture, I built the model of the application in XCode using the a hierarchy of information that fit both the needs of the application and matched the API designs.

A snapshot of the application's storyboard in Interface Builder

The App

Screenshots of the prototype app I built. These are using real data from the publicly available APIs provided by WSDOT.

Next Steps

The next steps for completing this application would be to build in a push notification server that could facilitate the pushing of bulletins and realtime departure notifications to users whom subscribe to it. I would also like to build a 'Today View' extension that would use the users location to show next departure and available drive up spaces based on their location.
© Rob Reinhardt
Get in touch: reinhardtsf@gmail.com