Skip to content

JustACourierApp is an example project demonstrating the skills I’ve acquired while collaborating with various teams as an iOS Engineer.

License

Notifications You must be signed in to change notification settings

vespinola/mobile-courier-app

Repository files navigation

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

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

Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request.

Contributor

fvrodas Designer

About

JustACourierApp is an example project demonstrating the skills I’ve acquired while collaborating with various teams as an iOS Engineer.

Topics

Resources

License

Stars

Watchers

Forks

Languages