트러블 슈팅 코인 상세 호가 - donggeonoh/bithumb-techcamp-ios-1st GitHub Wiki

1. 웹 소켓으로 들어오는 데이터를 가공하는 방법 - 허황

Orderbook API(Bithumb Public API)로 호가 데이터를 DataManager에 셋업했습니다.

Orderbookdepth 웹소켓으로 새로운 호가 정보와 DataManager의 호가 데이터를 딕셔너리 형태로 가공(가격[key], 수량[value]) 가공했습니다.

딕셔너리로 가공한 두 데이터를 딕셔너리 기본 메서드인 merge 이용해 같은 가격[key]를 가진 데이터가 존재할 경우 웹소켓을 통해 새로 들어온 수량[value]을 사용해 실시간으로 데이터를 반영할 수 있도록 가공했습니다.

filter로 수량이 0인 데이터는 거르고 dropLast 메서드로 데이터의 개수가 30개가 넘지 않도록 했습니다.

2. 매수 최고가, 매도 최저가 뷰 화면 노출 - 허황

호가 화면을 스크롤하다 보면 매도 또는 매수 셀만 화면에 노출되게 됩니다. 그럴 경우 반대 주문에 대한 정보를 알 수 없어 매수 최고가, 매도 최저가 데이터를 화면에 보여주면 거래량에 이점이 있을 것 같다는 생각을 했습니다.

호가 화면의 컬렉션 뷰의 delegate 메서드 중 scrollViewDidScroll를 이용해 스크롤될 때마다 컬렉션 뷰의 visibleCells를 이용해 현재 화면에 보이는 셀의 목록을 가져오고 셀의 아이템(Model)의 타입(매수, 매도)의 개수를 검사하여 주문의 반대되는 뷰를 노출시키도록 구현했습니다.