/iOS09-BBus

실시간 버스 정보, 승하차 알람 기능을 제공하는 '카카오버스' 앱 클론 프로젝트 🚌 BoostBus 📲

Primary LanguageSwift

🚌 캠퍼들의 출퇴근을 책임진다. BBus, BoostBus!

실시간 버스 정보, 승하차 알람 기능을 제공하는 '카카오버스' 앱 클론 프로젝트입니다.


🫂 팀 소개

Team.mOS
making Open Source라는 의미로 외부 라이브러리를 사용하지 않겠다는 굳은 의지를 표현하였습니다.
저희는 페어 프로그래밍을 적극 활용하여, 구조 설계의 대부분을 모두 함께 진행하였습니다.

S002_강민상 S013_김태훈 S045_이지수 S057_최수정
버스 노선 화면 로직
GPS 기반 버스 하차 기능
프로젝트 리더
git workflow 관리
Combine 활용
Network 레이어 설계
Coordinator 구조
Timer

⚒️ 기능 소개

Video Label


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 배포


저희가 협업했던 과정을 보시려면?

Github Wiki