본문 바로가기

🍎 Swift80

[스터디4일차][RxSwift] RxCocoa 1.  RxCocoa란?RxSwift와 함께 사용되는 라이브러리로 UI와 관련된 작업을 반응형으로 처리할 수 있게 한다  2.  RxCocoa의 주요 기능2-1.  UI 바인딩여러 UI요소들(UIButton, UILabel, UITextField...) 과 데이터 사이의 바인딩을 쉽게 처리한다Observable로 변환하여 상태 변화를 쉽게 감지하고 처리한다활용 예시let textField = UITextField()let label = UILabel()textField.rx.text.orEmpty .bind(to: label.rx.text) .disposed(by: disposeBag)*텍스트필드 값 업데이트 시 즉시 반영 let switchControl = UISwitch()let butto.. 2024. 10. 22.
[Swift🍎] RxGesture로 간편하게 View에 클릭이벤트 넣기 종종 StackView와 같이 터치 인터페이스와 관련없는 View 속성에 버튼을 넣고 싶은(넣어야 하는) 경우가 생긴다 보통 UITapGestureRecognizer를 사용해서 탭 제스처를 추가하는데,마침 이번 프로젝트에서는 RxSwift를 활용하고 있어서 더 간편하게 사용 가능한 RxGesture를 사용해 보았다  사용 방법1.  Xcode의 File > Add Package Dependency 메뉴를 선택하고 아래의 URL을 입력  →  https://github.com/RxSwiftCommunity/RxGesture GitHub - RxSwiftCommunity/RxGesture: RxSwift reactive wrapper for view gesturesRxSwift reactive wrapper.. 2024. 10. 17.
[Swift🍎] UIColor를 CGColor에 할당해야 하는 경우 사이드 프로젝트 진행 중 아래와 같이 UIColor를 CGColor로 할당해야 하는 경우가 있는데, 그 이유가 궁금해서 찾아보았다  먼저 두 가지 모두 색상을 나타내는 객체이지만 사용되는 환경과 목적에 따라 변환 유무가 결정된다  UIColor (UIKit 색상 객체)UIKit에서 제공하는 UI의 대부분의 시각적 속성에서 사용할 수 있다(ex. UIView, UILabel, UIButton...)OS와 iPad에 주로 사용되며, 다양한 기기 간 자동 색상 조정 및 다크모드 지원 같은 기능을 내장하고 있다let view = UIView()view.backgroundColor = UIColor.red  CGColor (Core Graphics 색상 객체)레이어 관련 속성에서 색상을 설정할 때 필요하다레이어.. 2024. 10. 16.
[Swift🍎] RxSwift에서 bind와 driver의 차이 1.  BindObservable을 UI요소에 바인딩 할 때 사용하며 데이터 스트림을 직접적으로 UI와 연결할 수 있다주요 특징1.  간단한 코드로 UI 업데이트를 할 수 있다     → OnNext만 가지고있기 때문에 단순히 생성되는 값을 넘기고 싶을 때 유리하다2.  스레드 처리: 일반적으로 메인 스레드에서 동작하지 않으며 직접적으로 스레드를 지정해 주어야 할 수 있다3.  에러 처리: 에러 처리를 포함하지 않는다     → onNext만 가지고 있어서 error&completed 가 발생하지 않는 무한한 이벤트를 방출할 수 있다     → 옵저버블이 eroor를 방출하면 해당 옵저버블은 종료되며, 따로 에러를 처리하거나 UI에 반영할 수 없다4.  메모리 관리: bind는 Disposable을 반환.. 2024. 10. 14.
[스터디2일차][RxSwift] 연산자 1.  결합 연산자(Combine)여러 Observable을 결합하여 하나의 Observable로 만듦  1-1.  merge여러 Observable을 병합하여 하나의 Observable로 결합각 Observable은 독립적으로 동작하며 값이 발생하는 즉시 병합되어 방출된다(순번X)활용 예시let observable1 = Observable.of(1, 2, 3)let observable2 = Observable.of(4, 5, 6)Observable.merge(observable1, observable2) .subscribe(onNext: { value in print(value) }) //방출되는 순서에 따라 1, 2, 3, 4, 5, 6 또는 다른 순서일 수 있다   1-.. 2024. 10. 11.
[스터디1일차][RxSwift] Observable & Subject 1.  Observable비동기적으로 데이터를 방출하는 데이터 소스이며 여러 이벤트를 통해 데이터를 전달함구독자(Observer)는 Observable을 관찰(구독 Subscribe)하고 있다가 전달되는 이벤트를 처리한다  1-1.  전달되는 주요 이벤트onNext새로운 데이터를 방출할 때마다 호출됨onError에러 방출 후 더이상 데이터를 방출하지 않음onCompleted오류가 발생하지 않았다면 마지막 onNext를 호출한다. 더이상 이벤트가 발생하지 않는다 → onError, onCompleted는 Observable 라이프사이클 가장 마지막에 전달된다.     Observable이 종료되면 모든 리소스가 정리되기 때문에 다른 이벤트가 전달되지 못하며, error, complete 발생 시 dispo.. 2024. 10. 7.