https://www.notion.so/d9b3f4c2bfc74876855621ab81e735f8
깃허브 : 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
로딩이 오래걸릴 수 있는 홈화면 및 로그인 화면 등에서 Repository 를 local과 remote로 나누고 로컬캐싱을 적용하여 데이터 불러오는 속도를 높였습니다. 서버와만 통신하는 부분은 시간 및 효율성 문제로 local remote를 나누지 않고 Repository 에서 처리하였습니다.
효율성 면에서 처음 로그인부분만 액티비티로 구성하고 나머지 메인액티비티에서는 Jeptack Navigation을 사용과 함께 모두 프래그먼트로 구성함으로써 싱글 액티비티 아키텍처로 구성했습니다.
컨벤션 : [행동] 내용(한글) , 출처 : 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)