๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

์ „์ฒด ๊ธ€140

android Flow ์•Œ์•„๋ณด๊ธฐ Flow ์ดํ•ดํ•˜๊ธฐ ์ŠคํŠธ๋ฆผ์€ ์ž…๋ ฅ์žฅ์น˜๋‚˜ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜ค๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ฝ์–ด๋“ค์ด๋ฉด์„œ ์ถœ๋ ฅ ์žฅ์น˜๋‚˜ ๋™์˜์ƒ ํ”Œ๋ ˆ์ด์–ด๋กœ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๋‚ด๋ณด๋‚ด๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค. ์ฝ”ํ‹€๋ฆฐ์˜ ํ”Œ๋กœ์šฐ๋Š” ๋‹จ์ผ ๊ฐ’๋งŒ ๋ฐ˜ํ™˜ํ•˜๋Š” suspend ํ•จ์ˆ˜์™€ ๋‹ฌ๋ฆฌ ์—ฌ๋Ÿฌ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์œ ํ˜•์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Flow๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์—์„œ ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. Flow๋Š” ์ฝ”๋ฃจํ‹ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋นŒ๋“œ๋˜์–ด ๋น„๋™๊ธฐ์ ์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์˜ ๊ฐœ๋…์ด๋‹ค. ์ด ๋•Œ ๋‚ด๋ณด๋‚ด๋Š” ๊ฐ’์„ ๋™์ผํ•œ ์œ ํ˜•์ด์–ด์•ผํ•œ๋‹ค. Flow ์˜ ๊ฒฝ์šฐ ์ •์ˆ˜ ๊ฐ’์„ ๋‚ด๋ณด๋‚ด๋Š” ํ๋ฆ„์„ ๋งํ•œ๋‹ค. [kotlin flows in practice ๋‚ด์šฉ ์ •๋ฆฌ] ์ด ๋•Œ์—๋Š” ๊ทธ๋ž˜์„œ ํ˜ธ์ˆ˜๊นŒ์ง€ ๊ฐ€๋Š” ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋ฌผ์„ ์ฐพ์•„์•ผํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์‹คํŒจ๋ฅผ ์—ฌ๋Ÿฌ .. 2024. 1. 21.
compose์™€ preferences datastore ์ด์šฉํ•˜๊ธฐ ๋„์ž… ๋ฐฐ๊ฒฝ ํ”„๋กœ์ ํŠธ์—์„œ ์„ธํƒ์นด๋“œ์— ์ถฉ์ „ํ•œ ๊ธˆ์•ก์„ ์ž…๋ ฅํ•˜๋ฉด ์•ž์œผ๋กœ ๋‚จ์€ ์„ธํƒ ํšŸ์ˆ˜์™€ ๋‚จ์€ ์ž”์•ก์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋‹ค. ์ด ๋•Œ ๊ฐ ์‚ฌ์šฉ์ž์˜ ์ž”์•ก์„ ๋กœ์ปฌ db์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์›๋ž˜ ๋กœ์ปฌ db๋กœ์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋˜ shared prefereces๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž๋ฃŒ๋ฅผ ์ฐพ์•„๋ณด๋˜ ์ค‘! preferences datastore์™€ proto datastore์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋Š” ๊ฒƒ๊ณผ ์ด ๋ฐฉ๋ฒ•์ด shared preferences์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์™”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ shared preferences๋ฅผ ๋ณด์™„ํ•œ preferences datastore์„ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ datastore์€ ๊ฐœ์„ ๋œ ์‹ ๊ทœ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์†”๋ฃจ์…˜์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  .. 2024. 1. 18.
kotlin coroutines basic ๊ณต์‹๋ฌธ์„œ ์ฝ์–ด๋ณด๊ธฐ ์ฝ”ํˆฌํ‹ด์€ ์ผ์‹œ์ ์œผ๋กœ ์‹คํ–‰์„ ์ค‘๋‹จํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ„์‚ฐ์˜ ์ธ์Šคํ„ด์Šค์ด๋‹ค. ๊ฐœ๋…์ ์œผ๋กœ๋Š” ์Šค๋ ˆ๋“œ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ํŠน์ • ์Šค๋ ˆ๋“œ์— ๊ฒฐํ•ฉ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. ๋‹ค์‹œ๋งํ•ด, ์ฝ”๋ฃจํ‹ด์€ ํ•œ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰์„ ์ผ์‹œ ์ค‘๋‹จํ•˜๊ณ , ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ธฐ๋‹ค๋ฆด ๋•Œ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์Šค๋ ˆ๋“œ๋Š” ๋น„์šฉ์ด ํฐ ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์Šค๋ ˆ๋“œ ์‚ฌ์šฉ ์‹œ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ! ์ฝ”๋ฃจ์นœ์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ. ์ฝ”๋ฃจํ‹ด์€ ๋ธ”๋ก๋ผ๋Š” ์ฝ”๋“œ ์กฐ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์ด ๋ธ”๋ก์€ ์‹คํ–‰ ์ค‘์— ์ผ์‹œ ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ๊ณ , ์ดํ›„ ๋‹ค์‹œ ์‹œ์ž‘๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฝ”๋ฃจํ‹ด์€ ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๋ฉด์„œ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค๋ฅธ ์ž‘์—…์œผ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. fun .. 2024. 1. 17.
๐Ÿ”” Android FCM ์ ์šฉ๊ธฐ 2ํƒ„ : FCM + Retrofit ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ์•ˆ๋…•ํ•˜์„ธ์š”! 1ํƒ„์— ์ด์–ด ๋ณธ๊ฒฉ์ ์ธ FCM๊ณผ Retrofit ๊ณผ ํ•จ๊ป˜ ๋Œ์•„์˜จ Mandy์ž…๋‹ˆ๋‹ค ๐Ÿ˜€ ์ง€๋‚œ 1ํƒ„์—์„œ๋Š” Android์˜ Notification์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š”! ์˜ค๋Š˜์€ ๋” ๋‚˜์•„๊ฐ€ FCM๊ณผ Retrofit์„ ์ด์šฉํ•˜์—ฌ ์„ธํƒ ์™„๋ฃŒ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ๋งˆ๋ฌด๋ฆฌ ํ•ด๋ณด๋ ค๊ณ  ํ•ด์š”. ์ง€๋‚œ 1ํƒ„๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋งŽ์€ ๋‚ด์šฉ์„ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋ผ์„œ ์ฐจ๊ทผ์ฐจ๊ทผ ๋”ฐ๋ผ์™€์ฃผ์„ธ์š” ใ…Žใ…Ž ๊ฒฐ๊ณผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ณธ๊ฒฉ์ ์ธ ๊ฐœ๋ฐœ์— ์•ž์„œ์„œ ๊ตฌํ˜„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋จผ์ € ๋ณด๋„๋ก ํ• ๊ฒŒ์š”! [ ์˜์ƒ ์ฒจ๋ถ€ํ•˜๊ธฐ] ์ด์ œ ์‹œ์ž‘ํ•ด๋ด…์‹œ๋‹ค !! FCM ์ดํ•ดํ•˜๊ธฐ FCM์€ ๋ชจ๋ฐ”์ผ ์•ฑ ๋ฐ ์›น ์•ฑ์—์„œ ์‹ค์‹œ๊ฐ„ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด์—์š”. ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ ๋””๋ฐ”์ด์Šค๋กœ ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค์–‘ํ•œ ์•Œ๋ฆผ ์œ ํ˜•์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์š”! FCM ํ๋ฆ„ ์ •๋ฆฌ 1๏ธโƒฃ FCM์—์„œ.. 2024. 1. 7.
728x90