실시간 버스 정보, 승하차 알람 기능을 제공하는 '카카오버스' 앱 클론 프로젝트입니다.
Team.mOS
making Open Source라는 의미로 외부 라이브러리를 사용하지 않겠다는 굳은 의지를 표현하였습니다.
저희는 페어 프로그래밍을 적극 활용하여, 구조 설계의 대부분을 모두 함께 진행하였습니다.
S002_강민상 | S013_김태훈 | S045_이지수 | S057_최수정 |
---|---|---|---|
버스 노선 화면 로직 GPS 기반 버스 하차 기능 |
프로젝트 리더 git workflow 관리 |
Combine 활용 Network 레이어 설계 |
Coordinator 구조 Timer |
BBus 는 서울특별시에서 제공하는 공공 API를 사용하여
실시간 버스 및 정거장 정보를 확인할 수 있습니다.
또한 GPS 위치 정보를 활용한 승하차 알림 서비스를 지원합니다.
버스 및 정거장 검색 | 실시간 버스 도착 정보 제공 | 실시간 버스 노선 정보 제공 |
---|---|---|
특정 버스 또는 정거장을 검색할 수 있습니다. |
특정 정거장의 실시간 버스 도착 정보를 확인할 수 있습니다. |
특정 버스 노선의 실시간 정보를 확인할 수 있습니다. |
자주 타는 버스 즐겨찾기 | 버스 승차 알람 | 버스 하차 알람 |
---|---|---|
즐겨찾기된 버스들의 도착 정보를 홈 화면에서 확인할 수 있습니다. |
푸시 알림을 통해 승차 알람을 받을 수 있습니다. |
푸시 알림을 통해 하차 알람을 받을 수 있습니다. |
Global : 모든 화면에서 공통적으로 사용되는 변수, 이미지, 객체 등
Foreground : 각 화면별 View, ViewController, ViewModel, Model
Background : 화면과 상관 없이 동작되는 기능
BBus
├── Global
│ ├── Constant
│ ├── Coordinator
│ ├── DTO
│ ├── Extension
│ ├── Network
│ ├── Resource
│ └── View
├── Foreground
│ ├── AlarmSetting
│ ├── BusRoute
│ ├── Home
│ ├── MovingStatus
│ ├── Search
│ └── Station
├── Background
│ ├── GetOffAlarm
│ └── GetOnAlarm
├── AppDelegate
├── SceneDelegate
└── info.plist
Coordinator 를 사용한 MVVM-C 패턴 적용
공공 API 트래픽 제한 문제 해결
Combine을 통한 비동기 로직 처리
실시간 데이터를 위한 Timer
CoreLocation 을 통한 GPS 정보를 활용한 승하차 추적 서비스
스토리보드 없이 Programmatically View 사용
외부 라이브러리 NO
Github Action을 활용한 CI 배포