2025-01-20 채팅 메시지 구현
2025년 1월 20일
자율주행용 운전면허가 나오려는 시기에 수동으로 운전면허를 도전하는 와중에 하고싶은 공부도 많고 회사에서 할일이 많은 중간중간에 앱을 만들기 시작했다.
프로젝트의 본질은 채팅 앱이기 때문에 채팅할 수 있는 공간을 먼저 구현하고 채팅 메시지를 꾸미는 순서로 진행하려 하는데 의외의 복병이 숨어있었다.
메시지 리스트 구상 #
메시지 리스트를 채팅 형식으로 표시하고, 과거 메시지를 위쪽으로
메시지 리스트를 구현하고 기존 메시지가 있다면 10개 정도만 미리 로드하고 과거 메시지를 무한 스크롤 형식으로 구현하려 했다.
신규 메시지는 리스트에서 아래에 쌓이고, 로드된 메시지는 위에 쌓이게 구현해야 하는데 스크롤 이녀석이 진짜 문제다.
아래에 쌓이는 메시지는 내가 맨 아래를 보고있었다면 아래로 내려와야 하고,
중간을 보고있었다면 보고있는 위치 그대로 멈춰있어야 하는데, 아래에 쌓였기 때문에 새로운 메시지 크기만큼 올라가고 있었다.
위쪽에 쌓이는 과거 메시지들은
해결책은 TextPainter?
https://gemini.google.com/app/f7c08cc8667f4c00?_gl=1yfmx3n_gaMTI5ODM4Mjc3Ni4xNzM5ODQyNjM5_ga_WC57KJ50ZZ*MTczOTg0MjYzOS4xLjEuMTczOTg0MjkwNi4wLjAuMA..
또는 LayoutBuilder 로 위젯을 미리 만들어서 계산할수도 있나봄
https://medium.com/@mhammad.attar/flutter-get-widgets-size-before-render-3c8187c3621b
아니면 투명하게 위에 렌더링해서 계산 후 다음프레임에 아래에 렌더링