⭐️ 개발/Code Refactor
[Refactor] Weather 플젝에서 연산 프로퍼티로 모델/컨트롤러 분리하기
struct Weather { let icon, description: String let wind: Double let humidity, temp, tempMax, tempMin: Int var tempLabel: String { return "현재 온도는 \(temp)°" } var maxMinLabel: String { return "최고 \(tempMax)° 최저 \(tempMin)°" } var humidityLabel: String { return "현재 습도는 \(humidity)% 입니다." } var windLabel: String { return "현재 풍속은 \(wind)m/s 입니다." } var descriptionLabel: String { return description.co..
[Refactor] Enum을 사용해서 화면 분기처리하기
enum ViewType { case start case change var menuTitle: String { switch self { case .start: return "시작하기" case .change: return "변경하기" } } var navigationTitle: String { switch self { case .start: return "다마고치 선택하기" case .change: return "다마고치 변경하기" } } } var viewType: ViewType = .start override func viewDidLoad() { super.viewDidLoad() setupNavigation() setupCollectionView() } // MARK: - Custom Metho..
[리팩토링] 캐치미 프로젝트에서 프로퍼티 옵저버 적용하기
프로퍼티 옵저버나 연산 프로퍼티 같은 개념들은 사실 배우고 나서 실제 프로젝트에 적용을 하려고 노력하지 않으면 매번 체화시키기 어려운 것 같다. 현재 진행 중인 캐치미 프로젝트에 어떻게 적용시켰는지 기록해보려고 한다. 우선, 그 전에 프로퍼티 옵저버 중에서 didSet 개념을 다시 잡고 가자면 저장 프로퍼티를 관찰하고 있다가 값이 변경된 직후에 호출되는 거다. 어떻게 사용했냐면, 우선 어떤 방식으로 해당 코드가 돌아가야 하는지 살펴보면, 글을 10개(2단계는 10개, 3단계는 30개) 이상 작성하면 레벨이 올라가서 popupView(팝업창)의 levelData가 올라가고, catchuImageView의 캐츄 캐릭터가 업그레이드 된다. 위 코드가 LevelUpPopupVC에서 levelData와 catch..