Skip to content

Instantly share code, notes, and snippets.

View meyusufdemirci's full-sized avatar

Yusuf Demirci meyusufdemirci

View GitHub Profile
class Services {
class func avgPrice(symbol: String, completion: @escaping(Swift.Result<AveragePriceResponseModel, ErrorModel>) -> Void) {
ServiceManager.shared.sendRequest(request: AveragePriceRequestModel(symbol: symbol)) { (result) in
completion(result)
}
}
}
class HomeController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
Services.avgPrice(symbol: "BTCUSDT") { result in
switch result {
case Result.success(let response):
// Handle successfull response
break
@meyusufdemirci
meyusufdemirci / baseurlbyscheme.swift
Last active February 17, 2020 20:15
Base URL by Scheme
import SwiftUI
struct ContentView: View {
var baseURL: String {
#if DEBUG
return "This is DEBUG base URL"
#elseif TEST
return "This is TEST base URL"
#elseif RELEASE
// MARK: Wireframe
protocol ContactDetailWireframeProtocol: class {}
// MARK: Presenter
protocol ContactDetailPresenterProtocol: class {
var interactor: ContactDetailInteractorInputProtocol! { get set }
func getContact()
}
class ContactDetailPresenter {
var view: ContactDetailViewProtocol!
var interactor: ContactDetailInteractorInputProtocol!
var router: ContactDetailWireframeProtocol!
var data: Any?
}
extension ContactDetailPresenter: ContactDetailPresenterProtocol {
func getContact() {
class ContactDetailTableController: UITableViewController {
var presenter: ContactDetailPresenterProtocol!
var contact: Contact!
override func viewDidLoad() {
super.viewDidLoad()
presenter.getContact()
}
class HomeRouter: NSObject {
var controller: HomeTableController!
var presenter: HomePresenter!
var interactor: HomeInteractor!
required override init() {
super.init()
interactor = HomeInteractor()
presenter = HomePresenter()
class ContactDetailRouter: NSObject {
var controller: ContactDetailTableController!
var presenter: ContactDetailPresenter!
var interactor: ContactDetailInteractor!
required init(data: Any? = nil) {
super.init()
interactor = ContactDetailInteractor()
presenter = ContactDetailPresenter()
class HomeRouter: NSObject {
var controller: HomeTableController!
var presenter: HomePresenter!
var interactor: HomeInteractor!
required override init() {
super.init()
interactor = HomeInteractor()
presenter = HomePresenter()
class HomePresenter {
var view: HomeViewProtocol!
var interactor: HomeInteractorInputProtocol!
var router: HomeWireframeProtocol!
}
extension HomePresenter: HomePresenterProtocol {
func getContact() {
interactor.getContactFromService()
}