-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
46 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,46 @@ | ||
# mobile-courier-app | ||
# JustACourierApp | ||
|
||
JustACourierApp is an example project to demonstrate the skills I learn along the way working with multiple teams in this 8 years as an iOS Engineer. | ||
|
||
## Project Focus | ||
|
||
- **Dependency Injections** | ||
- **Navigation with Coordinator** | ||
- **SwiftUI** (custom styles, modifiers) | ||
- **Clean Architecture** (presentation, domain, data, and app layer folders) | ||
- **CI with GitHub Actions** (jobs for unit tests, UI tests, and Swiftlint linter) | ||
- **UI Automation with XCUITest** (using POM Pattern) | ||
- **Unit Tests with Doubles** | ||
- **Dependency Management with SPM**(I am little tire of using **Cocoapods** 😃) | ||
|
||
## Features | ||
|
||
1. **Dependency Injection**: Implements a flexible and testable architecture with Containers(actually one container). | ||
2. **Navigation Coordinator**: Manages navigation flow in a clean and organized way. | ||
3. **SwiftUI**: Utilizes custom styles and modifiers for a modern UI. | ||
4. **Clean Architecture**: Separates the project into presentation, domain, data, and app layers. The next step is to create differents repositories for each layer. | ||
5. **Continuous Integration**: Uses GitHub Actions to automate unit tests, UI tests, and Swiftlint checks. | ||
6. **UI Automation**: Employs XCUITest with the Page Object Model (POM) pattern for robust UI testing. | ||
7. **Unit Tests**: Includes unit tests with doubles for thorough testing coverage. | ||
|
||
## Getting Started | ||
|
||
To get a local copy up and running, follow these simple steps: | ||
|
||
### Prerequisites | ||
|
||
- Xcode 15.4 or later | ||
- Swift 5.3 or later | ||
|
||
### Installation | ||
|
||
1. Clone the repository: `git clone https://github.com/vespinola/mobile-courier-app.git` | ||
2. Open the project in Xcode: `cd mobile-courier-app` and then `open mobile-courier-app.xcodeproj` | ||
|
||
## Usage | ||
|
||
Build and run the project using Xcode. The app simulates a shipment courier service with various functionalities to demonstrate the above-mentioned skills. | ||
|
||
## Contributing | ||
|
||
Contributions are welcome! Feel free to open an issue or submit a pull request. |