๊ฐœ๋ฐœ ์ผ์ง€ ๐Ÿ’ป/Nutri Capture

Nutri Capture ํ”„๋ก ํŠธ์—”๋“œ - 'ํ”ผ์ž' ์•„์ด์ฝ˜ ์ž„์‹œ ์ ์šฉ

interfacer_han 2025. 3. 25. 18:59

#1 ์ปค์Šคํ…€ ์•„์ด์ฝ˜ ์ž„์‹œ ์ ์šฉ

#1-1 ์ปค์Šคํ…€ ์•„์ด์ฝ˜

 

Nutri Capture ํ”„๋ก ํŠธ์—”๋“œ - 'ํ”ผ์ž' ์•„์ด์ฝ˜ ๊ตฌํ˜„

#1 ๊ฐœ์š”#1-1 ์ง€๊ธˆ๊นŒ์ง€์˜ ์—ฌ์ • Nutri Capture ํ”„๋ก ํŠธ์—”๋“œ - ์ปค์Šคํ…€ BottomSheetScaffold ๊ฐœ๋ฐœ ์œ ์˜ˆ#1 ๊ฐœ์š”#1-1 ๊ฐœ๋ฐœ ์ด์œ ๋ง๋กœ ์„ค๋ช…ํ•˜๊ธฐ ํž˜๋“ค์ง€๋งŒ, BottomSheetScaffold์˜ ๋‚ด๋ถ€ ์ฝ”๋“œ๋ฅผ ์‚ด์ง๋งŒ ๋ฐ”๊พธ๋ฉด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋™

kenel.tistory.com

์ด์ „์— ๋งŒ๋“  ์•„์ด์ฝ˜์ด๋‹ค. ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ, ์šฐ์„  ๋ณธ ํ”„๋กœ์ ํŠธ์— ์ ์šฉ๋ถ€ํ„ฐ ํ•ด๋ดค๋‹ค.

 

#1-2 ์ž„์‹œ ์ ์šฉ ์ฝ”๋“œ

...

@Composable
fun NutrientBottomSheet(
    viewModel: NutrientViewModel = hiltViewModel()
) {
    val inputtedDayMeal = viewModel.nutrientScreenState.collectAsState().value.inputtedDayMeal

    NutrientInputKeyboard(
        modifier = Modifier.fillMaxSize(), inputtedDayMeal = inputtedDayMeal
    )
}

@Composable
fun NutrientInputKeyboard(
    modifier: Modifier = Modifier,
    inputtedDayMeal: DayMeal,
) {
    LazyVerticalGrid(
        columns = GridCells.Adaptive(minSize = 100.dp),
        modifier = Modifier.fillMaxSize(),
        contentPadding = PaddingValues(12.dp),
        verticalArrangement = Arrangement.spacedBy(12.dp),
        horizontalArrangement = Arrangement.SpaceBetween
    ) {
        items(
            11 // TODO: inputtedDayMeal.nutritionInfo์˜ ๊ฐ ํ”„๋กœํผํ‹ฐ๋งŒํผ item ์ƒ์„ฑ
        ) {
            Box(
                modifier = Modifier
                    .fillMaxSize()
                    .border(width = 1.dp, color = Color.Black),
                contentAlignment = Alignment.Center
            ) {
                ResponsiveArcSurroundedIconButton(
                    imageVector = Icons.Sharp.Done,
                    contentDescription = "test",
                    currentLevel = 2,
                    maxLevel = 3,
                    arcColor = Color.Yellow,
                    arcWidth = 15
                ) {
                    // TODO: inputtedDayMeal์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” event
                }
            }
        }
    }
}

์—ฌ๊ธฐ๊นŒ์ง€ ํ•˜๊ณ  Commitํ•˜๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ๋ฐฑ์—”๋“œ์ ์œผ๋กœ ๋ฆฌํŒฉํ† ๋งํ•  ๋ถ€๋ถ„์ด ์ƒ๋‹นํ•˜๋‹ค๋Š” ๊ฑธ ์•Œ์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฉˆ์ถ”์ง€ ์•Š์œผ๋ฉด ์ŠคํŒŒ๊ฒŒํ‹ฐ ์ฝ”๋“œ๊ฐ€ ๋˜๋ฒ„๋ฆด ๊ฑฐ๋ผ๋Š” ์ง๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 

#1-3 ์Šคํฌ๋ฆฐ์ƒท

์ž„์‹œ ์ฝ”๋“œ์ง€๋งŒ ๊ทธ๋Ÿญ์ €๋Ÿญ ์ž˜ ํ‘œ์‹œ๋œ๋‹ค. ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง ํ›„์— ๋” ๋‹ค๋“ฌ์–ด๋ณด๊ฒ ๋‹ค.

 

#2 ์™„์„ฑ๋œ ์•ฑ

#2-1 ์ด ๊ฒŒ์‹œ๊ธ€ ์‹œ์ ์˜ Commit

 

GitHub - Kanmanemone/nutri-capture-new

Contribute to Kanmanemone/nutri-capture-new development by creating an account on GitHub.

github.com

 

#2-2 ๋ณธ ํ”„๋กœ์ ํŠธ์˜ ๊ฐ€์žฅ ์ตœ์‹  Commit

 

GitHub - Kanmanemone/nutri-capture-new

Contribute to Kanmanemone/nutri-capture-new development by creating an account on GitHub.

github.com