More issues

RxSwift

RxJava 이후 간단하게 정리 RxSwift with MVVM * 뷰에 들어가는 요소: RxCocoa 요소, UI 컨트롤들, 뷰모델 * 뷰모델에 들어가는 요소: 릴레이 * 행동 -> 뷰가 릴레이를 구독, 이벤트가 방출되면 행동을 실행하도록 바인드 map, flatMap, flatMapLatest * map: 이벤트의 타입을 바꾸면서 그대로 다시 구독할 수 있다. * flatMap: 다른 옵저버블을 만들면서 배출할 수 있다. 상위 옵저버블에서
3 min read

Subject

* 차가운 옵저버블을 뜨거운 옵저버블로 변환해주는 클래스이다. * 옵저버블과 옵저버의 역할을 모두 수행할 수 있다. * 같은 동작의 옵저버블을 모아서 관리할 수 있다. * 마음대로 원하는 시점에 값을 발행할 수 있기 때문에 특히 원하는 데이터가 옵저버블이 아닐 때 편하게 사용 가능하다. PublishSubject * 가장 평범한 Subject 클래스이다. * 발생한 값을 그대로 구독자들에게 전달한다. * subscribe() 이후 데이터
4 min read

Observable

사내 스터디로 ReactiveX 반응형 프로그래밍 스터디를 시작하려는데 안드로이드 개발자분과 같이 진행하기 위해 RxJava 책으로 시작했다. Java는 정말 오랜만이었는데 어차피 Reactive 개념이 포인트라 상관은 없었다. RxJava 프로그래밍 - 예스248가지 핵심 개념으로 쉽게 이해하는 리액티브 프로그래밍 입문서버나 애플리케이션은 다양한 데이터를 처리하느라 늘 분주하다. 그런데 데이터양이 기하급수적으로 늘면서 기존의 프로그래밍 방식으로 이를 처리하기가
2 min read

ReactorKit

사내 프로젝트에서 ReactorKit을 메인으로 사용하고 있다. RxSwift 기반의 단방향 프레임워크이다. View * State에 따른 데이터 표현, bind(reactor: )를 가짐 * bind()에서 View→ Reactor 흐름의 Action, Reactor → View 의 State를 모두 바인딩, enum type을 사용하여 동작 정의 * reactor의 프로퍼티가 변경되는 시점(할당, 초기화 등)에 bind가 실행됨 Reactor * Action, Mutation, State를
2 min read

GCD

OperationQueue vs GCD * OperationQueue: 긴 작업, 작업 간 의존도가 높은 작업, 일시중지나 취소 등의 동작, KVO를 사용하는 프로퍼티, 객체단위 처리 * GCD: 간단하게 사용가능한 큐를 제공,타이머나 프로세스등 비동기처리에 적합 Serial, Concurrent * Serial 큐는 1줄짜리 Queue, 앞의 작업이 종료될때까지 기다려야함, 따라서 작업 순서가 보장됨 * Concurrent 큐는 여러줄짜리 Queue, 여러 작업이 동시에
2 min read

UIViewController 생명주기

loadView - viewDidDisappear까지 loadView * 메인 뷰를 로드하기 위해 호출됩니다. UIView 인스턴스를 만들어 주는 단계로 컨트롤러에서 self.view가 nil이지만 표시해야 되는 시점에 호출됩니다. * 아래의 방법중 하나로 인해 연관된 nib파일이 있다면(nibName 속성이 nil이 아니라면) 로드됩니다. * storyboard에서 로드 * init(nibName:bundle:)을 통해 할당 * 앱 bundle에 viewController의 이름을 가져오는 nib파일이 존재 * 연관된
2 min read