Android
12
[Android] ์ด๋ฏธ์ง ํ์ผ(binary string) ๋ฐ์์ Compose๋ก ๋์ฐ๊ธฐ
API ๋ฌธ์์์ Response๊ฐ์ด string..Media type์ด image/png ์ผ ๋..์ด๋ป๊ฒ ํ์๋์..? ๋๋ถ๊ณ ๋ฐฑํ์๋ฉด,, ๊ทธ๋์ json ์๋ต๊ฐ๋ง ์ฒ๋ฆฌํ์ด์ string๋ง? ๋ ์ฉ? ๐ฎ์ด์ง ๊ฐ์ด ์์์ postman๊น์ง ๋๋ ค๋ดค๋๋ฐ ๋ฆฌ์ผ๋ฃจ ์ด๋ฏธ์ง ํ์ผ์ด ์จ๊ฑฐ ๋ณด๊ณ ๋๋ฌผ์ ์ฝ์ง์ ํ์ต๋๋ค.. ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.Retrofit2 2.9.0okhttp3 4.11.0์๋ (json ์๋ต๊ฐ)๋ผ๋ฉด,@POST("transform") suspend fun request( @Part("type") type: RequestBody, @Part img: MultipartBody.Part, ): Response Response ๊ฐ์ผ๋ก ๋ฐ์์ → apicall ๋ฐ๋ ..
2024.04.15
Android
[Android] Retrofit MultipartBody๋ก POST๋ณด๋ด๊ธฐ
API ๋ฌธ์๋ฅผ ๋ฐ์๋๋ฐ Request๊ฐ ์ด๋ ๊ฒ ๋์ด์๋ค๋ฉด, ์ฐ๋ฆฌ๋ Multipart ๋ฐ์ดํฐ๋ก ๋ณด๋ด์ค์ผ ํฉ๋๋ค.๊ทธ๋ฅ @Body ์๋? ํ์์ฒ๋ผ Json์ผ๋ก ๋ณด๋ด์ผ์ง~ ํ๋ค๊ฐ๋422 Unprocessable Entity ์๋ฌ๋ง ๋ฐ์ ์ ์์ต๋๋ค..์ด๋ป๊ฒ ์์๋๊ตฌ์? ์ ๋ ์๊ณ ์ถ์ง ์์์ด์… ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.Retrofit2 2.9.0okhttp3 4.11.0POST๋ก ํธ์ถํ๋ฉฐ,Request Body๋ type: String, img: String($binary)๊ฐ ์๊ตฌ๋๋ ์ํฉ์
๋๋ค. Api Interface ์ฝ๋๋ ์๋์ ๊ฐ์ด ์์ฑํ์์ต๋๋ค.@Multipart@POST("transform") suspend fun request( @Part("type") type: Req..
2024.04.12
Android
[Android] Room๊ณผ Retrofit์์ ์ฌ์ฉํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๊ฐ์ ๋, ๊ฐ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ์ฌ์ฉํด๋ ๋ ๊น?
AI Chat์ฑ์ ๊ตฌํํ๋ ์ค์ด์์ต๋๋ค.https://openai.com/ ์์ ์ ๊ณตํ๋ api๋ฅผ ์ฌ์ฉํ๊ตฌ์.Retrofit์ผ๋ก ํต์ ํ๊ณ , Room์ผ๋ก ๋ํ ๋ด์ญ์ ์ ์ฅํ๊ณ ์ ํ์ต๋๋ค. ํต์ ํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ฉด์,requestBody์ role๊ณผ content๋ฅผ ๋ณด๋ด๊ณ responseBody์์๋ role๊ณผ content๋ฅผ ๋ฐ์์. ์ ๊ทธ๋์ ์๊ฐํ์ฃ ..์, ํต์ ํ ๋ role๊ณผ content๋ฅผ ํ๋์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ๋ง๋ค์ด์ ์ฌ์ฉํ๋ฉด ๋๊ฒ ๊ตฌ๋. ๊ทธ๋ฆฌ๊ณ Room์ผ๋ก ๋๋ฐ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋๋{ํญ๋ชฉ์ ๊ตฌ๋ถํ id, ํญ๋ชฉ์ title,role + content์ ๋ฆฌ์คํธ}๊ฐ ์ ์ฅ๋๋ฉด ์ข๊ฒ ๋ค๊ณ ์๊ฐํ์์ต๋๋ค. ์ฌ๊ธฐ์๋ role๊ณผ content๊ฐ ํ์ํ๋ค?ํ๋์ ๋ฐ์ดํฐ ํด๋์ค๋ก ๋ง๋ค์ด์ ๊ฐ์ด ์จ๋ ๋์ง..
2023.08.16
Android
[Android] Jetpack Compose Navigation ์ ์ฉํด์ ํ๋ฉด ์ด๋ํ๊ธฐ
์๋๋ก์ด๋์ Compose๋ก ๊ตฌํํ๋ค๋ฉดํ๋ฉด ์ด๋ํ ๋๋ Compose Navigation์ ์จ์ค์ผ ํ์ง ์๊ฒ ์ต๋๊น? ์๋์ ๊ฐ์ ์ํฉ๋ค์์ ์ ์ฉํ ์ ์๋ ์์๋ฅผ ์ ์ด๋ณด๊ณ ์ ํฉ๋๋ค.1. ํ๋ฉด ์ด๋ํ๊ธฐ2. ์ธ์ ์ ๋ฌํ๊ธฐ2-1. String ํ์
์ด๋2-2. ์ปค์คํ
๋ฐ์ดํฐ ๋ชจ๋ธ (Parcelable ํ์
) ์ด๋ ์ฐ์ build.gradle(app)์ ์๋ dependency ์ถ๊ฐ๊ฐ ํ์ํฉ๋๋ค.dependencies { def nav_version = "2.6.0" implementation "androidx.navigation:navigation-compose:$nav_version"} ์ต์ ๋ฒ์ ์ ๊ณต์๋ฌธ์์์ ํ์ธํ ์ ์์ต๋๋ค.https://developer.android.com/jetpack..
2023.07.23
Android/Jetpack Compose
Build.gradle์์ ๋ฐ์ํ๋ kotlin version ์๋ฌ
๋ฐ๋จ...Jetpack Compose Navigation์ ํ๊ณ ์ถ์์ต๋๋ค.๊ทธ๋์ app๋จ build.gradle์ ์๋์ ์ฝ๋๋ฅผ ์
๋ ฅํด์ฃผ๊ณ ๋น๋ํด์ฃผ์์ต๋๋ค. implementation "androidx.navigation:navigation-compose:2.6.0" ๊ทธ๋ฌ๋๋ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค. Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.20 (org.jetbrains.kotlin:kotlin-stdlib:1.8.20) and kotlin-stdlib-jdk8-1.7.20 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20)Dupli..
2023.07.20
Android/Error
[Android] Firestore Coroutine์ผ๋ก ๋ฐ์์ค๊ธฐ
๋ค์ด๊ฐ๋ฉฐ์๋ฒ ๊ตฌ์ถ์ด ์ด๋ ค์ด ์ด์ง ํ๋ก ํธ ๊ฐ๋ฐ์๋ผ ๋๋น๊ฐ ํ์ํ๋ฉด ํญ์ Firebase๋ฅผ ์ ์ฉํด์๋๋ฐ ์ด๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋๋ฐ ๋ํญ์ด ๊ฒช์์ต๋๋ค..๐ญ๐ญ์๋ Firebase๊ฐ ๋น๋๊ธฐ๋ผ๊ณ ?๋น๋๊ธฐ๋ ํ๊ณผ ์์
์๊ฐ์ ๊ฒํฅ๊ธฐ๋ก ๋ค์๊ฒ ๋ค์ธ ๋๋ ๊ธํ๊ฒ ๊ณต๋ถ๋ฅผ ํ๊ฒ ๋์ต๋๋ค.์ด๋ก ์ ์ธ๊ฑฐ ๋ง๊ณ ๊ตฌํ์ ์ผ๋ก...์ฝ๋ฃจํด์ผ๋ก? RxJava๋ก?๋น๋๊ธฐ ์ฒ๋ฆฌํ๋ฉด ๋์ค๋๊ฒ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋๋ผ๊ตฌ์.์ฝ๋ฃจํด๊ณผ Rx.์ฑ์ฉ ์ ๋ณด๋ณด๋ฉด ๋น ์ง์ง ์๊ณ ๋ค์ด๊ฐ๋ ์ฐ๋์ฌํญ์ RxJava๊ฐ ์์ด์ RxJava๋ฅผ ๊ณต๋ถํด์ผํ๋? ๊ณ ๋ฏผํ๋ค๊ฐ๋จผ์ ์ทจ๋ฝํ ์ ๋ฐฐ์,(์ ๋ฐฐ ํ์ฌ ์ ์
๊ฐ๋ฐ์๋ค) ๋ค๋ค ์ฝ๋ฃจํด ๊ธฐ๋ณธ์ผ๋ก ํ๊ณ ํ์ฌ์์ Rx๋ฐฐ์ฐ๊ณ ์๋ค.์.... ์ฝ๋ฃจํด์ด ๊ธฐ๋ณธ์ด๊ตฌ๋....(๋จ์) ํ๊ณ ์ฝ๋ฃจํด์ ์ด์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค๐์๋๋ก์ด๋์ ์ฝ๋ฃจํดGradle ..
2023.07.17
Android
Could not identify launch activity: Default Activity not found ์๋ฌ ํด๊ฒฐ
Could not identify launch activity: Default Activity not foundError while Launching activityFailed to launch an application on all devices ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด Manifest ํ์ผ์ ํ์ธํด์ผ ํฉ๋๋ค. ์์ ๊ฐ์ด LAUNCHER๋๋ activity๊ฐ ์์ฑ๋์ด ์์ด์ผ ํ๋๋ฐ ๊ฐ ๋๋ฝ๋์๊ฑฐ๋ ๊ฐ ๋๋ฝ๋์ด ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๋ง์ฝ ์ถ๊ฐ๊ฐ ๋์ด์๋๋ฐ๋ ํด๋น ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด..File > Invalidate Caches > Invalidate and Restart ๋ก ์ฌ๋น๋ ํ๋ ๊ฒ๋ ์์ฃผ ์ข์.. ..
2023.07.07
Android/Error
@hiltandroidapp to have a value. did you forget to apply the gradle plugin ์๋ฌ ํด๊ฒฐ
์๋๋ก์ด๋ ํ๋ก์ ํธ์ Hilt๋ฅผ ์ค์ ํ ๋๋ํ๋๋ง ๋น ์ ธ๋ ๋น๋๊ฐ ์๋๋ ์๋ฌ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋น ์ง ๊ฒ ์๋ ์ง ์ฃผ์ํด์ผ ํฉ๋๋ค. ์ ๋ชฉ๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ์ ๋๋ gradle์ ๋น ๋จ๋ฆฐ ๊ฒ ์๋์ง ํ์ธํด์ผ ํ๋๋ฐ ์ฐ์ app ์์ค์ build.gradle ์๋ ์๋์ ๊ฐ์ ๋ด์ฉ๋ค์ด ๋ค์ด๊ฐ ์์ด์ผ ํฉ๋๋ค.plugins { id 'kotlin-kapt' id 'dagger.hilt.android.plugin'}dependencies { implementation "com.google.dagger:hilt-android:2.44" kapt "com.google.dagger:hilt-android-compiler:2.44"} ๊ทธ๋ฆฌ๊ณ project ์์ค์ build.gradle ์..
2023.07.04
Android/Error
[Android] Waiting for target device to come online ์ค๋ฅ๋ ๋
๋ค์ด๊ฐ๊ธฐ์๋๋ก์ด๋ ์คํ๋์ค์์ Run์ ์คํํ ๋,Waiting for target device to come online .. ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋จ๋ฉด์ ๋ฌดํ ๋ก๋ฉ์ ๋น ์ ธ๋ฒ๋ฆฐ ์ ์ด ์์ต๋๋ค ๐ข๊ทธ๋ด ๋ ํด๊ฒฐํ ์ ์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ๋ค์ ์ ์ด๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐฉ๋ฒ(1) AVD Manager -> Wipe Data์ด ์์
์ ํด๋น ๊ฐ์ ๋๋ฐ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ์ํต๋๋ค.๋๋ถ๋ถ ์ด ์์
์ผ๋ก ๋ง์ด ํด๊ฒฐ๋๋ค๊ณ ํด์. (2) AVD Manager -> Cold Boot Now์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ฌ๋ถํ
์์ผ์ฃผ๋ ๋ฐฉ๋ฒ์
๋๋ค.ํธ๋ํฐ์ด ๋จนํต์ผ ๋ ๊ป๋ค๊ฐ ํค๋ ๋ฐฉ๋ฒ๊ณผ ๋น์ทํ ๋ฐฉ๋ฒ์
๋๋ค. (3) Invalidate Caches / Restart์บ์๋ฅผ ๋ฌดํจํํ๋ค. ์ฆ, ์บ์ ๋น์ฐ๋ ๋ฐฉ๋ฒ์
๋๋ค.์ด ์ค๋ฅ์ํฉ ์ธ์๋ ์๋๋ก์ด๋ ์คํ๋์ค๊ฐ ๋จนํต์ผ ๋ ..
2023.06.30
Android/Error