[RxSwift] Rx 를 사용하여시스템 권한 요청받기 (카메라, 앨범, 알림)
·
iOS/RxSwift&Combine
다음과 같은 시스템 권한 얼럿을 RxSwift를 이용하여 띄워보자! PermissionManager 라는 이름을 가진 싱글톤 클래스를 만들어 권한 확인 및 요청 관련 메서드를 관리public final class PermissionManager { public static let shared = PermissionManager() private init() { } private let disposeBag = DisposeBag() ...}권한 요청RxSwift를 사용하여 구현하려고 하기 때문에 Observable 타입을 리턴하도록 구현리턴되는 Bool타입의 데이터는 해당 권한을 허용했는지 여부이다.알림 권한 요청알림 권한 얼럿의 메세지는 시스템 내부에 정해져있다.알림에 대한 얼럿과 소리 뱃지 등의..
[iOS/ReactorKit] ReactorKit 알아보기
·
iOS/RxSwift&Combine
최근 프로젝트에서 적용한 ReactorKit에 대하여 정리해보고자 한다.이전에 RxSwift + MVVM Input-Output 패턴을 적용하여 개발했는데, ReactorKit 구조와 비슷하다는 이야기를 들어서 한 번 적용해보았다.특징단방향 흐름을 가진 반응형 프레임워크이다.RxSwift와 필수적으로 함께 사용된다. RxSwift의 Observable을 통해 비동기적으로 데이터를 처리하고, 사용자의 이벤트 처리와 UI 업데이트 쉽게 관리할 수 있다.View와 Reactor로 구성되어있고, Reactor가 ViewModel과 같은 역할을 한다. 네트워크 통신이나 db 접근 등 비즈니스 로직을 구성하게 된다.기본 동작(➡️단방향 흐름➡️)Reactor에는 View에서 받은 Action과 작업(Mutation..
RxSwift 왜 사용??
·
iOS/RxSwift&Combine
RxSwift가 뭐야?Reactive Programming in Swift반응형 프로그래밍?데이터의 흐름이나 변경사항에 따라 처리하는 프로그래밍 방식주변 환경과 끊임없이 상호작용을 하는 프로그래밍외부의 변화에 끊임없이 반응하고 처리한다.명령형 프로그래밍은 개발자에 의해 작성된 코드가 순서대로 처리되는 방식이라 하면 반응형 프로그래밍은 순서에 상관없이 이벤트 발생 순서에 따라 처리한다.RxSwift는 Swift를 반응형프로그래밍 방식으로 사용할 수 있도록 만들어진 라이브러리RxSwift를 왜 사용?✔️  비동기 작업을 동기적으로 처리할 수 있다.우리는 swift에서 비동기 작업이 완료 된 후 처리 해야하는 작업이 있을 때 주로 Notification, Delegate Pattern, Closure로 처리했..
[iOS/RxSwift] CombineLatest vs Observable.zip
·
iOS/RxSwift&Combine
💡 CombineLatest2개 이상의 Observable을 결합하여 하나의 Observable로 만들 때 사용한다.CombineLatest는 결합하려는 이벤트가 최소 한 번씩은 next이벤트가 emit되어야 구독을 시작하게 된다.위의 예시는 BehaviorSubject 이벤트를 결합 한 것이다. BehaviorSubject는 초기 값을 설정하게 되어 선언 후 바로 combineLatest를 수행하게 된다. 만약! 초기값이 없는 PublishSubject를 사용한다면?a와 b 모두 한 번 emit이 되어야 combineLatest를 수행할 수 있다.a의 이벤트가 먼저 emit이 된 후 b가 emit이 되기 때문에 b가 emit되는 시점에 combineLatest를 수행할 수 있게 된다.combineLa..