Ray Wenderlich
-
RxSwift - TableView, CollectionVIew를 사용해보자Ray Wenderlich/RxSwift 2020. 2. 29. 21:28
Ch.18 Table and CollectionViewsiOS앱에서 가장 많이 사용하는 UI는 UITableView, UICollectionVIew를 통해 데이터의 리스트를 표현하는 것이다. 보통은 delegate, dataSource의 콜백을 통해 데이터를 표현한다. RxSwift를 사용하면 observable sequence를 TableView, CollectionView에 표현할 수 있음을 물론이고, 코드의 양도 줄일 수 있다. UITableView, UICollectionView의 간단한 사용은 RxCocoa에 이미 포함되어 있다. 좀 더 심화적인 내용(섹션관리, 애니메이션 등)은 RxDataSources(https://github.com/RxSwiftCommunity/RxDataSources)를..
-
RxSwift - retryWhen(_:)에 대해서 알아보자Ray Wenderlich/RxSwift 2020. 2. 20. 22:22
Ch14. Error Handling in Practice p.292 - 294RxSwift의 에러처리 방법에 대해서 알아보자. 크게 2가지가 있다.1. Catch하여 처리하기2. Retry하기 (Retry해도 실패하면 Catch하던가) 1은 Swift와 유사하니 끄덕하고 넘어가자.2를 수행하기 위해 RxSwift에서는 retry() 오퍼레이터를 제공한다. retry를 시도하는 3가지의 메소드가 있다.func retry() -> RxSwift.Observable // 1 func retry(_ maxAttemptCount:) -> Observable // 2 func retryWhen(_ notificationHandler:) -> Observable // 3 1, 2번의 경우는 직관적이다. 에러가 발생..
-
RxSwift - amb(_:), switchLatest()에 대해서 알아보자Ray Wenderlich/RxSwift 2020. 2. 10. 22:02
Ch9. Combining operatiors p.191 - p.193RxSwift에는 "Switching" 오퍼레이터라고 불리는 2개의 주요 오퍼레이터가 있다.바로 amb(_:)와 switchLatest()다. 이 오퍼레이터들은 컴바인한 이벤트 또는 여러 시퀀스들 중에서 하나의 시퀀스로 Switch해준다.(원문: They both allow you to produce an observable sequence by switching between the events of the combined or source sequences.)이를 통해 우리는 런타임에 어떤 시퀀스를 사용할 지 결정할 수 있게 된다. amb(_:)amb는 ambiguous의 약자다. let left = PublishSubject()l..
-
RxSwift - withLastestFrom(_:), sample(_:)에 대해서 알아보자Ray Wenderlich/RxSwift 2020. 2. 10. 20:58
Ch9. Combining operatiors p.191 - p.193앱은 여러가지의 인풋을 다룬다. 여러 Observable에서 발생하는 이벤트들을 동시에 관리해야하는 경우가 많이 있을 것이다.버튼을 누르는 등의 간단한 트리거 역할을 하는 인풋이 있을 수 있고, 동시에 다른 인풋에서는 데이터가 전달 될 수도 있다.RxSwift는 이런 상황에 적절한 Operator를 제공하고 있다. withLatestFrom(_:)그림을 보면 두 개의 시퀀스가 있다.그리고 withLatestFrom을 사용한 시퀀스가 있다.tap 이벤트가 발생할 때, textfield의 마지막 Element의 값이 전달되고 있다. 우리가 자주 하는 UI코딩에서, button과 textfield를 사용하는 상황을 가정하고 있다. (뒤에서 ..
-
Observer Pattern (with Swift, Combine)Ray Wenderlich/Design Pattern 2020. 2. 2. 16:38
Ch 8. Oberver Pattern1. Observer Pattern의 구성요소2. Observer Pattern의 사용 (Combine을 사용하지만, Combine에 대해서 1도 몰라도 이해가능)3. 느낀 점 1. Observer Pattern의 구성요소옵저버 패턴은 한 객체가 다른 객체의 변화를 관찰하는 구조를 갖고 있다. Swift5.1에서는 Combine의 Publisher를 통해 이 패턴을 쉽게 구현할 수 있다. 1. Subscriber는 다른 객체의 변화를 객체다.2. Publisher는 객체다.3. Value는 변화하는 값이다. Publisher를 통해 전달하고 Subscriber에 전달된다. 2. Observer Pattern의 사용 옵저버 패턴은 주로 MVC패턴과 같이 사용된다.Vie..
-
Strategy Pattern (with iOS, Swift)Ray Wenderlich/Design Pattern 2020. 1. 2. 19:45
Ch5. Strategy Pattern 1. Strategy Pattern의 구성요소2. 사용 예시3. Delegate와 다른 점 1. Strategy Pattern의 구성요소Strategy Pattern의 구성요소는 3가지로 나뉜다. 1. Strategy를 사용할 객체2. Strategy를 정의하는 프로토콜3. 2번의 프로토콜을 구현한 Strategy객체 두 개 이상의 유사한 동작이 필요하고, 이 동작이 유연하게 바뀌기를 원할 때 사용하면 좋다.Delegate패턴과 굉장히 유사하다. (구성요소만봐도 똑같음) 2. 사용 예시영화 평점을 보여주는 화면이 있다고 생각해보자.참고로, 영화 평점은 여러 매체에서 매긴다. 로튼토마토, IMDb등 import UIKit public protocol MovieRati..
-
[CoreAnimation] Ch19. Interactive UINavigationController TransitionsRay Wenderlich/Core Animation 2018. 12. 15. 21:06
19장 Interactive UINavigationController Transitions Intro사용자의 행동에 반응하는 트랜지션을 구현해보자. Pan제스쳐를 활용할 예정이다. Creating an interactive transition트랜지션이 발생할 때, UINavigationController는 delegate에 애니메이션 컨트롤러가 있는지 물어본다. 이건 이미 알고 있던 것 하지만 추가로 interactive controller도 있는지 물어본다! AnimationController와 Interactive Controller는 하나의 클래스로 구현하는 것이 편하다. UIViewControllerAnimatedTransitioning, UIViewControllerInteractiveTrans..
-
[CoreAnimation] Ch18. UINavigationController Custom Transition AnimationsRay Wenderlich/Core Animation 2018. 12. 6. 13:27
18장 UINavigationController Custom Transition Animations Intro UINavigationController에서는 화면을 stack으로 관리한다. push, pop을 하면서 일어나는 화면 전환을 커스텀하게 꾸밀 수 있다. Custom navigation transitions UINavigationControllerDelegate에서 animator를 리턴해주는 작업이 필요하다. UINavigationController에서 push/pop이 일어날 때, UINavigationController은 delegate에 물어본다. 1. “delegate가 있나요?” 2. “있다면, animator를 리턴하고 있나요?” delegate가 nil이거나, animator가 n..