작업내역 2주차 월요일 - donggeonoh/bithumb-techcamp-ios-1st GitHub Wiki

작업 내역

  • 동건
    • 입출금 현황 화면
      • DataManager 클래스 구분 및 네트워크를 통한 데이터 가져오는 기능 추가
      • 화면의 Label dynamic type, accessibility label 설정
      • 입출금 현황 컬렉션 뷰 셀 높이 수정
      • 검색 바, 필터, 정렬 뷰 레이아웃 및 클래스 초기 구현 중
    • Pull request
      • WebSocket API pull request 코멘트 및 코드 이해
  • 제로
    • CoinList 콜렉션 뷰의 데이터 소스 클래스
      • 코인목록을 받아온 후 각각마다 현재가를 받아오는 통신 구현중(Transanction History API 사용)
  • 허황
    • WebSocket 구현 완료
    • WebSocket 모델 구현 완료(PR 제출 예정)

문제 및 해결

  • 동건

    • dataManager 클래스를 VC에서 프로퍼티 선언 및 초기화를 같이 해도 되는지에 대한 고민

      dataManager를 바로 VC에서 초기화 해준다면, 아직 시도하진 않지만 추후 VC에 대한 테스트를 할 때 dataManager에 대한 테스트를 진행하기엔 어려움이 있을 것 같아 viewDidLoad() 에서 초기화를 진행하게 되었습니다.

    • asset status에서 코인 이름을 넘겨주지 않는 문제 (심볼에 대한 지역화 필요)

      이부분의 경우 지역화를 진행중에 있어 나중에 지역화를 적용해주면 된다.

  • 제로

    • 처음에 현재가 정하려고 전체 코인목록에 있는 코인마다 다 transaction api를 호출(192번)하려고했음. 하지만 보여지는 셀만 통신하면 된다고 생각하여 보여지는 셀만 통신을 하는걸로 구현. 하지만 또 그렇게하니 전체 기준으로 정렬할 수가 없었음. 다시 192번 호출하는거로 바꿈
    • 192번 호출 후 모두 완료됐음을 확인을 어떻게 할것인지 고민중
  • 허황

    • WebSocket 테스트에 대한 문제

      네트워크와 무관한 Unit Test를 진행하기 위해 URLSessionWebSocketTask를 상속받아서 MockWebSocketURLSessionTask만들어서 진행하려 했습니다. 문제는 URLSessionWebSocketTask의 send(), receive() 메서드의 접근제어가 public으로 되어있어 override가 불가능하다는 점에 있었습니다. 해결책으로는 MockWebSocketURLSessionTask에 URLSessionWebSocketTaskProviding을 채택하고 실제 프로덕션 코트와 내부 로직이 동일한 MockWebSocketService를 만들어 테스트를 진행했습니다.