마인드맵 + 실시간 공동 작업 ⇒ MindSync!!

<aside> 🔥 Android의 이번주 기술적 도전
</aside>
예상 작업시간 2시간 / 실제 작업시간 6시간 (페어프로그래밍)

nullable, val/var 구분이 없었기 때문에 이런 부분을 생각하면서 짜야했다. 결국 로직을 이해해야했다.
코드를 잘못이해해서 로직이 달라진 적도 있었다.
잘못 구현한 부분은 없는지 테스트를 통해 로직을 확인해봤다.

예상 작업시간 3시간 / 실제 작업시간 7시간 (페어프로그래밍)

처음엔 Okhttp가 WebSocket을 지원해주는걸 보고 Okhttp 코드로 구현했음
소켓의 url과 nameSpace를 제대로 입력해도 연결이 안되는 현상이 발생 (state가 error)


socket이 connect 됐는지, disconnect 됐는지에 따라 다른 동작을 구현해야했다.
그런데 socket의 상태는 다음과 같이 Listener 같은 callback 패턴으로 가지고 올 수 있었다.

소켓 상태를 뷰모델에서 flow로 관리하고 싶었고, 다음과 같이 수정해서 ViewModel로 소켓 상태를 관찰할 수 있었다.


위 코드와 같이 socke의 연결상태를 callbackFlow로 관리해서 socke의 연결상태를 viewModel의 Flow와 일치시켰다.
서버의 웹소켓에서 전송된 이벤트도 이벤트에 따라 Listener를 구현해야했다.