https://github.com/bhappy05/random-photo-app
My pet project made with Swift to test and learn different things releated to SwiftUI & Automation
https://github.com/bhappy05/random-photo-app
ios ios-app ios-development qa-automation swiftui
Last synced: about 1 year ago
JSON representation
My pet project made with Swift to test and learn different things releated to SwiftUI & Automation
- Host: GitHub
- URL: https://github.com/bhappy05/random-photo-app
- Owner: Bhappy05
- License: gpl-3.0
- Created: 2024-10-01T16:32:55.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-24T07:02:33.000Z (over 1 year ago)
- Last Synced: 2025-04-05T12:14:18.054Z (about 1 year ago)
- Topics: ios, ios-app, ios-development, qa-automation, swiftui
- Language: Swift
- Homepage:
- Size: 2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Random Photo App by Denis Kovalev
⚠️ Please Note that this is a live project
This 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.
The 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.
Through 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.
## Roadmap
Below is the list of features I've planned to add to the project
- [x] 3 screens for different images (Any image, Cats and Dogs)
- [x] Asynchronous image fetching
- [x] Bottom sheet with info
- [x] Deep Links
- [x] Error handling with alerts
- [x] Loaders
- [x] Image download function
- [x] Toasts with info
- [x] Unit Tests
- [x] UI Tests
- [x] GitHub CI integration
- [x] Page Objects
## Screenshots and video
### Launch Screen

### Main View Controller

### Cats View Controller

### Dogs View Controller

### Bottom Sheet with info

### Loaders
https://github.com/user-attachments/assets/d47d5e2c-2a23-460e-88a8-c66cf7e2b50e
### Error handling with alert

### Toasts


### Permissions for photo library and photo saving
https://github.com/user-attachments/assets/4638c270-4daf-496d-8433-be0f3b8677a4
### UI tests

### Unit tests

### DeepLink
https://github.com/user-attachments/assets/3df1ae22-8e85-4458-a335-0a94e8c68c2b