iOS15 UIKit 을 활용해서 Uber 앱을 클론한다.
- 실시간 유저 위치 구독
- 실시간 운전 요청
- 실시간 운전 요청 취소
- 실시간 운전 완료
- 인증
- MapKit
- Firebase
- Geofire
- Firestore
- Realtime Database
- SnapKit
- RxSwift
- KDCircularProgress
- SideMenu
- Combine
├── uikit-uber-clone
│ ├── Assets.xcassets - Color, Image 등 에셋파일
│ ├── color - 백그라운드, 폰트 등 색상
│ ├── constant - 상수 저장
│ ├── controller - Controller 를 화면 단위로 구분(View와 비슷하지만 페이지의 개념으로 사용)
│ │ ├── auth
│ │ ├── main
│ │ ├── menu
│ │ └── splash
│ ├── delegate
│ ├── di - Repository, Util, ViewController, ViewModel 단위로 DI 구분
│ ├── enum
│ ├── error
│ ├── extension
│ ├── model
│ ├── repository - 데이터를 가지고 오는 곳
│ ├── storyboards
│ ├── util
│ ├── view
│ │ ├── auth
│ │ ├── global
│ │ └── main - Controller 내에 들어가는 View. Component의 개념.
│ │ ├── RequestLoadingView.swift
│ │ ├── bottomSheet
│ │ ├── locationInput
│ │ └── matched
│ └── viewmodel - View의 상태를 추상화한 viewmodel
│ ├── BaseViewModel.swift
│ ├── UserViewModel.swift
│ ├── auth
│ ├── main
│ │ ├── locationInput
│ │ ├── matched
│ │ └── pickup
│ ├── menu
│ └── splash
└── uikit-uber-cloneTests - Unit 테스트 프로젝트