Using Github Api para:
- List repositories
- List pull requests from some repository
- Show detail from some pull request
Study about implementation, using three layers (Domain, DataSource, Presentation), in this repository I chose follow a more flexible solutions.
- Organization
- Easy to debug
- Easy to plug layers
- Componentization
- Tests
This layer is the main, there are all business logics and all model data struct necessary for the application.
- All communications are executed through interfaces like
InterfaceAdapterandRepositoryInterface. Modelsare data necessary toUseCaseslogicUseCasesare the main logic
This layer has the reponsability to handle APIs calls and access to DataBases like CoreData for example.
- All repositories here extends
RepositoryInterfaceand implement interfaces toDataSourceslike APIs orCoreDataif necessary
This layer has the reponsability to show and handle inputs from an interface, so in that example is implemented using like MVVM
- The
Coordinatorhas the responsibility to get allDataSources,UseCases,ViewModelandViewController, so this will build everything and then showViewControllerwith your relativeViewModel ViewModel, in this case, extendsInterfaceAdapterto receive responses fromUseCaseand implementUseCaseinterfaces to execute that logicsViewController, in that case, was created only to observeViewModeland modifyViewwithout any intelligence there.- The view is a view, an only structure like
XiborStoryBoards.

- Alamofire
- AlamofireImage
- Cocoapods
- Fastlane
- R.Swift
- SwiftFormat
- SwiftLint
- SwiftLocalhost
- SwiftyMocky
- Do more tests
- Discuss about necessity to translate Error from DataSource to Domain
- Discuss about best way to connect Domain to Presentation without external solutions
This project is lincesed by MIT - look at file LICENSE.md for details.

