Skip to content

Latest commit

ย 

History

History
110 lines (74 loc) ยท 5 KB

File metadata and controls

110 lines (74 loc) ยท 5 KB

App iconTravery (์œ„์น˜ํ˜• ์ผ๊ธฐ ์•ฑ)

Travery๋Š” Travel๊ณผ Diary๋ฅผ ํ•ฉ์นœ ๋‹จ์–ด๋กœ, ์ž์‹ ์˜ ์ผ์ƒ ์ƒํ™œ์„ ์ง€๋„ ์œ„์— ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” โ€˜์œ„์น˜๊ธฐ๋ฐ˜ ์ผ๊ธฐโ€™ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.

  • ์ž์‹ ์˜ ์ผ์ƒ์„ ์‹ค์‹œ๊ฐ„ ๊ฒฝ๋กœ ์ผ๊ธฐ๋กœ ๋‚จ๊ธฐ์–ด ์ž์‹ ์ด ๊ฐ”์—ˆ๋˜ ์ •ํ™•ํ•œ ์œ„์น˜์™€ ๋ฌด์—‡์„ ํ–ˆ๋Š”์ง€๋ฅผ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.
  • ํ™œ๋™ ๊ธฐ๋ก์„ ํ…Œ๋งˆ์™€ ๋‚ ์งœ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ž์‹ ์˜ ๊ธฐ๋ก์„ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ง€๊ธˆ ์œ„์น˜์—์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์€ ์–ด๋–ค ์ฝ”์Šค๋กœ ์—ฌํ–‰ ํ˜น์€ ๋ฐ์ดํŠธ๋ฅผ ์ฆ๊ฒผ๋Š”์ง€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ณ„ํš์— ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฌํ–‰ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์ž์‹ ์ด ๋‹ค๋…€์™”๋˜ ๊ธธ์„ ์ €์žฅํ•˜์—ฌ ๊ธธ์„ ์žƒ์–ด๋ฒ„๋ฆฌ์ง€ ์•Š๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

์ฃผ์ œ๋ฅผ ์ƒ๊ฐํ•˜๊ฒŒ ๋œ ๋™๊ธฐ

"์ €๋ฒˆ์— ๊ฐ”๋˜ ๊ณณ์ด ์–ด๋””์˜€์ง€?", "๊ทธ๋•Œ ๋ฌด์—‡์„ ๋จน์—ˆ๋”๋ผ?" ๊ฐ™์€ ๊ณ ๋ฏผ๊ณผ "์—ฌ๊ธฐ์—์„  ๋ฌด์—‡์„ ํ•˜๋ฉด ์ข‹์„๊นŒ?" ๊ฐ™์€ ๊ณ ๋ฏผ์„ ํ•ด๊ฒฐํ•˜๊ณ  ์ข€ ๋” ์žฌ๋ฏธ์žˆ๊ณ  ๊ธฐ์–ต์— ๋‚จ๋Š” ์ผ๊ธฐ๋ฅผ ๊ธฐ๋กํ•ด ๋ณด๊ณ  ์‹ถ์–ด์„œ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด์— ์กด์žฌํ•˜๋Š” ๋น„์Šทํ•œ ์„œ๋น„์Šค์™€ ์ฐจ๋ณ„๋˜๋Š” ์ 

strava, ์˜คํ”ˆ๋ผ์ด๋” ๊ฐ™์€ ๊ฒฝ๋กœ ์ €์žฅ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ฃผ๋กœ ์šด๋™ ํ™œ๋™์— ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ผ๋ฐ˜์ธ์„ ๋Œ€์ƒ์œผ๋กœ ์ž์‹ ์ด ํ™œ์šฉํ•˜๊ณ  ์‹ถ์€ ๋ฐฉ๋ฒ•๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ์ƒ ๊ณต์œ ์— ๋ชฉ์ ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


Features

# ๊ฒฝ๋กœ(Course)

Course

๊ฒฝ๋กœ ๊ธฐ๋กํ•˜๊ธฐ

  • ์‹ค์‹œ๊ฐ„์œผ๋กœ ์œ„์น˜๋ฅผ ์ถ”์ ํ•˜๋ฉฐ ํด๋ฆฌ๋ผ์ธ์œผ๋กœ ์ง€๋‚˜์˜จ ๊ธธ์„ ๊ทธ๋ ค์ค๋‹ˆ๋‹ค.
  • ์˜ค๋žซ๋™์•ˆ ํ•œ ๊ณณ์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ๋‹ค๋ฉด ์•ฑ์ด ์ž๋™์œผ๋กœ ์ธ์‹ํ•˜์—ฌ ํ™œ๋™ ์ €์žฅ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฝ๋กœ ๊ธฐ๋ก ์ค‘์—๋Š” ์•ฑ์„ ์ข…๋ฃŒํ•˜๋”๋ผ๋„ ๊ณ„์†ํ•˜์—ฌ ์œ„์น˜๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฒฝ๋กœ ๊ธฐ๋ก ์ค‘์—๋Š” ์–ธ์ œ๋“  ์ž์‹ ์˜ ์œ„์น˜์—์„œ ํ™œ๋™์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๋กœ ์ƒ์„ธ๋ณด๊ธฐ

  • ํ•ด๋‹น ๊ฒฝ๋กœ์™€ ๊ฒฝ๋กœ ์œ„์˜ ํ™œ๋™๋“ค์„ ์ง€๋„์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฝ๋กœ ์œ„์— ํ™œ๋™ ์ •๋ณด๋ฅผ ๋งˆ์ปค๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
    • ํ˜„์žฌ ๋ณด๊ณ ์žˆ๋Š” ํ™œ๋™์ด ์ƒ๋‹จ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
    • ํ™œ๋™์„ ์„ ํƒ์‹œ ํ™œ๋™์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•˜๋‹จ ๋ทฐ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
    • ์™ผ์ชฝ์˜ ์Šคํฌ๋กค์„ ์ด์šฉํ•ด ํ™œ๋™ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# ํ™œ๋™(UserAction)

User Action

  • ์ฝ”์Šค ๊ธฐ๋ก ์ค‘ ํ•ด๋‹น ์œ„์น˜(์ขŒํ‘œ) ์œ„์— ํ™œ๋™์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ œ๋ชฉ, ๋‚ด์šฉ, ํ•ด์‹œํƒœ๊ทธ, ์‚ฌ์ง„ ๋“ฑ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ฝ”์Šค ๊ธฐ๋ก ์ค‘์ด ์•„๋‹ˆ๋ผ๋ฉด, ์ฃผ์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์œ„์น˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ €์žฅํ•œ ํ™œ๋™์€ ์ง€๋„ ์œ„์— ๋งˆ์ปค ํ˜•์‹, ํ”ผ๋“œ ํ˜•์‹์œผ๋กœ ํ•œ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ฐพ๊ณ ์ž ํ•˜๋Š” ํ™œ๋™๋งŒ์„ ํ•„ํ„ฐ๋งํ•˜์—ฌ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ตฌ๊ธ€ ๊ณ„์ • ๋กœ๊ทธ์ธ ํ›„ ์„ค์ • ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•˜๋ฉด, ํ™œ๋™ ์ถ”๊ฐ€ ์‹œ ์„œ๋ฒ„์— ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Core Techniques

  • ์‹ค์‹œ๊ฐ„ ์œ„์น˜ ํŠธ๋ž˜ํ‚น์„ ์œ„ํ•œ FusedLocationService
  • ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ๊ฐ„์†Œํ™”์‹œ์ผœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ Google Static Map API
  • ์—ฌ๋Ÿฌ ํ™œ๋™๋งˆ์ปค๋ฅผ ์ง€๋„์œ„์— Clustering
  • Rx๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ จ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
  • Glide๋ฅผ ์ด์šฉํ•ด ์ด๋ฏธ์ง€ Cashing
  • 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