How to run the code:
This project doesn't use any external library, so you can run the project without importing anything external. Make sure you have latest Xcode simply by tapping the run button. As shown in the screenshot:
![Screenshot 2024-05-03 at 6 52 35 PM](https://private-user-images.githubusercontent.com/32218777/327794261-bf869532-ef7d-4be8-9d7d-f295b9de0494.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMwNjYzMTcsIm5iZiI6MTcyMzA2NjAxNywicGF0aCI6Ii8zMjIxODc3Ny8zMjc3OTQyNjEtYmY4Njk1MzItZWY3ZC00YmU4LTlkN2QtZjI5NWI5ZGUwNDk0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA3VDIxMjY1N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRmYjk5MDIxYWZhYjI5Yzc0MDE5YTYzYjlhZGZjMDliNWMzOTY1MjJlMmQwYmJjYmFhZTZkNTc5NDMwZGE1NjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.bgyoDjAfmAJCnXgsJUj_aATCVAd_5C8SYWbAqDyjKmk)
Here is a video demo:
Screen.Recording.2024-05-03.at.4.31.04.PM.mp4
How to run unit tests:
There are a few ways to run the unit tests. What I find easy is this one, first going to Test Navigator from the section in left (see screenshot) and then running the unit test package.
![Screenshot 2024-05-03 at 6 53 49 PM](https://private-user-images.githubusercontent.com/32218777/327795037-ddc4b8d2-c975-46c9-aaf4-ca4c0d2da6cc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMwNjYzMTcsIm5iZiI6MTcyMzA2NjAxNywicGF0aCI6Ii8zMjIxODc3Ny8zMjc3OTUwMzctZGRjNGI4ZDItYzk3NS00NmM5LWFhZjQtY2E0YzBkMmRhNmNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA3VDIxMjY1N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ4ZDRlYTA3NTFlMDk2MDk4ZGIzYmQxZTkwMjNlZWI1NDY4ODkyNTM0MzQ4MDYxNTAzYTRkNmRiNTRmYTQyYTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.PPUxcxHHYVbi9gCxjBZux6Zr0Thid_FXeMGcDy5nEfw)
Tests Coverage:
Please note that some of these files are UI related which I have not included in writing the unit tests for.
![Screenshot 2024-05-03 at 7 17 30 PM](https://private-user-images.githubusercontent.com/32218777/327801580-8dd3f5cb-d1e3-4d5a-a121-9a231ccd390f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMwNjYzMTcsIm5iZiI6MTcyMzA2NjAxNywicGF0aCI6Ii8zMjIxODc3Ny8zMjc4MDE1ODAtOGRkM2Y1Y2ItZDFlMy00ZDVhLWExMjEtOWEyMzFjY2QzOTBmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA3VDIxMjY1N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJkNDBiNzQ0NDFmZWQ0YjRkMDU0NDY0ZmYwNGFjYTFhN2M4M2Q5YTU0ZjFiMWFlOTQzNzRkMjQ1MjlmMzNjYWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.vdOx-tXqKc9bTuVWpyginxVY9vtVTtgVdKkdjV5HjEU)