전체 글

iOS/RxSwift

[RxSwift] RxSwift와 RxCocoa로 Toggle Button 구현하기

UIKit으로 구현하기var isToggled: Bool = false // 버튼의 상태를 담고있는 변수private lazy var toggleButton: UIButton = { let button = UIButton() button.backgroundColor = .clear button.setTitle("Off", for: .normal) button.setTitleColor(.black, for: .normal) button.addTarget(self, action: #selector(toggleButtonTapped), for: .touchUpInside) return button}() // 버튼 생성@objc func toggleButtonTapped() { ..

iOS/Design Pattern

[iOS/Design Pattern] MVVM에 대한 나의 고찰

왜이리 MVVM에 집착하는가?다른 디자인 패턴도 많은데 왜 MVVM 패턴에만 집착하는가?MVC 패턴은 간단하고 이해하기 쉬운 구조를 가지고 있지만 Controller의 부담이 커지기 쉽다는 단점이 있고, MVP 패턴은 View와 Presenter의 의존성이 높아진다는 단점이 있다. 물론 MVVM 패턴이 단점이 없는 것은 아니지만 MVC, MVP와 비교했을 때 MVVM이 제공하는 장점이 있기 때문에 많은 개발자들이 MVVM 패턴에 집착하는 것 같다. 내가 생각하는 MVVM의 장점은 아래와 같다.1. 데이터 바인딩 : MVVM은 View와 ViewModel 간의 데이터 바인딩을 통해 자동으로 UI를 업데이트 한다. 데이터 바인딩을 통해 코드를 간결하게 유지하고, UI와 데이터의 동기화를 자동으로 처리한다. ..

Swift/UIkit

[UIKit] Button의 이벤트를 addAction 메소드를 이용해서 처리해보자. (iOS 14+)

기존의 UIButton Action Handlerprivate let button: UIButton = { let button = UIButton() button.setTitle("버튼", for: .normal) button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside) return button}()@objc private func buttonTapped() { print("Button Tapped!")}Button의 이벤트 처리를 위해 @objc로 정의한 메소드를 addTarget 메소드를 이용하여 처리하였다. addActioniOS 14+ 부터 addAction 메소드를 이용해서 Button의 이벤트..

iOS/CoreData

[CoreData] CoreData Migration을 알아보자.

Migration ?마이그레이션(Migration)은 앱 개발 과정에서 Data Model을 변경할 때 기존의 Data와의 호환성을 유지하면서 새로운 Data Model로 이전하기 위한 과정이다. 앱을 개발하는 동안 새로운 속성이나 엔티티를 추가하거나 기존의 속성과 엔티티를 제거하거나 변경하는 경우가 있다. 이때 기존 사용자 데이터가 새로운 Data Model과 호환될 수 있도록 이전해주어야한다. CoreData의 마이그레이션에는 두 가지 종류가 있다. 1. 경량 마이그레이션(Lightweight Migration)✅ 자동으로 실행되며 비교적 간단한 데이터 모델 변경 시 사용된다.✅ 새 모델과 기존 모델의 차이를 비교하여 자동으로 데이터 마이그레이션을 수행한다. 2. 수동 마이그레이션(Manual Mig..

여성일
성일노트