Skip to content

Latest commit

 

History

History
48 lines (30 loc) · 3.1 KB

README.md

File metadata and controls

48 lines (30 loc) · 3.1 KB

📃 Summary

airbnb clone 앱 입니다.

검색 기능, 지도 좌표, 금액 설정, 날짜 설정 등 앱에서 많이 사용되는 기능들을 구현했습니다.

imageimageimageimage imageimageimage imageimage


💻 Part

  • REST API를 이용한 서버 통신 구현
  • compose를 이용한 첫 화면 개발
  • 체크인, 체크아웃 날짜 설정을 위한 커스텀 캘린더
  • 구글맵 마커 커스텀

✏️ Learn

  • composeView를 사용해 일부 화면 compose 구현

  • LazyHorizontalGrid를 이용한 가로 RecyclerView 구현 학습

    • 공식문서에서 한글로 찾았을때 업데이트가 되어있지 않아서 영어로 전환해서 LazyHorizontalGrid를 찾고, github에서 LazyHorizontalGrid를 이용한 레파지토리를 검색하여 버전을 찾아서 LazyHorizontalGrid를 이용할 수 있었습니다.
  • Custom Calendar를 제작하며 DiffUtil에 대한 이해와 성능 개선에 대해 생각해보았습니다.

    • 처음에 List로 1년간의 날짜를 구현하고 전체 순회를 하면서 클릭한 체크인, 체크아웃 날짜를 찾고 그 사이의 날짜들의 background를 변경하니 깜빡임과 느린 속도가 문제가 되었습니다. 그래서 List를 이용하던 것을 Map으로 전환하고 각 day마다 id를 부여해서 간단한 캐싱을 구현하여 전체 순회가 아닌 id값을 이용해서 클릭한 날짜를 찾고 그 사이의 날짜들의 ui를 함께 변경하였더니 속도가 많이 빨라졌습니다.
    • DiffUtil에서 hashcode를 이용해서 값의 변경을 체크하던 것을 hear로 변경해서 체크인, 체크아웃 날짜와 그 사이의 day들만 변경할 수 있도록 리팩토링했더니 클릭시 달력 전체가 깜빡이던 현상이 사라졌습니다.

🕶Team

안드로이드 : 2명

백엔드 : 2명


🔨 Branch

메인 개발 브랜치 : dev-AOS https://github.com/hanchang97/airbnb/tree/dev-AOS