Car average prices based on Fipe API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Carbrito.xcodeproj
Carbrito.xcworkspace
Carbrito
CarbritoUnitTests
Fastlane
.gitignore
.swiftlint.yml
Gemfile
Gemfile.lock
Podfile
Podfile.lock
Readme.md
codecov.yml

Readme.md

Car 🐐

codebeat badge Build Status codecov

Built with enviroment

  • Xcode 9.0 beta 6
  • Swift 4.0

Setup

  1. If you does not have Cocoapod: gem install cocoapod
  2. Install pods: pod install
  3. Open open Carbrito.xcworkspace
  4. To use fastlane: https://github.com/ronanrodrigo/carbrito/tree/master/Fastlane

Structure

┌── <Module Name>
│   ├── Core ───────────→ Itens without third party dependencies;
│   │   ├── Entities ───→ Entities from Clean Architecture. Is where all domain logic lives;
│   │   ├── Gateways ───→ Gateways protocols. Used to get data from anywhere;
│   │   ├── Presenters ─→ Presenter protocols. Used to present data from anywhere;
│   │   ├── Routers ────→ Routers protocols. Used to navigate to anywhere;
│   │   └── Usecases ───→ Usecase from Clean Architecture. Is where all app logic lives;
│   ├── Factories ──────→ Agnostic to Architecture. Used to symplify D.I. and object constructions;
│   ├── Controllers ────→ Just controller. Does not know about UI stuffs like events and elements;
│   ├── Gateways ───────→ Concrete implementation of gateways. Ex. knows about network or database;
│   ├── Routers ────────→ Concrete implementation of routers. Ex. knows about navigation controller;
│   └── Views ──────────→ UI elements and events are placed here;
├── Common ─────────────→ Shared stuffs accros modules;
└── Essentials ─────────→ Essential stuffs for the UIAppliction.

Main flow

┌→ View ─────────→ Controller ─────────→ Usecase ─────────→ Gateway?/Presenter? ┐
| View                                                                          |
| Where user interaction are fired. Ex. Button tapped;                          |
|                                                                               |
| Controller                                                                    |
| Call usecase to execute user interaction;                                     |
|                                                                               |
| Usecase                                                                       |
| Business logic;                                                               |
|                                                                               |
| Gateway                                                                       |
| Optional, used to get data from anywhere. Ex. Make a HTTP request.            |
| Generaly injected in usecase;                                                 |
|                                                                               |
| Presenter                                                                     |
| Optional, used to present data to anywhere. Ex. Update view;                  |
| Generaly injected in usecase;                                                 |
└─────────────←──────────────────←───────────────←────────────────←─────────────┘

🐐 Goat in Brazil is called by Cabrito.