- 안내 메일에 첨부되어 있는 문서를 참고해주세요.
- 화면 1 - 지도
- 즐겨찾는 존 버튼
- 내 위치 찾기 버튼
- 내 위치
- 차량공유존 노출
- 화면 2 - 차량 리스트
- 이름
- 별칭
- 즐겨찾기 버튼(토글 동작)
- 차량 이미지
- 차량 이름
- 차량 설명
- 화면 3 - 즐겨찾는 존
- 즐겨찾는 존 타이틀
- 이미지
- 이름 (아크로서울포레스트 D타워)
- 별칭 (서울숲역 5번 출구(D타워))
- 화면 1 - 지도
- 지도에 차량공유지를 표시합니다.
- 즐겨찾는 존 버튼, 내 위치 찾기 버튼, 내 위치, 쏘카존이 보여야합니다.
- 지도의 축척은 피그마를 보고 적절한 크기로 맞춥니다.
- 지도의 초기 시작 위치는
- 위치 권한을 허용한 경우 현재 내 위치입니다.
- 위치 권한을 허용하지 않은 경우 서울숲역입니다. (
latitude: 37.54330366639085, longitude: 127.04455548501139
)
- 지도에서 내 위치를 표시합니다.
- 초기 진입시 위치 권한이 허용되면 내 위치를 표시합니다.
- 내 위치 버튼을 누를 때마다 위치 정보를 업데이트합니다.
- 업데이트 된 정보를 지도에 빨간원으로 표시합니다.
파란원으로 표시했음
- 지도에 쏘카존을 표시합니다.
- 존 마커를 누르면 맵의 중심을 선택된 존의 좌표로 이동시킵니다.
- 맵의 중심으로 존 마커를 이동시킨 뒤 선택한 존의 차량 리스트를 보여줍니다.
- push
- 즐겨찾는 존 버튼을 누르면 즐겨찾는 존 화면을 보여줍니다.
- present
- 지도에 차량공유지를 표시합니다.
- 뷰모델, 유즈케이스를 만드는 디펜던시 팩토리가 존재
- 코디네이터와 함께 사용하는 구조로 만들었으면 좋았을 텐데 아쉬움
- 최초의 화면과 이후의 화면이동을 담당하는 라우터가 존재
- 라우터는 싱글톤으로 만들었는데, 단 하나의 네비게이션컨트롤러를 가졌으면 해서 그렇게 했음.
- 주입이 잘 되었으면 싱글톤일 필요가 없었을 것 같아서 아쉬움
- 응답모델 DTO와 화면에 그릴때 사용될 Entity로 나누어주었음
- Moya를 사용해서 통신함
- 즐겨찾기
- UserDefaults에 직접 만든 Zone 클래스를 바로 저장할 수 없어서 인코딩/디코딩을 거침
- 지역 id를 키로, 밸류를 Zone으로 저장해서 데이터 양이 많더라도 어느정도 커버하려고 노력함
- 어노테이션 클러스터링
- 차랑공유지역이 많을때 어느정도 묶어주는 기능이 있으면 좋을 듯 함