๊ฐœ๋ฐœ ์ผ์ง€ ๐Ÿ’ป/๊ธฐํƒ€ 5

[Android] Modifier.imePadding() ๊น”๋”ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ

#1 ๊ฐœ์š”Modifier.imePadding()์„ ํ†ตํ•ด์„œ, BottomBar๊ฐ€ ๊น”๋”ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ธฐ๋กํ–ˆ๋‹ค. #2 ์‹œํ–‰์ฐฉ์˜ค 1#2-1 ์ฝ”๋“œScaffold( modifier = Modifier.fillMaxSize(), topBar = { MainTopBar() }) { innerPadding -> Column( modifier = Modifier .fillMaxSize() .padding(innerPadding) ) { MainContent( modifier = Modifier .fillMaxWidth() .wei..

[Android] BottomSheetScaffold์˜ BottomSheet๊ฐ€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์œผ๋กœ๋Š” ์ˆจ๊ฒจ์ง€์ง€ ์•Š์ง€๋งŒ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ๋Š” ์ˆจ๊ฒจ์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค๊ธฐ

#1 ๋ฌธ์ œ ์ƒํ™ฉ#1-1 ์‚ฌ์šฉ์ž ์ž…๋ ฅ์œผ๋กœ ์ˆจ๊ฒจ์ง€์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค๊ธฐval scaffoldState = rememberBottomSheetScaffoldState( bottomSheetState = rememberStandardBottomSheetState( skipHiddenState = true ))์ด๋Ÿฌ๋ฉด ๋œ๋‹ค. ์‚ฌ์‹ค skipHiddenState๋Š” ๊ธฐ๋ณธ๊ฐ’์ด true๊ธฐ์— ๊ทธ๋ƒฅ val scaffoldState = rememberBottomSheetScaffoldState()๋งŒ ์จ๋„ ๋˜๊ธด ํ•œ๋‹ค. ๋ณธ ๊ฒŒ์‹œ๊ธ€์˜ ์ฝ”๋“œ๋Š” ๊ธฐ๋ก์˜ ์˜๋ฏธ๊ฐ€ ๊ฐ•ํ•˜๋ฏ€๋กœ, ๊ทธ๋ƒฅ ๋ช…์‹œ์ ์œผ๋กœ ๋ฐํ˜€ ์ผ๋‹ค. #1-2 ๋ฌธ์ œ์ FilledTonalButton( onClick = { scope.launch { ..

Pagination ์ธํ„ฐํŽ˜์ด์Šคใ†๊ตฌํ˜„ใ†๊ฒ€์ฆ์šฉ ์•ฑ

#1 Pagination ํด๋ž˜์ŠคPagination ํด๋ž˜์Šค๋Š” ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ๊ฐฏ์ˆ˜, ํ•œ ํŽ˜์ด์ง€์— ํ‘œ์‹œํ•  ๊ฒŒ์‹œ๊ธ€ ๊ฐฏ์ˆ˜, ํ•œ ํŽ˜์ด์ง€ ๋ธ”๋Ÿญ์— ํ‘œ์‹œํ•  ํŽ˜์ด์ง€๋“ค์˜ ๊ฐฏ์ˆ˜์— ๊ธฐ๋ฐ˜ํ•ด ๊ฒŒ์‹œํŒ์˜ ๋„ค๋น„๊ฒŒ์ด์…˜ ์—ญํ• ์„ ํ•˜๋Š” ํด๋ž˜์Šค๋‹ค. ์˜ˆ์ „์— ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฒŒ์‹œํŒ์„ ๋งŒ๋“ค ๋•Œ ์ฒ˜์Œ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ทธ ์ดํ›„๋กœ๋„ 2 ~ 3๋ฒˆ ์ •๋„ ๋‹ค์‹œ Pagination ํด๋ž˜์Šค๋ฅผ ์žฌ์ž‘์„ฑํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋น„ํšจ์œจ์ ์ธ๊ฐ€! ๊ทธ๋ž˜์„œ ์ด์ฐธ์— ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ๊ธฐ๋กํ•ด๋‘๋ ค ํ•œ๋‹ค. ์•ž์œผ๋กœ Pagination ํด๋ž˜์Šค๋Š” ๋ณธ ๊ฒŒ์‹œ๊ธ€์˜ ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. #2 ๊ธฐ๋ณธ ์ฝ”๋“œ#2-1 ์ธํ„ฐํŽ˜์ด์Šค// by interfacer_han (https://kenel.tistory.com/327)/*(example) goToFirstPageBlockButton: (example) g..

[Android] Hilt - java.lang.RuntimeException: Unable to instantiate application

#1 ๋ฌธ์ œ ์ƒํ™ฉ#1-1 Hilt ๋„์ž… [Android] Dagger2 - Hilt๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜#1 Hilt ๊ฐœ์š” Hilt๋ฅผ ์‚ฌ์šฉํ•œ ์ข…์† ํ•ญ๋ชฉ ์‚ฝ์ž…  |  Android Developers์ด ํŽ˜์ด์ง€๋Š” Cloud Translation API๋ฅผ ํ†ตํ•ด ๋ฒˆ์—ญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Hilt๋ฅผ ์‚ฌ์šฉํ•œ ์ข…์† ํ•ญ๋ชฉ ์‚ฝ์ž… ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผkenel.tistory.com์œ„ ๊ฒŒ์‹œ๊ธ€์— ๊ธฐ๋ฐ˜ํ•ด, ๊ฐœ๋ฐœ ์ค‘์ธ ์•ฑ์— Hilt๋ฅผ ๋„์ž…ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. #1-2 Application ํด๋ž˜์Šคpackage com.example.nutri_capture_new.diimport android.app.Applicationimport dagger.hilt.android.HiltAndroidApp@HiltAndroidAppclass H..

์•ž์œผ๋กœ์˜ App ๊ฐœ๋ฐœ ์ผ์ง€ ์ž‘์„ฑ

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