NMIX 4310 (Rich Media Production) - Final Project
A more advanced iOS application with iTunes API integration and parsing of MySQL data, RSS feeds, and XML
December 5, 2018
My final project for NMIX 4310: Rich Media Production involved making an iOS app that allows users to search for and play full episodes of podcasts on their device. Using the iTunes API in a similar way to my Jukebox project, users enter search terms into the box to find podcasts. The iTunes API returns data of results related to the search terms including the title of the podcast, the hosts, the cover art, and the URL to the RSS feed containing details about the episodes of each podcast. The resulting podcasts are arranged in a Tableview that the user can scroll through and select a podcast.
Once the user selects a podcast, a list of episodes are shown in another Tableview. This is done by taking the URL of the RSS feed found in the downloaded iTunes data, and downloading the XML code of the feed. Parsing through this XML code allows the app to gather information about the title, publish date, duration, and cover art of each individual episode. It also provides a link to the Mp3 file for the episode. When the user selects an episode of a podcast, they are brought to a fourth view. This view initially informs users that the episode they have chosen to listen to is currently downloading. Playback starts as soon as the download is complete, and this notification disappears revealing the player.
The player shows the cover art for the episode, the episode title & publishing date, and a slider showing the current playback progress of the episode. It also contains a play/pause button, as well as two buttons to seek forwards or backwards. The user can use these two seek buttons to skip ahead or rewind in the podcast. If the user does not pause the podcast, playback will continue while the app is minimized. The user can select a new episode or search for a new podcast at any time, and the playback will switch to the new episode.
Swift, Xcode, iTunes API, Adobe Illustrator