VoiceChanger App
Basic Functionality
The app contains two scenes of content: one for recording an audio file, and one for playing the audio with different effects. The app contains two pages of content (one each for recording and playing audio), and uses UINavigationController to navigate between these two scenes. All UI elements (buttons and text) are appropriately formatted for iPhone and iPad Portrait and Landscape layouts. UI elements are appropriately positioned on the screen for iPhone and iPad portrait and landscape layouts. Actions and Outlets
The app uses IBAction methods to record audio and playback sounds. The app connects each button on the Storyboard to the correct IBAction method. Labels and buttons are shown or hidden as appropriate. In the first scene, the Recording label and the Stop button are disabled and enabled appropriately: When no recording is taking place the Stop button is disabled. While recording is taking place the Stop button is enabled and the Record button disabled AVAudioRecorder
The first scene of the app uses AVAudioRecorder to record audio. The app successfully uses AVAudioRecorder to record audio. Delegates and Segues
The app uses the audioRecorderDidFinishRecording() method to determine when the audio has finished recording. The app uses the delegate pattern and implements the audioRecorderDidFinishRecording() method. The app programmatically triggers a segue from the first scene to the second by using the performSegueWithIdentifier() method. The app does not use a Storyboard segue hardcoded to the Stop button. A segue from the first scene to the second is programmatically triggered via performSegueWithIdentifier(). UINavigationController
The app allows users to re-record audio after a recording is complete. The app allows the user to re-record by navigating back to the first scene from the second. Sound Effects
The second scene of the app contains the following audio effects: Snail (slow), Rabbit (fast), Chipmunk (high pitch), Darth Vader (low pitch), Echo and Reverb. The second scene of the app contains the following buttons for audio effects: Snail (slow), Rabbit (fast), Chipmunk (high pitch), Darth Vader (low pitch), Echo and Reverb. All six buttons work properly to play the associated sounds. Code Quality
Code is effectively abstracted. Potentially repetitive blocks of code are effectively abstracted into reusable methods. Code adheres to Swift naming and style conventions. Code adheres to Swift naming and style conventions. Code uses appropriate and effective comments. Code is readable and easy to follow. Any code that may be hard to understand is commented effectively.