한번 버튼을 누를때마다, Single(Stream)이 생김
→ Stream이 끝나는건 큰 문제가 안됨, Stream이 끊기는건 신경 안써도 된다.
→ onError에서 에러처리 하고, onNext에서 void로 return 하면 된다. onNext를 타면 성공
(Login Session 관리 빼놨다고 보고)
→ LoginSession에 ViewController를 들고 있으면 애매한건 맞는 것 같다.
→ < Talk is cheap, show me the code >
→ 가능하면 ViewModel에서는 UIKit을 import 안했으면 좋겠다.
→ init하는 시점에 띄울 ViewController를 알 수 있기 때문에, 그 때 주입하는게 좋아보인다.
→ 이래야 ViewModel이 Auth 관련을 알 필요가 없고, 이를 통해 추상화가 이루어질 수 있다.
→ func performAppleLogin()
의 presenter
… 를 빼고, init 할때 <A>를 받고, 함수 내에서 presentationContextProvider
에 <A>를 넘겨주기.
LoginViewModel에서 credential을 다 넘기는게 아니라 토큰만 넘기기
→ import Auth…가 필요없다.
→ ViewModel은 UI 적인 것들을 몰라야 된다.