SwiftUI-expert

Job ID: 31677139

Budget: $30 – $250 USD

0. Code should have inline documentation and main functions should be documented. An example of function documentation is in the `saveFile` function in the `StorageManager` class.
1. Integrate the `CameraController` and the view in `Main.storyboard` in the `camera` project into this SwiftUI project (`ID3D iOS mid-level SwiftUI Test 03`). Tapping on the card titled "Camera" should take you into the UIKit camera view to take pics. Pics are saved to local storage and, for test purposes, is also saved to your camera roll.
2. Adjust the call to the `saveFile` function in `StorageManager` to save to a subfolder for this capture session. Name the capture session to the `Date` (with time) the user first navigated to the integrated UIKit camera view.
3. Metadata for each image captured should be saved to CoreData. There is a CoreData model called `Capture` for this purpose.
4. Add a label to the top of the camera view in `Main.storyboard`. As a user takes pictures, update the capture count in the label added.
5. After a user takes N pictures, the label above should display text that they have completed their capture session, wait 2 seconds, then automatically navigate back to the initial SwiftUI view that displays the "Camera" card. Set N to a random number between 3 and 8.
6. Add a button to the main view that says "Compress Last Session". This button should zip the folder with the images from the capture session. Also, add a ProgressView to the main view to show the progress for the zip above. Use the `zip` function in `ArchiveManager` and leverage Combine as needed. When the progress view hits 100%, display an alert to let the user know it is done.
Related categories: Mobile App Development iPhone Objective C iPad Swift