본문 바로가기
728x90

분류 전체보기86

[RxSwift] Rx를 이용한 백그라운드 감지 Rx를 이용해 UIApplication 이벤트 감지제가 생각한 방법은 NotificationCenter와 RxSwift를 결합하는 것 입니다.아래는 예제입니다. import UIKitimport RxSwiftimport RxCocoaclass ViewController: UIViewController { let disposeBag = DisposeBag() override func viewDidLoad() { super.viewDidLoad() // 포어그라운드로 전환될 때 NotificationCenter.default.rx.notification(UIApplication.willEnterForegroundNotification) .. 2024. 6. 14.
[Swift] 의존성 주입 Dependency Injection 의존성이란? Dependency한 객체가 다른 객체에 의존하는 것을 의미한다. 즉, 의존하는 객체가 변경되면 다른 객체도 영향을 받는다는 것을 의미한다. 의존성 주입 (Dependency Injection)외부에서 생성한 후, 의존하는 객체를 전달받아 사용하는 디자인패턴 의존성 주입은 굳이 왜하는걸까?의존성 주입(Dependency Injection, DI)은 객체 지향 프로그래밍에서 객체 간의 의존 관계를 외부에서 주입하여 객체 간 결합도를 낮추고, 코드의 유연성과 재사용성을 높이기 위해 사용된다.  그렇다면 Swift는 프로토콜 지향 프로그래밍인데, 왜 사용하는걸까?프로토콜 지향 프로그래밍 패러다임을 강조하지만, 의존성 주입(Dependency Injection, DI) 역시 중요한 역할한다. 결합도.. 2024. 6. 11.
[ReactortKit] ReactortKit 슥 알아보기 ReactorKit?ReSwift와 Flux를 융합하여 만든 아키텍처입니다. ReactorKit는 iOS 애플리케이션 개발을 위해 사용되는 프레임워크로, 단방향 데이터 흐름을 중심으로 한 반응형 프로그래밍을 구현할 수 있도록 도와줍니다 ReactorKit 공식 문서에 따르면 본 아키텍처의 디자인 목표에 따르면 아래와 같습니다.테스트 용이성ReactorKit은 상태와 로직을 분리하여, 테스트 작성이 용이하도록 설계되었습니다. Reactor는 입력(Action)에 따라 상태(State)를 출력하기 때문에, 입력과 출력을 테스트함으로써 비즈니스 로직의 단위 테스트를 쉽게 작성할 수 있습니다.코드의 가독성 및 유지 보수성ReactorKit은 복잡함을 피하는 데 중점을 두었습니다.Reactor는 상태와 로직을 관.. 2024. 6. 9.
[SwiftUI] Property Wrapper Property Wrappers속성에 적용되는 래퍼(Wrapper)로, 속성의 값에 추가적인 로직을 적용하거나, 값이 변경될 때 다른 동작을 수행할 수 있도록 해준다.이로 인해 코드의 중복을 줄이고, 속성의 동작을 보다 명확하게 정의할 수 있습니다. @StateSwiftUI 뷰 내부에서 상태를 관리하는 데 사용됩니다. 상태 변수가 변경되면 해당 상태를 사용하는 뷰가 다시 그려집니다.@State는 뷰의 로컬 상태를 관리하는 데 적합하며, 외부 객체가 필요하지 않은 경우 사용됩니다.import SwiftUIstruct CounterView: View { @State private var count: Int = 0 var body: some View { VStack { .. 2024. 6. 8.
[RxSwift] ActivityIndicatorView를 Rx로 쉽게 컨트롤하기 인디케이터뷰의 상태를 변경하기 위해서는 코드를 추가해주어야 합니다.그래서! startAnimating() 과 stopAnimating() 메소드 호출을 자동화함으로써, 반복적인 코드를 줄여줍니다.isAnimating 바인더를 통해 UIActivityIndicatorView의 상태도 반응형으로 관리할 수 있게 되므로,  Rx를 좀 더 리엑티브하게 활용해보았습니다. ㅎ.ㅎimport RxSwiftimport RxCocoaextension Reactive where Base: UIActivityIndicatorView { public var isAnimating: Binder { /// Rx로 ActivityIndicatorView의 Animate를 조금 더 간편하게 제어하기 위한 Extens.. 2024. 6. 8.
MVI (Model - View - Intent) MVI란? MVI는 Model-View-Intent의 약자로, 사용자의 의도(Intent)가 애플리케이션 상태(State)에 영향을 미치고, 이 상태가 뷰(View)에 반영되는 아키텍처이다.Model: 애플리케이션의 상태를 나타냅니다. 모든 UI 데이터와 비즈니스 로직을 포함View: 사용자 인터페이스를 나타내며, Model의 상태 변화를 반영Intent: 사용자의 액션이나 이벤트를 나타내며, Model의 상태를 변경하는 데 사용 그렇다면 상태(State)는 뭘까?"상태(State)"는 애플리케이션의 현재 데이터를 의미한다.상태는 즉 앱의 모든 중요한 데이터를 포함해, UI를 비롯한 다양한 부분에서 공유된다.UI 상태: 현재 화면에 표시되는 내용, 사용자 입력, 로딩 상태 등.도메인 데이터: 애플리케이션.. 2024. 6. 7.
728x90
반응형