More Related Content Similar to 描画とビジネスをクリーンに分ける Osaka 公開用 (20) More from Kenji Tanaka (20) 描画とビジネスをクリーンに分ける Osaka 公開用28. class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var tweets: [Tweet] = []
override func viewDidLoad() {
super.viewDidLoad()
TwitterManager.shared.getTweets() { [unowned self] result in
switch result {
case .success(let tweets):
self.tweets = tweets
self.tableView.reloadData()
case .failure:
() //
}
}
}
}
29. class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var tweets: [Tweet] = []
override func viewDidLoad() {
super.viewDidLoad()
TwitterManager.shared.getTweet() { [unowned self] result in
switch result {
case .success(let tweets):
self.tweets = tweets
self.tableView.reloadData()
case .failure:
() //
}
}
}
}
👊😤💢
33. protocol ViewControllerOutput: class {
func reloadTableView()
}
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var presenter: SomePresenter!
override func viewDidLoad() {
super.viewDidLoad()
presenter = SomePresenter(output: self)
presenter.getTweets()
}
}
extension ViewController: ViewControllerOutput {
func reloadTableView() {
tableView.reloadData()
}
}
34. protocol ViewControllerOutput: class {
func reloadTableView()
}
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var presenter: SomePresenter!
override func viewDidLoad() {
super.viewDidLoad()
presenter = SomePresenter(output: self)
presenter.getTweets()
}
}
extension ViewController: ViewControllerOutput {
func reloadTableView() {
tableView.reloadData()
}
}
35. protocol ViewControllerOutput: class {
func reloadTableView()
}
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var presenter: SomePresenter!
override func viewDidLoad() {
super.viewDidLoad()
presenter = SomePresenter(output: self)
presenter.getTweets()
}
}
extension ViewController: ViewControllerOutput {
func reloadTableView() {
tableView.reloadData()
}
}
36. class SomePresenter {
let output: ViewControllerOutput!
var tweets: [Tweet] = []
init(output: ViewControllerOutput) {
self.output = output
}
func getTweets() {
TwitterManager.shared.getTweets() { [unowned self] result in
switch result {
case .success(let tweets):
self.tweets = tweets
self.output.reloadTableView()
case .failure:
() //
}
}
}
}
37. class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var presenter: SomePresenter!
override func viewDidLoad() {
super.viewDidLoad()
presenter = SomePresenter(output: self)
presenter.getTweets()
}
}
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var tweets: [Tweet] = []
override func viewDidLoad() {
super.viewDidLoad()
getTweets() { [unowned self] result in
switch result {
case .success(let tweets):
self.tweets = tweets
self.tableView.reloadData()
case .failure:
() //
}
}
}
}