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

목요일

QR가이드뷰에서 큐알 스캔 버튼

버튼이 양옆으로 길게 늘어져 있었고 그 안에 text는 버튼을 모두 채워져있는 상태는 아니었다. 그런데 텍스트가 있는 영역만 버튼의 action이 발동되고, 텍스트 옆에 공간은 눌러도 버튼이 작동하지 않았다. 알고보니 버튼 안에 들어가는 content뷰에 버튼의 액션이 걸리는 것이었다. 그래서 버튼의 frame을 늘리는 대신에 안에 있는 content의 크기를 늘려주었더니 버튼이 잘 눌리게 되었다.

토글 버튼

토글 버튼은 누르자마자 상태값을 바꿔버린다. 하지만 이러면 안된다. 서버에 확인 후 서버에 있는 유저 정보도 바뀌면 그 때 토글 버튼을 움직여야 한다. 그래서 토글 버튼을 눌렀을 때 네트워크 응답을 받은 후, 그 결과에 따라 토글의 상태값을 변경하여 토글 UI를 업데이트 해야 한다. 하지만 2시간이 넘게 찾아 보아도 이렇게 할 수 있는 방법은 없었다. 어떻게 하더라도 토글 버튼을 누르면 바로 상태값이 바뀌었다. 그러다 disable이라는 modifier를 찾아냈다. 이걸 사용해서 사용자의 터치 이벤트를 막고, onTabGesture로 네트워크 전송 후, 결과에 따라 토글 상태값을 바꿔주었다. 하지만 이렇게 했을 때, disable로 인한 opacity 때문에 토글이 흐릿하게 보이게 된다. 이것을 해결하는 방법은 아직 찾지 못했다.

Enum Equatable

Equatable for Enum with associated value

pincode 뷰의 인증 목적을 enum으로 관리하다가, 이넘 값의 비교를 할 필요가 생겼었다. 그래서 enum 타입에 equatable을 적용하는 방법을 참고하여 적용했다. -> 하지만 enum 값이 굳이 비교를 가능하게 해놓지 않은 이유가 있었던 것 같다. switch 문을 통해 어떤 범주에 있는지를 나눠주는게 더 enum의 의미에 적합한 것 같다.

생체 인증

앱이 껐다 켜져도 생체인증을 사용하는지 아닌지 알 수 있는 방법을 고민해보았다. 그 중 가장 좋다고 생각했던 것은, 생체인증을 등록할 때 입력하는 pincode 넘버의 유무다. 이 번호를 영구 저장소에 저장해 놓고, 생체인증이 활성화 되어있으면 이 값이 계속 저장소에 남아있고 비활성화되면 삭제시킨다. 생체인증이 필요한 상황에서 이 번호가 있는지를 파악해서 생체인증을 시도하는 것이다. 핀 코드 넘버도 보안이 필요한 값이기 때문에 키체인을 사용하여 영구저장소에 저장했다.

암호 사용이 켜져 있어야 한다!

계속 생체인증을 시도했는데 잘 되지 않았다. 그래서 어떤 이유인지 고민하다가 혹시나 해서 설정을 들어가봤다. 애초에 암호 사용을 off로 해 놓았기 때

런치 스크린 넣기

SwiftUI 에서 런치스크린을 이미지로 넣는것은 굉장히 쉬웠다. info.plist에 지정할 색이랑,이미지 이름을 넣어주면 되었다.

<key>UILaunchScreen</key>
<dict>
    <key>UIColorName</key>
    <string>navy2</string>
    <key>UIImageName</key>
    <string>ddLogo</string>
</dict>

그런데,, 이미지가 자꾸 스크린에 딱 맞게 나온다.. 구글링을 해 보아도 이런 케이스는 없는 것 같아서 좀 더 고민해봐야겠다.

TestFlight 제출 후 앱이 설치가 되지 않는 문제..

TestFlight을 제출하기 위해 프로비저닝을 내 개발 프로비저닝 인증서로 적용했었는데, 이것을 Debug모드에도 적용해주었어서 앱이 설치가 되지 않았다. 이런 간단한 문제로 시간을 쓴 것이 좀 아까웠다. image


개인 회고

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

어진

  • FaceID를 붙일 수 있게 코드를 추가해두었다. 이를 어떻게 버무리느냐가 중요하겠지!
  • 백업 싱크를 어떻게 맞출지 정말 많이 고민이 된다. 그리고 이런 고난이도의 문제를 해결하고 난 다음은 많이 성장해있겠지....?
  • 해결되지 않는 부분을 자꾸 SwiftUI탓으로 돌리는 내 자신이 스스로 조금 안타까웠다.

재명

  • 사실 이번 주 안에 빠르게 백업 서버를 붙일 수 있을 줄 알았다. 하지만 Authy 앱을 보면 볼 수록 신경써야 하는 사항들이 쌓여갔다. 아직까지는 다 구현할 수 있을 것 같지만 조금씩 두렵기 시작한다.
  • QR 코드 위에 붙여야지 붙여야지 했던 가이드 뷰도 만들었고, 카메라 접근 권한 허용 로직도 수정했다. 카메라 접근 허용이 되어 있을 때와 그렇지 않을 때를 구분하여 alert 메세지를 띄워주도록 했다. 깔끔하게 마무리 되어 굉장히 만족스럽다.
  • 생체 인증 부분을 시작했다. 어떻게든 밤을 새서라도 이 부분을 꼭 구현하고 싶다.
⚠️ **GitHub.com Fallback** ⚠️