Skip to content

[SKT/한국관광공사] 2020 스마트 관광 앱 개발 공모전 '무전여행' 앱

License

Notifications You must be signed in to change notification settings

mtjin/NoMoneyTrip

Repository files navigation

[다른 프로젝트 더보기]

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 에서 처리하였습니다.

https://user-images.githubusercontent.com/37071007/107048812-b295f380-680c-11eb-8b14-4879abd617b8.png

파이어베이스 RTDB 데이터베이스 구조 설계

https://user-images.githubusercontent.com/37071007/95646136-63f77780-0b00-11eb-87dc-6b0207303803.png

Jetpack Navigation 설계

효율성 면에서 처음 로그인부분만 액티비티로 구성하고 나머지 메인액티비티에서는 Jeptack Navigation을 사용과 함께 모두 프래그먼트로 구성함으로써 싱글 액티비티 아키텍처로 구성했습니다.

https://user-images.githubusercontent.com/37071007/99547497-eece6a80-29fa-11eb-88d6-b128a51beee9.png

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

사진


https://github.com/mtjin/NoMoneyTrip/raw/master/playstore_file/%ED%94%8C%EB%A0%88%EC%9D%B4%EC%8A%A4%ED%86%A0%EC%96%B4%EC%82%AC%EC%A7%84.jpg?raw=true

https://github.com/mtjin/NoMoneyTrip/raw/master/playstore_file/%ED%94%8C%EB%A0%88%EC%9D%B4%EC%8A%A4%ED%86%A0%EC%96%B4%EC%82%AC%EC%A7%842.jpg?raw=true

https://github.com/mtjin/NoMoneyTrip/raw/master/playstore_file/%ED%94%8C%EB%A0%88%EC%9D%B4%EC%8A%A4%ED%86%A0%EC%96%B4%EC%82%AC%EC%A7%843.jpg?raw=true

https://github.com/mtjin/NoMoneyTrip/raw/master/playstore_file/%ED%94%8C%EB%A0%88%EC%9D%B4%EC%8A%A4%ED%86%A0%EC%96%B4%EC%82%AC%EC%A7%844.jpg?raw=true

https://github.com/mtjin/NoMoneyTrip/raw/master/playstore_file/%ED%94%8C%EB%A0%88%EC%9D%B4%EC%8A%A4%ED%86%A0%EC%96%B4%EC%82%AC%EC%A7%845.jpg?raw=true

https://github.com/mtjin/NoMoneyTrip/raw/master/playstore_file/%ED%94%8C%EB%A0%88%EC%9D%B4%EC%8A%A4%ED%86%A0%EC%96%B4%EC%82%AC%EC%A7%846.jpg?raw=true

  • 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 분석 도구 적용

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c13bd05f-1faa-4d12-acb2-d3c3c33026c4/.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/417e1b2b-bb7e-4ae0-b305-154260a8a248/.pdf

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)