Momentrip은 Jetpack Compose 기반으로 제작된 맞춤형 여행 일정 관리 앱입니다.
사용자의 취향과 지역을 바탕으로 관광지, 음식점, 숙소를 추천하고,
직관적인 UI를 통해 여행 일정을 만들고 시각적으로 확인할 수 있습니다.
- 🔍 맞춤형 장소 추천
- 사용자 선호도 기반 관광지, 음식점, 숙소 추천
- 🗺️ 카카오맵 연동
- 마커 및 경로 애니메이션을 포함한 지도 기반 UI
- 🗓️ 일정 생성 및 편집
- 날짜별 여행 일정 추가/삭제 및 시간 순 정렬
- 🎨 모던 UI 디자인
- Jetpack Compose 기반 반응형 레이아웃 및 다크모드 대응
- 📝 체크리스트 및 메모
- 여행 준비물 및 일정별 메모 기능 포함
| 영역 | 기술 / 라이브러리 |
|---|---|
| 언어 | Kotlin 1.9.23 |
| UI 프레임워크 | Jetpack Compose 1.7.2 |
| 아키텍처 | MVVM + StateFlow |
| 지도 | Kakao Map SDK |
| API | TourAPI (한국관광공사) |
| 애니메이션 | Orbital, Compose Animation |
| 이미지 로딩 | Coil |
| 의존성 관리 | Gradle 8.4, AGP 8.9.0 |
| 상태 관리 | ViewModel, StateFlow |
| 기타 | Firebase 인증(선택), TFLite(예정) |
| 이름 | 학번 | 역할 |
|---|---|---|
| 김진하 | 202135751 | 백엔드 |
| 윤재상 | 202130808 | 백엔드 |
| 노유정 | 202235036 | 프론트엔드 |
| 박찬우 | 202135774 | 프론트엔드 |
| 조민주 | 202235126 | 프론트엔드 |
- 백엔드는 TourAPI 연동, 사용자 추천 알고리즘, 일정 저장 및 데이터 흐름을 담당했습니다.
- 프론트엔드는 Jetpack Compose 기반 UI 구성, 지도 연동, 애니메이션 구현을 맡았습니다.
PostCreateScreen에 장소 선택 UI, 태그 입력, 설명 필드 구현AiLoadingScreen에 Lottie 애니메이션 적용 및 텍스트 구성
FeedScreen에 검색 기능 추가 (query,searchResult상태 관리)PostCard에 대표 이미지, 장소명, 좋아요 버튼 구성
ActivitySelectScreen구현Place모델에DetailIntroItem필드 통합
ScheduleOverviewScreen에서 지도 구성 분리 (ScheduleMapView)- 카드, 시트, 버튼 레이아웃 수정
FeedScreen카드 클릭 시 팝업 전환 애니메이션 구현PlaceDetailScreen에 BottomSheet 구조 적용ScheduleScreen,CalendarScreen,ChecklistScreen구조 정비- 전체 UI 디렉터리 구조
screen/도메인/파일형식 정리
ScheduleListScreen에서TripOverviewScreen전환 구현
RecommendService에서 유사도 계산 병렬 처리 (async-awaitAll)- Word2Vec 벡터 연산 최적화
- DateRangePicker 형태의 달력 UI 구현
TourAPIService에서detailIntro1필드 사용Place에infoCenter,roomType등 필드 추가
FeedScreen에서PlaceDetailScreen팝업 애니메이션 구현Orbital,updateTransition적용
Schedule.kt에CheckItem리스트 필드 추가ScheduleCreationScreen,ChecklistScreen구현
- 일정 클릭 시
TripOverviewScreen전환 기능 구현
ScheduleListScreen구현UserViewModel에서loadSchedules제거
- 사용자 선호 기반 추천 구조 설계 (
Question,RecommendService등)
- 프로젝트 초기 커밋