22.08.01 TIL

옵주비·2022년 8월 2일
0

8월이 오다니. 이제 진짜 얼마 남지 않았다.....!
다행히도 시연 가능한 수준의 개발은 어느정도 끝났고, 이제는 완성도를 높이기 위한 시간이다.

메세지리스트 실시간 스트리밍 구현

오늘은 그동안 가장 속썩이던.... 메세지리스트 실시간 스트리밍 구현에 성공했다. 그동안 수많은 리서치를 해보았지만, 온통 다 채팅메세지 화면 내에 대한 자료나 설명 뿐이었다. 채팅방 리스트가 실시간으로 어떻게 갱신되는지는 그 어디에도 없었다.

그 어떤 키워드로 검색을 해봐도.... 기승전 채팅메세지 페이지.... Chat App UI..
그래서 결국 직접 구현했다. Streambuilder를 어떻게 사용하면 될지를 찾아보니, Future를 통해 일정한 시간 간격으로 서버에 요청을 보내서 데이터를 받아오는 것을 stream하는 방식이었다. 이렇게 되면 전체 데이터가 바뀌면서 너무 오버헤드가 큰 것이 아닌가 싶었는데, 막상 적용하고 나니까 화면이 깜빡이지도 않는다. 새로운 채팅이 도착하면, 오직 그 리스트만 맨 위로 안정적으로 올라가고 나머지 부분은 크게 요동치지 않는다. 이걸 드디어 해결하다니...! 몇날 며칠 머리를 쥐어잡고 생각한 로직으로 해내니 너무 기뻤다. 제일 큰거 해결했고, DB랑 API는 다 짜놨으니 이제 적용만 하면 된다. 가보자구 😚

툭 교환과정 구체화

저번 주 막바지에 바꾼 툭 교환과정을 일부 수정하였다.
모임을 빼고, dialog을 하나 덜 띄워주기로 했다.
어차피 상대방과 교환을 할 때, '닉네임'만 가지고 누구인지는 알아보긴 어려울 것이기 때문이다. 따라서 명함을 보여주고 이후에 그 명함을 받을지 말지 결정하도록 변경해주었다. 아, 참고로 '반가워요', '누구세요' 라는 문구가 직관적이지 않다는 피드백이 있어서 팀원들과 논의 후에 수정하려고 한다 :)

명함첩 오버플로우

저번 주에 너무나도 맘에 들었던 VerticalCardPager를 쓰기 위해 정말 10시간은 투자한 것 같다.하지만 결과적으로는 사용하지 않게 되었는데, 몇 가지 이유가 있다.

우선 해당 패키지는 '사진'을 기준으로 만들어져있다. 따라서 사진에 커다한 흰 글씨 하나만 넣어도 괜찮다면야 금방 쓸 수 있다. 하지만 우리 서비스는 기본적으로 사교용이긴 하지만 '명함'이기에, 사용자를 나타내는 해시태그 3개와 1줄 인삿말 등을 함께 보여주어야 한다. 그래서 Image가 아니라 Container로 만들어야 한다는 문제가 있다.

결정적인 또 다른 이유는 바로 서치바가 제대로 작동하지 않는다는 것이다. 정확히 말하자면 서치바는 작동하는데, 찾고나서 보이는 명함이 종종 '접힌' 상태로 보인다. 명함을 많이 보유한 사람의 경우 서치바가 필수일텐데, 멋을 위해서 사용자 편의를 포기할수는 없는 노릇이다.

마지막으로 명함의 크기가 제대로 조절되지 않는다. 첫 번째 이유와 비슷한 맥락인데, 아무래도 접히고 펼쳐지고 해야하다보니 디바이스의 여유공간에 따라서 가용공간이 달라진다. 따라서 에뮬레이터에서 앱바, 서치바, 바텀바 등을 잠시 제거해서 실행해보니 그만큼 명함이 더 커지는 것을 확인할 수 있었지만, 셋 다 우리 서비스에서 중요하기에 포기할 수 없다. 그나마 서치바를 앱바 내에서 작동하도록 옮길수는 있었는데, 여전히 공간이 부족했다.

그래서 아쉽지만 사용하지 못하게 되었다. 처음엔 Container가 접힐 때마다 발생하는 RenderFlex 에러가 0.0몇 픽셀정도라 금방 해결할 수 있을 것이라 생각했다. 하지만 이번엔 해결하지 못했다. 중간중간에 스택오버플로우의 모든 글을 살펴보며 병행했지만 알맞은 해결책이 없었다. 발표준비를 위해 필요한 작업이 많은데 이것만 붙잡고 있을수는 없어서 아쉽다. Flutter에서 처음으로 해결해보지 못한 에러라 속상하지만, 그만큼 예쁘게 명함첩 디자인을 완성했다. 연락처(명함첩) 디자인 완성 😍
더 이상은 이 연락처 디자인을 건들 일이 없기를 . . . . .

0개의 댓글