Skip to content

Instantly share code, notes, and snippets.

View meyusufdemirci's full-sized avatar

Yusuf Demirci meyusufdemirci

View GitHub Profile
// MARK: Wireframe
protocol HomeWireframeProtocol: class {}
// MARK: Presenter
protocol HomePresenterProtocol: class {
var interactor: HomeInteractorInputProtocol! { get set }
func getContact()
}
class HomePresenter {
var view: HomeViewProtocol!
var interactor: HomeInteractorInputProtocol!
var router: HomeWireframeProtocol!
}
extension HomePresenter: HomePresenterProtocol {
func getContact() {
interactor.getContactFromService()
}
class HomePresenter {
var view: HomeViewProtocol!
var interactor: HomeInteractorInputProtocol!
var router: HomeWireframeProtocol!
}
extension HomePresenter: HomePresenterProtocol {
func getContact() {
}
// MARK: Wireframe
protocol HomeWireframeProtocol: class {}
// MARK: Presenter
protocol HomePresenterProtocol: class {
var interactor: HomeInteractorInputProtocol! { get set }
func getContact()
}
class HomeTableController: UITableViewController {
var presenter: HomePresenterProtocol!
override func viewDidLoad() {
super.viewDidLoad()
presenter.getContact()
}
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let homeNavigationController = UINavigationController(rootViewController: HomeRouter().controller)
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = homeNavigationController
window?.makeKeyAndVisible()
return true
}
class HomeTableController: UITableViewController {
var presenter: HomePresenterProtocol!
}
extension HomeTableController: HomeViewProtocol {}
class HomeRouter: NSObject {
var controller: HomeTableController!
var presenter: HomePresenter!
var interactor: HomeInteractor!
required override init() {
super.init()
interactor = HomeInteractor()
presenter = HomePresenter()
// MARK: Wireframe
protocol HomeWireframeProtocol: class {}
// MARK: Presenter
protocol HomePresenterProtocol: class {
var interactor: HomeInteractorInputProtocol! { get set }
}
// MARK: Interactor
// Interactor -> Presenter
class HomePresenter {
var view: HomeViewProtocol!
var interactor: HomeInteractorInputProtocol!
var router: HomeWireframeProtocol!
}
extension HomePresenter: HomePresenterProtocol {}
extension HomePresenter: HomeInteractorOutputProtocol {}