FLOW는 대중교통 이용자를 위한 스마트 알림 앱입니다. 버스나 지하철을 기다리는 지루한 시간을 테트리스 게임으로 즐기고, 차량 도착 1분 전에 자동으로 알림을 받아 여유롭게 탑승할 수 있습니다.
https://www.youtube.com/watch?v=3f62YUZ6MO4
"버스를 기다리면서 스마트폰만 보다가 정작 버스가 오면 놓치는 경험, 다들 있으시죠?"
버스 정류장에서 스마트폰을 보다가 버스를 놓치는 불편함을 해결하기 위해 개발했습니다. 대기 시간을 생산적이고 즐겁게 보내면서도, 정확한 타이밍에 탑승할 수 있도록 돕는 것이 목표입니다.
- ⏰ 정확한 알림: 도착 1분 전 푸시 알림으로 놓칠 걱정 없음
- 🎮 즐거운 대기: 대기 시간을 테트리스로 재미있게 활용
- 🗺️ 실시간 정보: 현재 위치 기반 대중교통 정보 제공
- 📱 간편한 UI: 직관적이고 사용하기 편한 인터페이스
- 현재 위치 기반 정류장 검색: GPS를 활용한 주변 정류장 자동 탐색
- 실시간 도착 정보: 버스/지하철의 실시간 도착 예정 시간 확인
- 노선 정보: 경로, 소요 시간, 정류장 정보 제공
- 즐겨찾기: 자주 이용하는 정류장 저장 기능
- 1분 전 알림: 차량 도착 1분 전 자동 푸시 알림
- 진동/소리 설정: 사용자 환경에 맞는 알림 방식 선택
- 백그라운드 동작: 앱이 백그라운드에 있어도 알림 작동
- 대기 시간 활용: 버스를 기다리며 즐기는 클래식 테트리스
- 자동 일시정지: 알림 발생 시 게임 자동 일시정지
- UI 커스터마이징: 오픈소스 테트리스를 FLOW 디자인에 맞게 수정
- 정류장 위치 표시: 지도에서 주변 정류장 한눈에 확인
- 경로 안내: 선택한 정류장까지의 보행 경로 제공
- 실시간 위치 추적: 내 위치와 정류장 거리 실시간 업데이트
- 현재 위치 기반 주변 정류장 표시
- 즐겨찾기 정류장 빠른 접근
- 지도 또는 리스트 뷰 전환
- 원하는 정류장 선택
- 실시간 도착 정보 확인
- 알림 설정 활성화
- 버스/지하철을 기다리며 게임 즐기기
- 도착 시간 실시간 모니터링
- 백그라운드에서도 알림 작동
- 푸시 알림 수신
- 게임 자동 일시정지
-
오픈소스 기반 커스터마이징
-
기존 테트리스 오픈소스를 FLOW에 맞게 수정
-
FLOW 디자인 시스템에 맞춘 UI/UX 개선
-
앱 테마와 일관된 색상 및 레이아웃
app/src/main/java/com/example/flow/
├── MainActivity.kt # 앱 진입점
│
├── ui/ # UI 관련
│ ├── map/ # 지도 화면
│ ├── transit/ # 대중교통 정보 화면
│ └── game/ # 게임 화면
│
├── tetris/ # 테트리스 게임 (오픈소스 수정)
│ ├── Tetris.java # 게임 로직
│ ├── TetrisBoard.java # 게임 보드
│ ├── tetrominos/ # 블록 종류
│ ├── state/ # 게임 상태 관리
│ └── TetrisView.java # 게임 뷰 (UI 커스터마이징)
│
├── player/ # 플레이어 인터페이스
│ ├── PlayerInput.java # 입력 처리
│ └── PlayerUI.java # UI 인터페이스
│
├── service/ # 백그라운드 서비스
│ ├── NotificationService.java # 알림 서비스
│ └── LocationService.java # 위치 추적 서비스
│
├── api/ # API 통신
│ ├── TransitAPI.java # 대중교통 API
│ └── RetrofitClient.java # Retrofit 클라이언트
│
└── data/ # 데이터 관리
├── model/ # 데이터 모델
├── repository/ # 데이터 저장소
└── local/ # 로컬 저장소
현재 알려진 제한사항:
- 일부 지역의 대중교통 정보가 제공되지 않을 수 있습니다
- GPS 신호가 약한 실내에서는 위치 정확도가 떨어질 수 있습니다
- 게임 플레이 중 알림 발생 시 약간의 딜레이가 있을 수 있습니다
- 개인 프로젝트로 진행한 것이며, 완벽하게 구현이 된 상태는 아닙니다. (실제 서비스xx)
이 프로젝트는 MIT 라이선스 하에 있습니다.
프로젝트에 대한 문의사항이나 제안이 있으시면 Issues를 통해 연락주세요!
Made with ❤️ by Dawon-Y 대기 시간을 즐겁게, 이동을 스마트하게!