Skip to content

Dawon-Y/FLOW

Repository files navigation

📖 프로젝트 소개

FLOW는 대중교통 이용자를 위한 스마트 알림 앱입니다. 버스나 지하철을 기다리는 지루한 시간을 테트리스 게임으로 즐기고, 차량 도착 1분 전에 자동으로 알림을 받아 여유롭게 탑승할 수 있습니다.

시연 영상

https://www.youtube.com/watch?v=3f62YUZ6MO4

💡 개발 배경

"버스를 기다리면서 스마트폰만 보다가 정작 버스가 오면 놓치는 경험, 다들 있으시죠?"

버스 정류장에서 스마트폰을 보다가 버스를 놓치는 불편함을 해결하기 위해 개발했습니다. 대기 시간을 생산적이고 즐겁게 보내면서도, 정확한 타이밍에 탑승할 수 있도록 돕는 것이 목표입니다.

🎯 핵심 가치

  • ⏰ 정확한 알림: 도착 1분 전 푸시 알림으로 놓칠 걱정 없음
  • 🎮 즐거운 대기: 대기 시간을 테트리스로 재미있게 활용
  • 🗺️ 실시간 정보: 현재 위치 기반 대중교통 정보 제공
  • 📱 간편한 UI: 직관적이고 사용하기 편한 인터페이스

✨ 주요 기능

🚏 대중교통 실시간 정보

  • 현재 위치 기반 정류장 검색: GPS를 활용한 주변 정류장 자동 탐색
  • 실시간 도착 정보: 버스/지하철의 실시간 도착 예정 시간 확인
  • 노선 정보: 경로, 소요 시간, 정류장 정보 제공
  • 즐겨찾기: 자주 이용하는 정류장 저장 기능

⏰ 스마트 알림 시스템

  • 1분 전 알림: 차량 도착 1분 전 자동 푸시 알림
  • 진동/소리 설정: 사용자 환경에 맞는 알림 방식 선택
  • 백그라운드 동작: 앱이 백그라운드에 있어도 알림 작동

🎮 테트리스 미니게임

  • 대기 시간 활용: 버스를 기다리며 즐기는 클래식 테트리스
  • 자동 일시정지: 알림 발생 시 게임 자동 일시정지
  • UI 커스터마이징: 오픈소스 테트리스를 FLOW 디자인에 맞게 수정

🗺️ 지도 기능

  • 정류장 위치 표시: 지도에서 주변 정류장 한눈에 확인
  • 경로 안내: 선택한 정류장까지의 보행 경로 제공
  • 실시간 위치 추적: 내 위치와 정류장 거리 실시간 업데이트

📱 앱 사용 흐름

1️⃣ 메인 화면

  • 현재 위치 기반 주변 정류장 표시
  • 즐겨찾기 정류장 빠른 접근
  • 지도 또는 리스트 뷰 전환

2️⃣ 정류장 선택

  • 원하는 정류장 선택
  • 실시간 도착 정보 확인
  • 알림 설정 활성화

3️⃣ 대기 중 테트리스 플레이

  • 버스/지하철을 기다리며 게임 즐기기
  • 도착 시간 실시간 모니터링
  • 백그라운드에서도 알림 작동

4️⃣ 도착 1분 전 알림

  • 푸시 알림 수신
  • 게임 자동 일시정지

🎮 테트리스 게임 특징

  • 오픈소스 기반 커스터마이징

  • 기존 테트리스 오픈소스를 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 대기 시간을 즐겁게, 이동을 스마트하게!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published