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

Nutri Capture - ๋ฒ„์ „ ์นดํƒˆ๋กœ๊ทธ ์† ํ”„๋กœํผํ‹ฐ๋ช…์„ Now in Android ์Šคํƒ€์ผ๋กœ ํ†ต์ผ

interfacer_han 2025. 10. 31. 15:04

#1 ๊ฐœ์š”

๋ฒ„์ „ ์นดํƒˆ๋กœ๊ทธ(libs.versions.toml) ์† ํ”„๋กœํผํ‹ฐ๋ช…์„ ์ˆ˜์ •ํ–ˆ๋‹ค.

 

#2 ๊ฐœ์„ ํ•œ ํฌ์ธํŠธ

#2-1 Whatใ†Why

 

Now in Android  |  Android Developers

์ด ํŽ˜์ด์ง€๋Š” Cloud Translation API๋ฅผ ํ†ตํ•ด ๋ฒˆ์—ญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”. Now in Android ์•ฑ, Play ์Šคํ† ์–ด์— ์ถœ์‹œ Now in Android๋Š” ์™„์ „ํ•œ

developer.android.com

Now in Android๋Š” Android ์„ค๊ณ„ ๋ฐ ๊ฐœ๋ฐœ ๊ถŒ์žฅ ์‚ฌํ•ญ๋Œ€๋กœ ๋งŒ๋“  '๊ณต์‹์ ์ธ ์ƒ˜ํ”Œ' ์•ฑ์ด๋‹ค (์†Œ์Šค ์ฝ”๋“œ). ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ๋ฒ„์ „ ์นดํƒˆ๋กœ๊ทธ ์† ํ”„๋กœํผํ‹ฐ๋ช…๊ณผ Now in Android์˜ ๋ฒ„์ „ ์นดํƒˆ๋กœ๊ทธ ์† ํ”„๋กœํผํ‹ฐ๋ช…์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋ฅผ ํ™•์ธํ–ˆ๋‹ค. ๋‚˜๋Š” Now in Android์˜ ์Šคํƒ€์ผ์„ ๋”ฐ๋ผ๊ฐˆ ๊ฒƒ์ด๋ฏ€๋กœ, ํ”„๋กœํผํ‹ฐ๋ช…๊นŒ์ง€ ๋˜‘๊ฐ™์ด ๋งž์ถ”๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 

#2-2 How

 

๋‚ด ํ”„๋กœ์ ํŠธ์™€ Now in Android์˜ ๋ฒ„์ „ ์นดํƒˆ๋กœ๊ทธ ์† ํ”„๋กœํผํ‹ฐ๋ช… ๋งž์ถ”๊ธฐ

#1 ๊ฐœ์š”#1-1 Why Now in Android | Android Developers์ด ํŽ˜์ด์ง€๋Š” Cloud Translation API๋ฅผ ํ†ตํ•ด ๋ฒˆ์—ญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”. Now in Android ์•ฑ,

kenel.tistory.com

์ด๋ฅผ ์œ„ํ•ด ๋งŒ๋“  ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

#3 ์ฝ”๋“œ ์Šค๋‹ˆํŽซ

 [My] androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
[Nia] androidx-compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4" }

 [My] androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
[Nia] androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidxEspresso" }

 [My] hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hiltVersion" }
[Nia] hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }

 [My] androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
[Nia] androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }

 [My] androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended", version.ref = "materialIconsExtended" }
[Nia] androidx-compose-material-iconsExtended = { group = "androidx.compose.material", name = "material-icons-extended" }

 [My] androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycleRuntimeKtx" }
[Nia] androidx-lifecycle-viewModelCompose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" }

 [My] androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
[Nia] androidx-compose-ui-testManifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }

 [My] androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
[Nia] androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }

 [My] androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "roomRuntime" }
[Nia] room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }

 [My] truth = { module = "com.google.truth:truth", version.ref = "truthVersion" }
[Nia] truth = { group = "com.google.truth", name = "truth", version.ref = "truth" }

 [My] androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
[Nia] androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidxActivity" }

 [My] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
[Nia] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidxCore" }

 [My] androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "roomRuntime" }
[Nia] room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" }

 [My] androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
[Nia] androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidxAppCompat" }

 [My] androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigationRuntimeKtx" }
[Nia] androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "androidxNavigation" }

 [My] androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "roomRuntime" }
[Nia] room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }

 [My] androidx-ui-util = { group = "androidx.compose.ui", name = "ui-util" }
[Nia] androidx-compose-ui-util = { group = "androidx.compose.ui", name = "ui-util" }

 [My] androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
[Nia] androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }

 [My] androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hiltNavigationCompose" }
[Nia] androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" }

 [My] android-library = { id = "com.android.library", version.ref = "agp" }
[Nia] android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }

 [My] kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
[Nia] compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }

 [My] android-application = { id = "com.android.application", version.ref = "agp" }
[Nia] android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }

 [My] hilt = { id = "com.google.dagger.hilt.android", version.ref = "hiltVersion" }
[Nia] hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }

์œ„๋Š” #2-2์˜ ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋‹ค. ์ถœ๋ ฅ๋œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœํผํ‹ฐ๋ช…๋“ค์„ ์ˆ˜์ •ํ–ˆ๋‹ค. ์ˆ˜์ • ํ›„ ๋‹ค์‹œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰์‹œ์ผœ ๋ดค๋Š”๋ฐ, ๋‹น์—ฐํ•˜๊ฒ ์ง€๋งŒ (๋‹ค๋ฅธ ์ ์ด ์—†์„ ํ…Œ๋‹ˆ) ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅ๋˜์ง€ ์•Š์•˜๋‹ค.

 

#4 ์†Œ์Šค ์ฝ”๋“œ

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

 

GitHub - Kanmanemone/nutri-capture-new

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

github.com

 

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

 

GitHub - Kanmanemone/nutri-capture-new

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

github.com