/boostcamp3_F

부스트캠프 3기 Android F팀 - 위치 기반 일기 앱 Travery

Primary LanguageKotlin

App iconTravery (위치형 일기 앱)

Travery는 Travel과 Diary를 합친 단어로, 자신의 일상 생활을 지도 위에 기록할 수 있는 ‘위치기반 일기’ 어플리케이션입니다.

  • 자신의 일상을 실시간 경로 일기로 남기어 자신이 갔었던 정확한 위치와 무엇을 했는지를 기억할 수 있도록 도와줍니다.
  • 활동 기록을 테마와 날짜로 구분하여 사용자가 원하는 자신의 기록을 쉽게 찾을 수 있습니다.
  • 지금 위치에서 다른 사람은 어떤 코스로 여행 혹은 데이트를 즐겼는지 정보를 제공하여 계획에 도움을 줄 수 있습니다.
  • 여행 같은 경우에 자신이 다녀왔던 길을 저장하여 길을 잃어버리지 않도록 도와줍니다.

주제를 생각하게 된 동기

"저번에 갔던 곳이 어디였지?", "그때 무엇을 먹었더라?" 같은 고민과 "여기에선 무엇을 하면 좋을까?" 같은 고민을 해결하고 좀 더 재미있고 기억에 남는 일기를 기록해 보고 싶어서 생각하게 되었습니다.

기존에 존재하는 비슷한 서비스와 차별되는 점

strava, 오픈라이더 같은 경로 저장 어플리케이션은 주로 운동 활동에 사용되었습니다. 하지만 이 어플리케이션은 일반인을 대상으로 자신이 활용하고 싶은 방법대로 사용할 수 있으며 일상 공유에 목적을 두고 있습니다.


Features

# 경로(Course)

Course

경로 기록하기

  • 실시간으로 위치를 추적하며 폴리라인으로 지나온 길을 그려줍니다.
  • 오랫동안 한 곳에 머물러 있다면 앱이 자동으로 인식하여 활동 저장을 제안합니다.
  • 경로 기록 중에는 앱을 종료하더라도 계속하여 위치를 기록합니다.
    • 경로 기록 중에는 언제든 자신의 위치에서 활동을 저장할 수 있습니다.

경로 상세보기

  • 해당 경로와 경로 위의 활동들을 지도에 표시합니다.
  • 경로 위에 활동 정보를 마커로 표시합니다.
    • 현재 보고있는 활동이 상단에 표시됩니다.
    • 활동을 선택시 활동에 대한 정보가 하단 뷰에 나타납니다.
    • 왼쪽의 스크롤을 이용해 활동 목록을 조회할 수 있습니다.

# 활동(UserAction)

User Action

  • 코스 기록 중 해당 위치(좌표) 위에 활동을 추가할 수 있습니다.
    • 제목, 내용, 해시태그, 사진 등을 저장할 수 있습니다.
    • 코스 기록 중이 아니라면, 주소를 검색하여 위치를 지정할 수 있습니다.
  • 저장한 활동은 지도 위에 마커 형식, 피드 형식으로 한눈에 볼 수 있습니다.
    • 검색 기능을 통해 찾고자 하는 활동만을 필터링하여 볼 수 있습니다.
    • 구글 계정 로그인 후 설정 옵션을 변경하면, 활동 추가 시 서버에 공유할 수 있습니다.

Core Techniques

  • 실시간 위치 트래킹을 위한 FusedLocationService
  • 전체 경로를 간소화시켜 보여주기 위한 Google Static Map API
  • Rx를 통한 데이터 관련 비동기 처리
  • Room을 이용한 Local DB 관리
  • Retrofit을 이용한 서버 통신

Development Environment

Develope tool

Android studio, Adobe XD, Kotlin, Github, SourseTree, Jenkins, with Google :D


Architecture

MVVM 패턴을 적용하기 위해 Activity에서 로직을 구현하지 않고, ViewModel로 옮겼습니다. 그리고 LiveData와 RxJava를 사용하여 데이터 변화를 구독하고 DataBinding을 사용하여 레이아웃의 UI를 앱의 데이터 소스에 바인딩했습니다.

Libraries


Contributors


Documents