Day 23 개발일지 iOS - boostcamp-2020/Project03-A-TOTP GitHub Wiki

Refresh Token

인증 시도 -> 만료 -> 리프레시 토큰으로 시도 -> 만료 -> 로그아웃

네트워크 어디에..?

  • 네트워크 싱글톤
  • 서비스 객체는 로그인, 토큰, 세팅 이렇게 세개를 만든다.
  • 로그인, 세팅 서비스 객체는 생성자에서 userDefault로 유저 정보를 읽어온다.

로그인 뷰

TextField Trailing Button Transition

이렇게 생긴 로그인 뷰에서 저 인증버튼을 오른쪽에서 오고, 오른쪽으로 나가게 애니매이션을 주고 싶었다.

trailingTransition을 만들어서 .asymmetric으로 합쳐주어서 가능하게 했다.

그런데, 이때 버튼이 들어오는 애니매이션을 줄 때 .leading으로 주어야 한다고 생각했는데, 이렇게 되니 왼쪽에서 들어오는것을 확인했다.

결론은 애니매이션이 어디서 들어오는지 어디로 나가는지를 써주는것이 포인트였다.

var trailingTransition: AnyTransition {
        let movement = AnyTransition.move(edge: .trailing)
            .combined(with: .opacity)
        return .asymmetric(insertion: movement,
                           removal: movement)
    }

세팅뷰

백업, 멀티 디바이스 설정을 위한 설정화면을 구성하였다. Twilio Authy에서는 유저 정보 관리, 디바이스 관리, 토큰 관리 이렇게 세 개의 탭바를 제공하여 설정 기능을 구현하였다. 그런데 초기에 우리가 분석할 때 그냥 한 화면에 보여주어도 될 것 같았다. 각각 설정하는 항목이 적었기 때문이었다.

하지만 만들면 만들 수록 나누는 것도 좋았겠다는 생각이 들었다. 항목은 적지만, 세 섹션 모두 다른 설정을 하는 것이기 때문에 들어가는 코드량이 많았다. 나눠져 있었으면 훨씬 작업하기 좋았을 것 같다. 하지만 화면을 다 만들어 놓고 보니 한 화면에 있는 것이 좀 더 사용하기에 좋을 것 같다는 생각이 들었다.

개인 회고

(솔직히 쓰기 - 현재 파트너 또는 누군가가 본다고 생각하지 말고 미래의 내가 본다고 생각하며 쓰면 어떨까요??😏)

어진

  • 로그인뷰 UI를 개발했다....!
  • 이메일 인증과 코드 입력뷰를 오른쪽 왼쪽 애니매이션으로 전환시키고 싶었으나, 중요하지 않은 것 같아서 도전하지 않았다...ㅠ 그래도 지금 자연스럽게 화면 전환이 되고 있어서 다행이지만 언젠가 도전하겠다(!)(?)

재명

  • 어제 새벽에 세팅 뷰를 리스트로 만들기 위해 노력해보았지만, 알 수 없는 공간을 지울 수가 없어서 결국 포기했다. 그리고 그리드 뷰를 사용하여 만들어보았는데, 다행히 계획했던 UI가 잘 나와서 기뻤다.
  • 뷰, 뷰모델, 서비스 객체를 한번에 만들다 보니 시간이 오래걸렸다. 하지만 지난 주에 메인 뷰를 한 번 만들어보아서 그런지 능숙하게 해낼 수 있었다. 엄청난 성장이다.
  • 하지만 이 속도로는 안된다. 화이팅.