This application is designed to record, play, rename, and delete audio recordings on an iOS device. It includes a user-friendly UI with meaningful images and gradients for a better user experience.
The application consists of the following main components:
- RecorderViewModel: Manages the recording process.
- RecordingsListViewModel: Manages the list of recordings and handles renaming and deleting.
- PlayerViewModel: Manages the playback of recordings.
- Views: Various SwiftUI views to interact with the user.
The application consists of the following technologies, languages and main concepts:
- Swift
- SwiftUI
- Combine
- UIKit
- ObjectiveC
- Background audio Recording
- Audio Crash Resistance
- Consise Audio file size
Handles audio recording functionalities.
startRecording()
: Starts a new recording.pauseRecording()
: Pauses the ongoing recording.resumeRecording()
: Resumes the paused recording.stopRecording()
: Stops the recording and saves it.
Manages the list of recordings and provides functionalities to rename and delete recordings.
fetchRecordings()
: Fetches the list of recordings from the document directory.renameRecording(at index: Int, to newName: String)
: Renames a recording.deleteRecording(at index: Int)
: Deletes a recording.
Handles audio playback functionalities.
playAudio()
: Plays the selected audio recording.pauseAudio()
: Pauses the audio playback.
A view that provides the UI for recording audio.
A view that displays the list of recordings and provides options to rename and delete.
A view that provides the UI for playing audio recordings.
A view that visualizes the audio levels during recording.
A view that allows the user to rename a recording.
To ensure audio recordings are saved even if the app crashes or is killed, we use the following approach:
- Periodic Saving: The recording is periodically saved to a temporary file. In case of an unexpected termination, the last saved state can be recovered.
- Auto-Restart: On app launch, check for any temporary recordings and prompt the user to save or discard them.
To minimize app space usage:
- Compression: Recordings are saved in a compressed format (e.g., AAC).
- File Management: Users can delete recordings they no longer need, freeing up space.
- Rename File Functionality Implemented: Allows users to rename their recordings.
- Delete File Functionality Implemented: Allows users to delete their recordings.
- Added Meaningful Images: Enhanced UI with appropriate images.
- Added Gradient for Better UI: Gradient background for a visually appealing UI.
- Email : iOSDeveloper.ipa@gmail.com
- Mobile: +91 8121 040 308
- Linked-in: https://www.linkedin.com/in/pavan-kumar-arepu-software-architect-engineer/