diff --git a/README.md b/README.md index f780183..28fab80 100644 --- a/README.md +++ b/README.md @@ -1 +1,46 @@ -# mobile-courier-app \ No newline at end of file +# 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. \ No newline at end of file