-
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.
Merge pull request #36 from vespinola/35-updated-readme
35 updated readme
- Loading branch information
Showing
2 changed files
with
61 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,61 @@ | ||
# mobile-courier-app | ||
# JustACourierApp | ||
|
||
JustACourierApp is an example project demonstrating the skills I’ve acquired while collaborating with various teams as an iOS Engineer. | ||
|
||
While I plan to continually enhance the project, this current version represents my efforts during late-night sessions ☕️. | ||
|
||
## Project Focus | ||
|
||
- **Dependency Injection** | ||
- **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'm a little tired of using **Cocoapods** 😃) | ||
|
||
## Features | ||
|
||
1. **Dependency Injection**: Implements a flexible and testable architecture with containers (currently 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 different 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. | ||
|
||
## Demo | ||
|
||
Here is a demo of the app in action: | ||
|
||
![Video Demo](resources/recording.gif) | ||
|
||
## Contributing | ||
|
||
Contributions are welcome! Feel free to open an issue or submit a pull request. | ||
|
||
## Contributor | ||
|
||
| | | | ||
|-|-| | ||
|[![fvrodas](https://avatars.githubusercontent.com/u/2584406?v=4&s=46)](https://github.com/fvrodas)| Designer | | ||
| | | |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.