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 ☕️.
- 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 Injection: Implements a flexible and testable architecture with containers (currently one container).
- Navigation Coordinator: Manages navigation flow in a clean and organized way.
- SwiftUI: Utilizes custom styles and modifiers for a modern UI.
- Clean Architecture: Separates the project into presentation, domain, data, and app layers. The next step is to create different repositories for each layer.
- Continuous Integration: Uses GitHub Actions to automate unit tests, UI tests, and Swiftlint checks.
- UI Automation: Employs XCUITest with the Page Object Model (POM) pattern for robust UI testing.
- Unit Tests: Includes unit tests with doubles for thorough testing coverage.
To get a local copy up and running, follow these simple steps:
- Xcode 15.4 or later
- Swift 5.3 or later
- Clone the repository:
git clone https://github.com/vespinola/mobile-courier-app.git
- Open the project in Xcode:
cd mobile-courier-app
and thenopen mobile-courier-app.xcodeproj
Build and run the project using Xcode. The app simulates a shipment courier service with various functionalities to demonstrate the above-mentioned skills.
Here is a demo of the app in action:
Contributions are welcome! Feel free to open an issue or submit a pull request.
Designer | |