할 일을 완료할수록 맥주잔이 채워지는 Android 투두 앱
2025년 2학기 모바일 프로그래밍 텀 프로젝트
To Beer는 매일의 할 일(Todo)을 완료하면 맥주잔이 점점 채워지는 동기부여형 안드로이드 앱입니다.모든 할 일을 끝냈을 때 맥주잔이 넘치는 거품 애니메이션과 함께 달성감을 시각적으로 표현합니다.연속 달성 스트릭, 주간 통계, 스킨 상점 등 다양한 부가 기능을 통해 꾸준한 습관 형성을 도와줍니다.
- 할 일의 가중치(weight) 에 따라 맥주잔이 채워지는 비율 결정 (1~5점)
- 100% 달성 시 거품 애니메이션(Lottie) + 축하 애니메이션 자동 재생
- 날짜를 이동해도 해당 날의 달성률을 맥주잔으로 시각화
- 날짜별 할 일 추가 / 수정 / 삭제 (롱클릭으로 수정/삭제)
- 각 할 일에 가중치(1~5) 부여 → 중요도에 따른 달성률 반영
- 상단 날짜바 좌우 스와이프 또는 버튼으로 날짜 이동
- 날짜를 탭하면 날짜 선택기(DatePicker) 팝업
- 매일 100% 달성 시 연속 일수(Streak) 자동 계산
- Best Streak 최고 기록 저장 및 표시
- 신기록 달성 시 토스트 메시지
- 날짜별 첫 100% 달성 시 코인 1개 자동 지급
- 획득한 코인으로 맥주 스킨 구매 및 적용
- 스킨 종류: 기본 라거 · 앰버 에일(10코인) · 다크 비어(10코인) · 블루 라군(20코인) · 메론 소다(20코인) · 콜라(15코인)
- 이번 주 월~일 요일별 달성률 막대 그래프(텍스트 기반)
- 주간 전체 합산 달성률, 완료 개수, 총 weight 요약
- 좌우 스와이프로 이전/다음 주 통계 확인
- 100% 달성한 날짜를 캘린더에서 시각적으로 확인
| 분류 | 내용 |
|---|---|
| 언어 | Java |
| 플랫폼 | Android (minSdk 24 / targetSdk 34) |
| 로컬 DB | SQLite (SQLiteOpenHelper) |
| 애니메이션 | Lottie 6.3.0 |
| 캘린더 | Material Calendar View 1.9.2 |
| UI | Material Design 3, DrawerLayout, RecyclerView, ClipDrawable |
| 데이터 저장 | SharedPreferences (코인, 스킨, 스트릭, 달성 기록) |
app/src/main/java/kr/pknu/s202112246_lee_seunghoon/
│
├── ui/
│ ├── MainActivity.java # 메인 화면 (맥주잔 + 투두 목록)
│ ├── ShopActivity.java # 스킨 상점
│ ├── WeeklyStatsActivity.java # 주간 통계
│ └── StreakCalendarActivity.java # 달성 캘린더
│
├── adapter/
│ ├── TodoAdapter.java # 투두 목록 RecyclerView 어댑터
│ └── SkinAdapter.java # 스킨 목록 RecyclerView 어댑터
│
├── db/
│ └── TodoDatabaseHelper.java # SQLite DB 헬퍼 (CRUD)
│
└── model/
├── TodoItem.java # 투두 데이터 모델
└── BeerSkin.java # 맥주 스킨 enum (종류, 색상, 가격)
-
저장소 클론
git clone https://github.com/SH-MooDy/To_Beer.git
-
Android Studio에서 프로젝트 열기
-
에뮬레이터 또는 실기기(API 24 이상)에서 실행
| 화면 | 설명 |
|---|---|
| 메인 | 맥주잔 진행도 · 투두 목록 · 스트릭 · 날짜 이동 |
| 주간 통계 | 요일별 달성률 · 주간 요약 · 스와이프 주 이동 |
| 달성 캘린더 | 100% 달성 날짜 표시 |
| 스킨 상점 | 코인으로 맥주 스킨 구매 · 적용 |