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

Android11

๐Ÿฃ๋ฉ”์ธ ํ™”๋ฉด API ์—ฐ๋™ ์ขŒ์ถฉ์šฐ๋Œ๊ธฐ ๊ธฐ๋ก ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—์˜ค๋Š˜์€ ๋ฉ”์ธ ํ™”๋ฉด์—์„œ ์“ฐ์ด๋Š” api์™€ ์—ฐ๋™ํ•˜๋Š” ๊ณผ์ •์„ ๊ธฐ๋กํ•˜์˜€๋‹ค. 1๏ธโƒฃ๋ฉ”์ธ ํ™”๋ฉด : ๊ฐ์ƒ๋ฌธ ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„๋ฉ”์ธ ํ™”๋ฉด์—์„œ๋Š” ์ „์ฒด ๊ฐ์ƒ๋ฌธ์„ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ํ˜„์žฌ๋Š” ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ์ƒ๋ฌธ์„ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ, ์ด์ œ API์™€ ์—ฐ๋™ํ•˜์—ฌ ์‹ค์ œ ๊ฐ์ƒ๋ฌธ ๋‚ด์šฉ๊ณผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์ž‘์—…์„ ํ•˜๋ ค ํ•œ๋‹ค. ๋จผ์ € API์™€ ์—ฐ๋™๋ถ€ํ„ฐ ํ•ด์ฃผ์—ˆ๋‹ค. ๐Ÿค๋ฐฐ์šด ์ 1๏ธโƒฃRepository๋„ interface๋กœ ์ •์˜ ํ›„ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.2๏ธโƒฃ์ธํ„ฐํŽ˜์ด์Šค์™€ hilt ์‚ฌ์šฉ๋ฒ•  ์ด๋ ‡๊ฒŒ Repository๋ฅผ interface๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.interface ReportRepository { suspend fun searchReport(): Result} ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด searchReport.. 2024. 4. 8.
๐Ÿ›๏ธ[Android ์•ฑ ์•„ํ‚คํ…์ณ] : UI layer , Domain layer, Data layer ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๊ฐ€ MVVM์œผ๋กœ ์žกํ˜€์žˆ์—ˆ๊ณ  ์ด์— ๋งž์ถ”์–ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋”๋”์šฑ MVVM์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋†’์—ฌ์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ์„  ๊ฐ layer๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๊ณ  ์–ด๋–ค ๋กœ์ง์„ ํฌํ•จํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋ถ€ํ„ฐ ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด์ž! ๊ฐ ๋ ˆ์ด์–ด์˜ ์—ญํ•  1๏ธโƒฃUI ๋ ˆ์ด์–ด๋Š” ํ™”๋ฉด์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•ด์ค€๋‹ค. 2๏ธโƒฃ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด๋Š” ์•ฑ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํฌํ•จํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ์ถœํ•ด์ค€๋‹ค. 3๏ธโƒฃ๋„๋ฉ”์ธ ๋ ˆ์ด์–ด๋Š” UI์™€ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ์•„ํ‚คํ…์ณ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋‹ค. ํ™”์‚ดํ‘œ๋Š” ํด๋ž˜์Šค ๊ฐ„์˜ ์ข…์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ๋„๋ฉ”์ธ ๋ ˆ์ด์–ด๋Š” ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด ํด๋ž˜์Šค์— ์ข…์†๋œ๋‹ค. di๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด ํด๋ž˜์Šค์— ๋„๋ฉ”์ธ ๋ ˆ์ด.. 2024. 3. 15.
Android ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๊ฐœ๋… ์ตํžˆ๊ธฐ [REST,URL, URI, Retrofit] ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋กœ์ง์€ ํ•„์ˆ˜์ ์ด๋‹ค! ์ด ๋•Œ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜์—ฌ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด์™€ ๊ด€๋ จ๋œ ๊ฐœ๋…์„ ์•Œ์•„๋ณด์ž REST api๋ž€ ? REpresentational StateTransfer : REST๋ผ๋Š” ์›น ์•„ํ‚คํ…์ณ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์›น ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. REST api๋Š” REST ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ์˜ ๋””์ž์ธ ์›์น™์„ ์ค€์ˆ˜ํ•˜๋Š” API๋ฅผ ๋งํ•œ๋‹ค. API๋ž€ ? ์—ฌ๊ธฐ์„œ api๋ž€ application programming interface๋ฅผ ๋งํ•œ๋‹ค. api๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ž์™€ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ž ์‚ฌ์ด์˜ ๊ณ„์•ฝ์„ ๋งํ•œ๋‹ค. ์ •๋ณด๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ์ž (์†Œ๋น„์ž)์™€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ƒ์‚ฐ์ž๋Š” ๊ฐ๊ฐ content๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ด๋ฅผ ๊ฐ๊ฐ call๊ณผ response๋ผ๊ณ  ํ•œ๋‹ค. ๋งŒ์•ฝ ์ปดํ“จํ„ฐ์™€.. 2024. 3. 5.
android์—์„œ ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ์—ฐ๋™ํ•˜๊ธฐ ๐Ÿ˜Š ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์— ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ๊ณต์‹๋ฌธ์„œ๋ถ€ํ„ฐ ๋งŽ์ด ๋ฌธ์„œ๋ฅผ ์ฐพ์•„๋ณด์•˜์ง€๋งŒ ๋”์ด์ƒ ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์ธ ์›ํƒญ์— ๋Œ€ํ•œ ๊ธ€์ด ๋Œ€๋ถ€๋ถ„์ด์—ˆ๋‹ค. ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ง์„ ๋ณด๊ณ  ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ณ , ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผํ• ์ง€ ๋ง‰๋ง‰ํ•˜๋˜ ์ฐธ์— ๊ธฐ๋Šฅ์ด ์ž˜ ์ž‘๋™๋˜์–ด์„œ ์šฐ์„  ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๊ตฌํ˜„์„ ์œ„ํ•œ ์ˆœ์„œ๋ฅผ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค! ์ดํ›„ ์ธ์ฆ ๊ด€๋ฆฌ์ž๋กœ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊พธ๋ฉฐ ๋ฆฌํŽ™ํ† ๋ง์„ ํ•  ์˜ˆ์ •์ด๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ ์›ํƒญ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•ด๋ณด์ž~~ 1๏ธโƒฃ ์›ํƒญ ๋กœ๊ทธ์ธ ํด๋ผ์ด์–ธํŠธ ๊ตฌ์„ฑํ•˜๊ธฐ ์šฐ๋ฆฌ ์•ฑ์—์„œ๋Š” Google ๋กœ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ setGoogleIdTokenRequestOptions ( )์„ ์‚ฌ์šฉํ•˜์—ฌ Google ID ํ† ํฐ ์š”์ฒญ์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ณ  ๊ตฌ์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค. //์›ํƒญ ๋กœ๊ทธ์ธ ํด๋ผ์ด์–ธํŠธ ๊ตฌ์„ฑ oneTapClient =.. 2024. 2. 3.
728x90