My time at Audible
I worked as an SDE intern at Audible the summer of 2021. During that time, I was a member of the Rhapsody iOS development team. Through my experiences here, I learned more about the Agile software development process, source control via git, and iOS development in general (it was my first time using Swift). My projects centered around improving iOS CarPlay and creating a new widget prototype.
CarPlay Streaming
The first major project I worked on while at Audible was adding streaming support for iOS CarPlay. Previously, users had to download any library item they wanted to listen to prior to playing it through the CarPlay interface. This can cause inconvenience to customers, as they either had to have all content downloaded before leaving the house or had to download large files on the go, probably over a cellular network. Streaming presented a solution to these problems. In order to accomplish this goal, I modified logic to allow titles that aren’t fully downloaded to display in the CarPlay interface. This display is sensitive to a user’s network status and settings and will only show streamed content in CarPlay if a user is on WiFi or if the user has stream/download only over WiFi disabled in their settings. I demoed this work to the iOS development teams during my time at Audible.
CarPlay Player Improvements
Along with adding streaming support to CarPlay, I worked to create more buttons for the Now Playing screen. Prior to my work, the only buttons presented to the user were the play/pause button and buttons to skip forward/backward in audio by 30 secodns. For any more advanced controls, a user would have to switch between their CarPlay interface and their device, which can make for distracted driving. In order to prevent this, I worked on adding more buttons to the CarPlay display: skip forward/backward by a chapter, narration rate, and a “like” button. While working on this project, I became very familiar with using the CarPlay API and creating and modifying CarPlay templates. I demoed this work to the iOS development teams during my time at Audible.
Listening Stats Widget Prototype
In Audible, users listening time stats are tracked and stored by the app. Many users are interested in knowing how much time they have spent listening to audio books and other content. The listening stats widget prototypes were proposed to make viewing a user’s listening time more convenient. The prototypes were available in small, medium, and large widget sizes, and could be configured to show a selected statistic. The today and total listening times were text-based to match the app, but the daily listening time is displayed via a bar graph. The work was largely completed through SwiftUI and WidgetKit.