NoMoneyTrip
NoMoneyTrip copied to clipboard
[SKT/한국관광공사] 2020 스마트 관광 앱 개발 공모전 '무전여행' 앱
[다른 프로젝트 더보기]
https://www.notion.so/d9b3f4c2bfc74876855621ab81e735f8
1) URL
깃허브 : https://github.com/mtjin/NoMoneyTrip
스토어 : https://play.google.com/store/apps/details?id=com.mtjin.nomoneytrip
메인 시연영상1(전체적으로) : https://youtu.be/Ty2MfKSNdso
시연영상1(첫 회원가입 부분만) : https://youtu.be/f2-8GOL8esE
화면전환 애니메이션 전체 적용 업데이트 : https://www.youtube.com/watch?v=snzmKRwiOVM
카카오링크 업데이트 : https://www.youtube.com/watch?v=LT_FtLcXJPM
2) 설명
안드로이드 MVVM 아키텍처 구조
로딩이 오래걸릴 수 있는 홈화면 및 로그인 화면 등에서 Repository 를 local과 remote로 나누고 로컬캐싱을 적용하여 데이터 불러오는 속도를 높였습니다. 서버와만 통신하는 부분은 시간 및 효율성 문제로 local remote를 나누지 않고 Repository 에서 처리하였습니다.
파이어베이스 RTDB 데이터베이스 구조 설계
Jetpack Navigation 설계
효율성 면에서 처음 로그인부분만 액티비티로 구성하고 나머지 메인액티비티에서는 Jeptack Navigation을 사용과 함께 모두 프래그먼트로 구성함으로써 싱글 액티비티 아키텍처로 구성했습니다.
Commit Message Convention & Git Branch
컨벤션 : [행동] 내용(한글) , 출처 : https://blog.ull.im/engineering/2019/03/10/logs-on-git.html
FIX -> 가장 자주 사용되는 커밋 로그 중 하나로 ‘Fix’가 있습니다. 보통 올바르지 않은 동작을 고친 경우에 사용합니다.
ADD -> 코드나 테스트, 예제, 문서 등의 추가가 있을 때 사용합니다
REMOVE -> 코드의 삭제가 있을 때 사용합니다. ‘Clean’이나 ‘Eliminate’를 사용하기도 합니다. 보통 A 앞에 ‘unnecessary’, ‘useless’, ‘unneeded’, ‘unused’, ‘duplicated’가 붙는 경우가 많습니다.
IMPROVE -> 향상이 있을 때 사용합니다. 호환성, 테스트 커버리지, 성능, 검증 기능, 접근성 등 다양한 것들이 목적이 될 수 있습니다.
IMPLEMENT -> 구현체를 완성시켰을 때 사용합니다.
REVISE -> 문서의 개정이 있을 때 주로 사용합니다.
MOVE -> 코드의 이동이 있을 때 사용합니다.
RENAME -> 이름 변경이 있을 때 사용합니다.
Git Branch → Master ↔ Develop ↔ Feature/Issue
사진
- SKT 와 한국관광공사에서 주관하는 스마트관광 앱 공모전 개발 (팀원: 서버 2명 기획자 1명 디자인 1명)
- 농촌에 일손을 제공하는 대신에 봉사시간과 숙식을 제공받는 앱
- 데이터베이스 설계 및 테스트 수행
- Jetpack Navigation 적용하여 로그인 이후 메인부분 싱글액티비티 구조로 구현
- Jetpack Navigation 효율적인 화면구성 및 프래그먼트 백스택관리, Animation Transition 적용으로 화면이동 생동감 증대 (애니메이션은 유튜브 영상 이후에 업데이트)
- 필수 기능으로 Tmap API 와 한국관광 공사 API 사용
- 유저 로그인과 이장님 로그인(관리자 페이지) 존재
- 카카오로그인 및 전화번호 인증 구현
- 여행 전날 13시 여행 준비 노티피케이션, 여행 종료날 18시 리뷰 요청 노티피케이션 구현과 고객 예약, 여행 수락/거절 등 FCM 구현
- 노티피케이션(알림) 구현
- 로컬캐싱 구현
- 디자이너와 협업하여 다양한 UI/UX 구현
- 리사이클러뷰 페이징처리
- Room Database TypeConverter 적용 (정리 : https://youngest-programming.tistory.com/456)
- Unit Test (Espresso, Junit4, Mockito) 테스트
- 팀내부 및 SK QA팀 QA TEST 통과, Crashlytics, Performance, TestLab, Analytics 분석 도구 적용
3) 기술 스택
Android(Kotlin), Jetpack Navigation, MVVM, Room, AAC ViewModel, DataBinding, LiveData, Koin, RxJava2, RxKotlin, RxAndroid, Retrofit2, Firebase(RTDB , Storage, FCM, Auth, Crashlytics, Analytics), AlarmManager, WorkManager, ViewPager2, CoordinatorLayout, Material Design, Lottie, Kakao Login API, Kakao Link, Tmap API, Tour API, Linkfy, Glide, Unit Test(Espresso, Mockito, Junit 4) 등
4) 성과
디자이너와 제플린을 통한 협업과 ViewPager2, CoordinatorLayout 등 ****다양한 UI/UX 구현 경험
아키텍처 설계, 개발, 테스트 일련의 과정 경험
Android 아키텍처 컴포넌트 힉습 및 적용
공모전 장려상 수상 (https://www.notion.so/86301ccf746e48afb35debbd15f30818)