개요전에 소셜 로그인 (구글 로그인) 구현할 때 전략패턴을 적용했었다. (관련 링크)프로젝트 백로그 중에 카카오 로그인 도입이 있어, 공부했던 코루틴을 잘 적용한 과정을 글로 남기려 한다. 카카오 로그인 도입 그리고..카카오 로그인은 예전에 도입해본 경험이 있어, 어렵지 않게 코드를 작성했다. 또한, 전략 패턴을 이용했었기에 크게 수정하는 부분 없이 쉽게 도입할 수 있었다. 그러나 필자가 해야할 숙제는 `콜백 지옥에서 탈출하기`이다. 우선, 카카오 로그인 메서드를 들여다 보았다./* 카카오톡으로 로그인 */fun loginWithKakaoTalk( context: Context, requestCode: Int = AuthCodeClient.DEFAULT_REQUEST_CODE, nonc..
개요초기 앱 개발 시 이 프로젝트엔 인터랙션이라고는 찾아볼 수 없었다. 클릭 이벤트에 있어서, 나는 당연히 `noRippleClickable`(리플 효과 제거) 이 제일 괜찮은 줄 알았다. 그래서 그렇게 해왔고, 그렇게 하려고 했다.그러나 나의 생각을 바꾼 건 토스 앱이었다. 그냥 무심코 썼던 토스를 유심히 관찰하니 훌륭한 인터랙션들을 찾아볼 수 있었다. 그리고 관련해서 찾아보다가 토스 팀의 고민과 해결이 담긴 좋은 글도 읽어보았다. 물론 처음부터 훌륭한 인터랙션을 적용할 수는 없어서 (실력 이슈 및 시간 이슈ㅠㅠ), 하고자 하는 인터랙션과 그 이유를 들어 일단 팀원분들께 양해를 구했다. 정말 감사하게도 의견을 반영해 주셨고, 오히려 먼저 생각하고 계셨다고 다양한 의견을 적극적으로 주셨다. (정말 감사합..
개요프로젝트에서 소셜 로그인을 적용하던 중 늘어나는 메서드와 분기 처리를 하나로 묶고 싶어지는 욕망이 커져갔다..현재 프로젝트의 MVP 기능에서는 구글 로그인만 있지만 네이버, 애플, 카카오 등 다양한 소셜 로그인을 지원할 전망이기 때문에 이를 대비하여 깔끔하게 짜려고 한다즉, 내가 해결하고자 하는 문제는1) 늘어나는 메서드와 그에 의존하는 로직2) 조건문 제거3) 확장성 대비이다. 그래서 사용한 디자인 패턴이 전략 패턴이다 전략 패턴(Strategy Pattern)이란?전략 패턴은 런타임 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴이다.나의 전략은 '소셜 로그인 방법'이 되는 것이다.필자가 이해한 전략 패턴의 포인트 아래와 같다.1) 비슷한 역할을 ..
Retrofit이 글은 레트로핏 라이브러리를 사용하고 있다.레트로핏은 HTTP API에 대해 직접적인 조작 없이 인터페이스를 사용하여 쉽게 요청을 보낼 수 있고 응답 결과를 자바 오브젝트로 변환해 주는 라이브러리이다. 또한 코틀린을 사용한다면 API 호출 시 내부적으로 요청이 이루어지기 때문에 따로 콜백을 정의할 필요 없이 바로 응답 객체를 받을 수 있다.네트워크 예외 처리안드로이드 네트워크 예외 처리에는 여러가지 방법이 있을 수 있다.필자는 retrofit 의 `Response`를 그대로 받아 처리하는 공통 `apiHandler`를 작성해 두어 처리를 했었다.fun apiHandler(apiFunc: suspend () -> Response): Flow = flow { try { ..