{"id":18060245,"url":"https://github.com/bhappy05/random-photo-app","last_synced_at":"2025-04-05T12:14:21.413Z","repository":{"id":257958723,"uuid":"866095722","full_name":"Bhappy05/random-photo-app","owner":"Bhappy05","description":"My pet project made with Swift to test and learn different things releated to SwiftUI \u0026 Automation","archived":false,"fork":false,"pushed_at":"2025-02-24T07:02:33.000Z","size":2097,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T12:14:18.054Z","etag":null,"topics":["ios","ios-app","ios-development","qa-automation","swiftui"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bhappy05.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-01T16:32:55.000Z","updated_at":"2025-02-24T07:02:36.000Z","dependencies_parsed_at":"2024-10-17T05:02:47.998Z","dependency_job_id":"41fbbfef-2adb-4fed-b3d9-a28b14e12968","html_url":"https://github.com/Bhappy05/random-photo-app","commit_stats":null,"previous_names":["bhappy05/random-photo-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bhappy05%2Frandom-photo-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bhappy05%2Frandom-photo-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bhappy05%2Frandom-photo-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bhappy05%2Frandom-photo-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bhappy05","download_url":"https://codeload.github.com/Bhappy05/random-photo-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332596,"owners_count":20921854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ios","ios-app","ios-development","qa-automation","swiftui"],"created_at":"2024-10-31T04:06:39.277Z","updated_at":"2025-04-05T12:14:21.402Z","avatar_url":"https://github.com/Bhappy05.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Random Photo App by Denis Kovalev\n⚠️ Please Note that this is a live project\n\nThis app was developed to practice programming with Swift and enhance my understanding of unit and UI testing using XCTest, it is primarily designed for personal development.\nThe application is comprehensively tested, with all features covered by either UI or unit tests. A shared MockURLProtocol class was created to handle mocking across all tests. For UI testing, environment variables and session overrides were implemented within SceneDelegate to simulate and test different scenarios effectively.\nThrough developing this project, I gained a deeper understanding of the structure of Swift applications, the fundamentals of unit testing, and the process of data mocking. I also improved my skills in writing comprehensive UI tests, ensuring that the app functions smoothly across various scenarios.\n\n## Roadmap  \nBelow is the list of features I've planned to add to the project\n\n- [x] 3 screens for different images (Any image, Cats and Dogs)\n- [x] Asynchronous image fetching\n- [x] Bottom sheet with info\n- [x] Deep Links\n- [x] Error handling with alerts\n- [x] Loaders\n- [x] Image download function\n- [x] Toasts with info\n- [x] Unit Tests\n- [x] UI Tests\n- [x] GitHub CI integration\n- [x] Page Objects \n\n## Screenshots and video\n### Launch Screen\n![Launch_screen](https://github.com/user-attachments/assets/0194597a-a734-4698-b235-639787a72dfb)\n\n### Main View Controller\n![MainVC](https://github.com/user-attachments/assets/8567e5b1-feff-4e62-a6b8-87550c777a7b)\n\n### Cats View Controller\n![CatsVC](https://github.com/user-attachments/assets/aee4a8ca-5779-47b6-b3b0-a24d6cd5b379)\n\n### Dogs View Controller\n![DogsVC](https://github.com/user-attachments/assets/ce3f7cbe-8fda-4c3b-803d-cb6393103924)\n\n### Bottom Sheet with info\n![Bottom_sheet](https://github.com/user-attachments/assets/6a440426-9027-4973-8128-39823d71db77)\n\n### Loaders \nhttps://github.com/user-attachments/assets/d47d5e2c-2a23-460e-88a8-c66cf7e2b50e\n\n### Error handling with alert\n![Alert](https://github.com/user-attachments/assets/7b250e70-137d-4957-b3f4-083402b70f5c)\n\n### Toasts\n![Toast2](https://github.com/user-attachments/assets/5f9750b0-5591-4ef8-9c2a-ba24df451339)\n\n![Toast1](https://github.com/user-attachments/assets/51d322c2-f079-466b-847e-8c785efaf95f)\n\n### Permissions for photo library and photo saving\nhttps://github.com/user-attachments/assets/4638c270-4daf-496d-8433-be0f3b8677a4\n\n### UI tests\n![image](https://github.com/user-attachments/assets/bbea0ee3-53d5-40b6-88ed-aa28e7fcbb2f)\n\n### Unit tests\n![image](https://github.com/user-attachments/assets/b1426ff1-64c8-4e18-87ab-013941606a18)\n\n### DeepLink\nhttps://github.com/user-attachments/assets/3df1ae22-8e85-4458-a335-0a94e8c68c2b\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhappy05%2Frandom-photo-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbhappy05%2Frandom-photo-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhappy05%2Frandom-photo-app/lists"}