-
Notifications
You must be signed in to change notification settings - Fork 0
[FE] 바텀시트 만들기
YoonDH edited this page Feb 25, 2025
·
1 revision
- 지도 메인 페이지, 길 찾기 결과 페이지에서 하단에서 시트가 올라오면서 사용자에게 자연스러운 UI로 정보를 제공
- 개발 초기 단계에서 지도 서비스 개발에 더 집중하고자, 바텀시트 같은 UI 부분은 라이브러리를 사용하여 적용시키자는 논의가 진행되었습니다.
- 라이브러리 적용 PR에서 지도 메인페이지에서 적용하였으나
-
직접 구현 PR에서 직접
Framer라이브러리를 사용하여 자연스러운 애니메이션으로 만들 수 있었습니다.
- Bottom Sheet에 대한 여러가지 대안을 찾아봤지만, react-spring-bottom-sheet 라이브러리는 다음과 같은 단점들이 있었습니다.
- strict mode를 해제해야 한다.
- 마지막 업데이트가 3년전이다.
- 사용법이 직관적이지 않다.
- element 생성을 React Portal로 생성하는 방식을 사용해, body 바로 하위에 바텀 시트를 생성하고, 의도한 부모의 아래 생성되지 않는다.(이게 가장 컸습니다.)
- 바텀 시트 라이브러리 중, 쓸만한 것들은 React Native이거나, Custom이 어려워, 결국 직접 제작하기로 했습니다.
- 다만 CSS를 사용하는 방법은 개발 Overhead가 클 것 같아, 잘 나와있는 애니메이션 라이브러리인 Framer - Motion 사용했습니다.
- 라이브러리 제거 결과 자연스러운 애니메이션의 바텀시트를 완성하였고 코드를 변형하여 탑시트에도 애니메이션을 적용할 수 있었습니다.
2025-02-13.12.41.22.mp4

- 번들 크기 652KB

- 번들 크기 505KB
- 🚏 완벽한 길을 그리기 위한 노력
- 🪖 버그데이 UT 결과 리포트
- 🐜 어드민 페이지
- 🌊 1차 자체 QA
- 🌊 2차 자체 QA
- 🌊 3차 자체 QA
- 🌊 4차 외부 QA
- 🌊 5차 외부 QA
- ☁️ FE의 GCP를 활용한 배포 방식 및 내부 아키텍쳐
- 🍀 UNIRO의 자연스러운 로딩 화면, 어떤 원리일까? (Suspense)
- 🧪 완벽한(?) 페이지를 위한 LightHouse 점수 개선기
- 🌎 구글 구면 좌표계 도입 여부
⚠️ API 통신 에러 처리- 🥷 바텀시트 만들기
- 💨 최적화 : 효율적인 길 렌더링(Event Capturing)
- 📀 최적화 : 오브젝트 캐싱
- 😎 최적화 : 모든 길 조회 SSE 적용