Skip to content

NyumNyumGood/WithMeal_Android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์นœ๊ตฌ์—๊ฒŒ ๋“ฃ๋Š” ์ƒ์ƒํ•œ '์ง„์งœ ๋ง›์ง‘' ์ •๋ณด , ๋Œ€ํ•™์ƒ๋“ค์˜ ์‹๋ฌธํ™” ๊ต๋ฅ˜์˜ ์žฅ

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

withmeal core function

1. Home

๐Ÿ’ก ๋ฉ”์ธ ํ™ˆ ํ™”๋ฉด์„ ํ†ตํ•ด ์†Œ์† ํ•™๊ต ์‚ฌ๋žŒ๋“ค์˜ ๋ฆฌ๋ทฐ์ธ ํ”ผ๋“œ์™€ ๋ฆฌ๋ทฐ ์ˆœ์œ„์˜ ๋ง›์ง‘ ๋ฆฌ์ŠคํŠธ, ์ƒˆ๋กœ ์ƒ๊ธด ํ•™๊ต ์ธ๊ทผ ์‹๋‹น์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ํŒ”๋กœ์ž‰์ด ์ƒˆ๋กœ์šด ๋ฆฌ๋ทฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฉ”์ธ ํ™ˆ ํ™”๋ฉด ์ƒ๋‹จ์— ํ™œ์„ฑํ™” ๋ฒ„ํŠผ์ด ๋‚˜ํƒ€๋‚˜๋ฉฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŒ”๋กœ์ž‰์ด ๋‚จ๊ธด ๋ฆฌ๋ทฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ˜‘๏ธ ๋ฉ”์ธ ํ™”๋ฉด์€ Toolbar, Recyclerview, 3๊ฐœ์˜ TabItem(Feed, Hot, New)์œผ๋กœ ๊ตฌ์„ฑ๋œ Tablayout, ๊ฐ๊ฐ์˜ Fragment๋ฅผ ๋‹ด๋Š” ViewPager๋กœ ์„ค๊ณ„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.CoordinatorLayout์˜ ์ž์‹๋ทฐ์— Behaviors๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹์„ ํ™œ์šฉํ•˜์—ฌ ์ธํ„ฐ๋ ‰์…˜์„ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ํŽธ์˜์„ฑ์„ ๊ณ ๋ คํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์œ„๋“œ๋ฐ€๋งŒ์˜ ํŠน์ง•์„ ์‚ด๋ ค๋‚ธ ํ‚ค์›Œ๋“œ ์ถ”์ถœ ์„œ๋น„์Šค๋Š” ๋‹ค์ค‘ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ์— ์ปจํ…Œ์ด๋„ˆ ๋‚ด์˜ ์•„์ดํ…œ ์š”์†Œ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋ฐฐ์—ดํ•ด์ฃผ๋Š” ๋ ˆ์ด์•„์›ƒ ๋ชจ๋ธ FlexboxLayout ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

2. Map

๐Ÿ’ก ํŒ”๋กœ์ž‰ํ•˜๋Š” ์ง€์ธ๋“ค์˜ ๋ง›์ง‘ ๊ธฐ๋ก๊ณผ ๋‚ด๊ฐ€ ๊ธฐ๋กํ•œ ์‹๋‹น์˜ ์ •๋ณด ๋ฐ ์œ„์น˜๋ฅผ ์ง€๋„์™€ ์œ„์น˜ ์•„์ด์ฝ˜์„ ํ†ตํ•ด ํ•œ๋ˆˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ๋งˆ์ปค ์„ ํƒ ์‹œ ํ•ด๋‹น ์Œ์‹์ ์˜ ์นด๋“œ๊ฐ€ ๋ณด์—ฌ์ง€๊ณ , ์‹๋‹น ์ƒ์„ธ ์ •๋ณด ํŽ˜์ด์ง€๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
โ˜‘๏ธ ์œ„๋“œ๋ฐ€ ๋งต์€ Naver Map API๋ฅผ ์‚ฌ์šฉํ•˜์˜€์œผ๋ฉฐ, ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์€ Naver ๊ฒ€์ƒ‰ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งต์—๋Š” 2๊ฐ€์ง€ ์œ„๋“œ๋ฐ€ ์ปค์Šคํ…€ ๋งˆ์ปค๋ฅผ ํ‘œ์‹œํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ง๊ด€์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. My page

๐Ÿ’ก ํŒ”๋กœ์ž‰ ํŒ”๋กœ์›Œ, ์ž‘์„ฑํ•œ ์‹๋‹น ๊ธฐ๋ก, ๋ถ๋งˆํฌํ•œ ์Œ์‹์ ์„ ํ™•์ธํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ํ™˜๊ฒฝ์„ค์ • ์•„์ด์ฝ˜์„ ํ†ตํ•ด ํ”„๋กœํ•„ ์‚ฌ์ง„ ๋ฐ ๋‹‰๋„ค์ž„์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํ•™๊ต ์„ค์ • ๊ด€๋ฆฌ, ์–ธ์–ด ๋ฐ ์•Œ๋ฆผ ์„ค์ • ๋“ฑ ๊ธฐํƒ€ ์‹œ์Šคํ…œ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ˜‘๏ธ ๋‚ด ์ •๋ณด ํŽ˜์ด์ง€์—์„œ๋„ ๋ฉ”์ธ ๋ทฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฌดํ•œ ์Šคํฌ๋กค๊ณผ ์ธํ„ฐ๋ ‰์…˜์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ฐ€๋ดค์–ด์š” ํƒญ์„ ๋ˆ„๋ฅด๋ฉด Gridlayout์œผ๋กœ ๊ตฌ์„ฑ๋œ ์‹๋‹น ์ •๋ณด๊ฐ€ ๋ณด์—ฌ์ง€๊ณ  ๊ฐ€๊ณ  ์‹ถ์–ด์š” ํƒญ์„ ๋ˆ„๋ฅด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋ถ๋งˆํฌํ•œ ์‹๋‹น ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์‹๋‹น ์•„์ดํ…œ์„ ํด๋ฆญํ•˜๋ฉด ์‹๋‹น์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Š” Naver Clova Summary API๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

withmeal architecture

1. Single Activity์™€ Multiple Fragments๋กœ ๊ตฌ์„ฑ์„ ํ•˜์—ฌ ์ด ๊ตฌ์กฐ์— ์ตœ์ ํ™”๋œ Android Jetpack Library์ค‘ Navigation์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™”๋ฉด ์ „ํ™˜์„ ํ•ฉ๋‹ˆ๋‹ค. NavArgs๋กœ Type์ด ์ง€์ •๋œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ๊ฐ€๋Šฅํ•œ ์ ์„ ํ™œ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
2. MVVM ์•„ํ‚คํ…์ณ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๊ฐœ์ฒด ๋งคํ•‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Room, Rxjava, Flowable, Livedata Observable, Coroutine ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์ƒ์šฉ๊ตฌ ์ฝ”๋“œ์˜ ์ž‘์„ฑ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์™€ ๋น„์ •์ƒ ์ข…๋ฃŒ๋ฅผ ์ค„์—ฌ์ฃผ๋Š” Android ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.
3. ์•กํ‹ฐ๋น„ํ‹ฐ๋‚˜ ํ”„๋ž˜๊ทธ๋จผํŠธ์™€ ๊ฐ™์€ ๊ตฌ์„ฑ์š”์†Œ์˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ ์ƒํƒœ ๊ด€๋ จ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋ฉฐ ๋‹ค๋ฅธ ๊ฐ์ฒด๊ฐ€ ์ด ์ƒํƒœ๋ฅผ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” Lifecycle์„ ํ™œ์šฉํ•˜์—ฌ ์ˆ˜๋ช… ์ฃผ๊ธฐ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. Android ํ”„๋ ˆ์ž„์›Œํฌ์— ์ •์˜๋œ ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ ๊ตฌ์„ฑ์š”์†Œ์—๋Š” ์ˆ˜๋ช… ์ฃผ๊ธฐ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋˜๋Š” ๋น„์ •์ƒ ์ข…๋ฃŒ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

withmeal system flow

withmeal opensource library

์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

โœ”๏ธNaver Map API : ์œ„๋“œ๋ฐ€ ์ง€๋„๋งต์—์„œ ํ™œ์šฉ
โœ”๏ธNaver Clova Summary API : ์žฅ์†Œ ์ •๋ณด์— ๋Œ€ํ•œ ์š”์•ฝ ์ •๋ณด ์ถ”์ถœ
โœ”๏ธNaver Search API : ํ‚ค์›Œ๋“œ(์‹๋‹น๋ช…) ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ํ™œ์šฉ
โœ”๏ธGoogle Firebase : ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆผ์„ ์ฃผ๋Š” FCM Cloud Messaging ์„œ๋น„์Šค

withmeal preview

๐ŸŽฅ withmeal

preview link

contributor


๋ฐ•์ฃผ์˜ˆ


backend repository

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป Server