#Memo
Jetpack Compose
[Android Compose] TextField์ placeholder ๋ฃ๊ธฐ
How to set placeholder on TextField in Jetpack Composeย ย ๊ธฐ์กด xml์ ์ด์ฉํ ์๋๋ก์ด๋ ์ฝ๋์์๋ EditText์ placeholder๋ฅผ ์ฃผ๋ ๊ฑด ๊ฐ๋จํ์ต๋๋ค.xml ์์ android:hint ๋ฅผ ์ด์ฉํ๊ฑฐ๋ ์ฝ๋์์์ editText.setHint()๋ก ์ํ๋ placeholder๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ๋์ฃ .ย ์ปดํฌ์ฆ์์๋ ๊ฐ๋จํ๊ฒ TextField ์์ decorationBox๋ฅผ ์ด์ฉํ์ฌ placeholder๋ฅผ ๋ฃ์ด์ค ์ ์์ต๋๋ค.var input by remember { mutableStateOf("") }Box( contentAlignment = Alignment.Center, modifier = Modifier.fillMaxSize()) { BasicTextF..
2022.07.15
Jetpack Compose
[Android Compose] TextField Focus ์ฃผ๊ธฐ
How to request focus on TextField in Jetpack Composeย ย ์ปดํฌ์ฆ์์๋ FocusRequester๋ฅผ ํตํด TextField์ ํฌ์ปค์ค๋ฅผ ์ค ์ ์์ต๋๋ค.Modifier.focusRequest()์๋ค๊ฐ FocusRequest ๋ณ์๋ฅผ ์์ฑํด ๋ฃ์ด์ค์ผ๋ก์จํด๋น ์์ ฏ์ ํฌ์ปค์ค๋ฅผ ์ด๋๋ผ ์ ๋๋ผ ํ๋ ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค.val focusRequester = remember { FocusRequester() }var value by remember { mutableStateOf("hello") }TextField( value = value, onValueChange = { value = it }, modifier = Modifier.focus..
2022.07.06
Jetpack Compose
[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
AWS EC2์ Flask ๋ฐฐํฌํ๊ธฐ (MySQL, FileZilla)
AWS EC2์ Flask ์๋ฒ๋ฅผ ๋ฐฐํฌํด๋ณด์์ต๋๋ค.์ฝ์ง ์์์ต๋๋ค.(๋น์ฐํจ ํ๋ฒ๋ ์ํด๋ด)ย ์ฐ์ ์ ์๊ฒ ์ฃผ์ด์ง ๊ฑดec2-*-**-*-**.ap-northeast-2.compute.amazonaws.com ์๋ฒ ์ฃผ์์ppk ํคํ์ด ํ์ผ๋ฟ์ด์์ต๋๋ค.(์ฝ์ ์ ๊ทผ๋ ๋ชปํ์,,)ย aws์์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ ~ ์ด๋ฐ ๋ถ๋ถ์ ๋ค ๋์ด๊ฐ๊ณ ย ์ด ์ํฉ์์๋ถํฐ ์์ํด๋ณด๊ฒ ์ต๋๋ค.ย ย [ ๋ชฉ์ฐจ ]1. ppk to pem2. aws ec2 ์๋ฒ ์ ์3. FileZilla Client ์ค์น4. FileZilla๋ก ์ฝ๋ ํ์ผ ์
๋ก๋5. flask ์คํ6. port ์ค์ 7. mysql ์ค์น ๋ฐ ์ ์8. mysql ์ฌ์ฉ์ ์ถ๊ฐ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ9. flask์์ mysql ์ฐ๊ฒฐ10. ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํย ** ๊ฐ๋ฐ ํ๊ฒฝ **- Mac ..
Programming
[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 ๋ฐ๋ ..
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..
Android
์นด์นด์ค ์ฑ๋ด 5์ด ํ์์์, ์ฝ๋ฐฑ ์๋ต์ผ๋ก ํด๊ฒฐํ๊ธฐ
์นด์นด์ค ์ฑ๋ด์ ๋ณธ์ธ์ ์๋ฒ(์คํฌ์๋ฒ)๋ก ํต์ ํ๊ณ ์ ํ๋๋ฐ์นด์นด์ค ์ฑ๋ด์ ํ์์์์ 5์ด์
๋๋ค..ย ์ฌ์ง์ด ์ด ํ์์์ ์๊ฐ์ ๋ณ๊ฒฝํ์ง ๋ชปํ๋ค๊ณ ์คํผ์
์์๋ ๋ชป๋ฐ์๋๊ณ ์์ด์.ย ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ์ฝ๋ฐฑ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ฃผ๊ณ ์๋ค๊ณ ์จ์์ฃ ?์ฝ๋ฐฑ ๊ธฐ๋ฅ์ด 5์ด์ ํ์์์์ ๋ณด์ํด์ค ์ ์๋ ๊ธฐ๋ฅ์
๋๋ค !ย ์ฝ์ง์ ์ข ํ๋๋ฐ ์ ๊ฐ ์์๋ธ ์ด ์ฝ๋ฐฑ ๊ธฐ๋ฅ์ ๋ํด ์ ์ด๋ณด๋ ค๊ณ ํด์๐ย ย ๋จผ์ , ์นด์นด์ค ์ฑ๋ด์์ ์ ๊ณตํ๋ ์ฝ๋ฐฑ ๊ธฐ๋ฅ์5์ด ์ด๋ด ๋ต๋ณ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ, ์ง์ฐ ๋ฉ์ธ์ง(์. ์ ์๋ง ๊ธฐ๋ค๋ ค์ฃผ์ธ์)๋ฅผ ๋ณด๋ด๊ณ 1๋ถ ์ด๋ด๋ก 1๊ฑด์ ์๋ต์ ๋ณด๋ผ ์ ์๋ ๊ธฐ๋ฅ์
๋๋ค.ย ์ด ์ฝ๋ฐฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด AI ์ฑ๋ด ์ ํ์ ํด์ผํ๋๋ฐ, ์ด AI ์ฑ๋ด ์ ํ์ ์ ์ฒญํด์ฃผ์ด์ผ ํฉ๋๋ค.ย ๊ทธ๋ ๊ฒ ๋น์ฆ๋์ค์ ์ผ๋ก ์์ธํ๊ฒ ์์ฑํ์ง ์์๋ ์ด์ํด๋ณด์ด์ง ์์ผ๋ฉด ์น์ธ๋๋..
Programming
Android Compose ์คํฐ๋ ๊ธฐ๋ก 03
Material Design๋์งํธ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ ํฌ๊ด์ ์ธ ๋์์ธ ์์คํ
Color, Typography, Shape ๋ฑ@Composablefun MaterialTheme( colors: Colors, typography: Typography, shapes: Shapes, content: @Composable () -> Unit)ย val customTextSelectionColors = TextSelectionColors( handleColor = colorResource(id = R.color.primary100), backgroundColor = Color(0xFF4286F4).copy(alpha = 0.4f))CompositionLocalProvider(L..
What I Learned
Android Compose ์คํฐ๋ ๊ธฐ๋ก 02
Modifierimage size, padding, background, round image, click event ์ฒ๋ฆฌ ๊ฐ๋ฅ@Composablefun Greeting(name: String) { Text( text = "Hello $name!", modifier = Modifier.onGloballyPositioned { android.util.Log.i("TEMP", "size ${it.size}") } )}onGloballyPositioned๋ฅผ ์ด์ฉํ์ฌ view์ ํฌ๊ธฐ๋ฅผ ๊ตฌํ ์ ์์ย ย Slot APIs์ฌ์ฉ์ ์ ์ ๋ ์ด์์์ ๊ฐ์ ธ์ค๊ธฐ ์ํด Compose๊ฐ ๋์
ํ ํจํด@Composablefun MyApplicationTheme( content: @Composable () -> Unit)๋งค๊ฐ..
What I Learned