Project example displaying data from Marvel API
Usage of Clean Swift (Clean Swift
) as main architecture for this project.
Written in Swift 4.2
.
The project is structured as:
-Infrastructure
-Interface
where,
Infrastructure
: Contains all the core of the project.
- Managers
- AppConfig
- Models
- Network + API
- Tools
Interface
: Contains the presentation busniess of the project.
- Scenes
- Components
- iOS 12.0+
- Alamofire - The network library.
Alamofire is a supported framework with MIT license used to manage network requests easier. It gives features like:
- Chainable Request / Response Methods
- URL / JSON / plist Parameter Encoding
- Upload File / Data / Stream / MultipartFormData
- Network Reachability
It also helps to do asynchronous tasks on network requests, leaving the main queue free for UI threads.
- CryptoSwift - The encoding library
CryptoSwift is a supported framework with Copyright license used to manage the encrypting process for requests.
- Crypto related functions and helpers for Swift implemented in Swift
- KingFisher - The image library
- Asynchronous image downloading and caching.
-
URLSession
-based networking. Basic image processors and filters supplied. - Multiple-layer cache for both memory and disk.
Kingfisher is a supported framework with MIT license used to mange the image caching and presenting.
To run the project Carthage is needed.
After installing carthage, open a new terminal session, navigate to project folder under marvels directory.
run carthage bootstrap --platform iOS
- Carthage is a dependency manager for external frameworks. The advantages of using Carthage instead of CocoaPods or embedded frameworks is that with Carthage you can just use a reference to your frameworks and avoid to have large files in the repository. It is completely compatible and supported.
- Unit testing for scenes
interactors
andpresenters
- Unit testing for
workers
- Add UITests
Aitor Pagan - Initial work
Contributors who participated.
This project is licensed under the MIT License