MVVM : Model, View, ViewModel

애플리케이션에서 사용할 데이터들을 관리
import Foundation
//ViewModel.swift
var gameScore: Int?
var gameScoreLabel: UILabel
func updateGameScoreLabel() {
var text = ""
if let gameScore = gameScore, gameScore == 100 {
text = "Excellent!"
} else if let gameScore = gameScore, gameScore >= 90 && gameScore < 100 {
text = "Great Job!"
} else if let gameScore = gameScore, gameScore < 90 {
text = "Not bad~"
}
gameScore.text = text
}
//ViewController.swift
gameScoreLabel.text = viewModel.updateGameScoreLabel
일반적으로 ViewController에 View에서 변화가 일어나는 함수들이 정의된다.
그러나 이런 함수들이 점점 많아지면, 코드가 ViewController에 너무 많아질 것이다.
따라서 이런 함수들을 ViewModel에 옮기고, 값들을 미리 세팅한다. 이후 ViewController에서 ViewModel을 선언한 뒤 ViewModel에 있는 함수를 호출한다.
참고: https://labs.brandi.co.kr/2018/02/21/kimjh.html
https://velog.io/@eddy_song/ios-mvc