Skip to content

Commit

Permalink
Merge pull request #36 from vespinola/35-updated-readme
Browse files Browse the repository at this point in the history
35 updated readme
  • Loading branch information
vespinola committed Jun 29, 2024
2 parents d25327a + f1c64a6 commit d30bf7c
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 1 deletion.
62 changes: 61 additions & 1 deletion README.md
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 |
| | |
Binary file added resources/recording.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit d30bf7c

Please sign in to comment.