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

๐Ÿค2024 ์•ˆ๋“œ๋กœ์ด๋“œ/๊ธฐ์ˆ™์‚ฌ ํ”„๋กœ์ ํŠธ ๊ธฐ๋ก7

๐ŸŒžandroid compose์—์„œ ๋‚ ์”จ api๋ฅผ ์—ฐ๋™ํ•ด๋ณด์ž! android compose์—์„œ ๋‚ ์”จ api๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๊ณผ์ •์„ ๊ธฐ๋กํ•ด๋ณด์•˜๋‹ค. 1.JSON response์˜ Data Class๋ฅผ ์ •์˜ํ•ด์ค€๋‹ค. 0 NORMAL_SERVICE XML 20210628 0500 TMP 20210628 0600 21 55 127 10 1 742 ๋‚ ์”จ ๋ฐ์ดํ„ฐ์˜ response๋Š” ์œ„์™€ ๊ฐ™์•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด dataClass๋ฅผ ์ •์˜ํ•ด์ฃผ์—ˆ๋‹ค. ๋จผ์ € ํฐ ํ‹€์˜ data class๋ฅผ ์ •์˜ํ•ด์ฃผ๊ณ  ๋‚ด๋ถ€์˜ ์ž‘์€ data class๋ฅผ ์ •์˜ํ•ด์ฃผ๋ฉด ๋œ๋‹ค! ๊ถ๊ธˆํ•œ ์  : ์ด ๋•Œ numOfRows์™€ pageNo์™€ totalCount์— ๋Œ€ํ•ด์„œ๋Š” ๋”ฐ๋กœ ์ •์˜ํ•ด์ฃผ์ง€ ์•Š์•„๋„ ์ž˜ ๋™์ž‘ํ•˜๋Š” ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค. package com.example.sejong2washertimer.data data cla.. 2024. 2. 1.
Compose์—์„œ ๊ตฌ์„ฑ๋ณ€๊ฒฝ ์‹œ ์ €์žฅ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ ๋ฌธ์ œ ์•Œ์•„๋ณด๊ธฐ๋ฌธ์ œ์ง€๋‚œ ๋ฒˆ์— ๋‚จ์€ ๊ธˆ์•ก์ด ์ €์žฅ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.์›์ธvar chargedMoney by mutableIntStateOf(0) private set  mutableStateOf๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ์‹์ด์ง€๋งŒ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ์‹œ์—๋Š” ์ดˆ๊ธฐํ™”๊ฐ€ ๋œ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.๋”ฐ๋ผ์„œ ์ด์ „์— ์ €์žฅํ•œ ๋‚จ์€ ๊ฐ’์ด ์†์‹ค๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์ด์—ˆ๋‹ค. ํ•ด๊ฒฐํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” mutableStateOf ๋Œ€์‹  DataStore ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฝ๊ณ  ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ์‹œ์—๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์กด๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฒฐ๊ณผ  ์ฝ”๋“œ๋กœ ์•Œ์•„๋ณด๊ธฐ์ด์ „์ฝ”๋“œ private suspend fun saveChargedMoney(value:Int) { dataStore.edit { preferences -> .. 2024. 1. 21.
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.
728x90