#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 ์๋ฒ๋ฅผ ๋ฐฐํฌํด๋ณด์์ต๋๋ค.์ฝ์ง ์์์ต๋๋ค.(๋น์ฐํจ ํ๋ฒ๋ ์ํด๋ด)ย ์ฐ์ ์ ์๊ฒ ์ฃผ์ด์ง ๊ฑด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
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
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์ด ์ด๋ด ๋ต๋ณ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ, ์ง์ฐ ๋ฉ์ธ์ง(์. ์ ์๋ง ๊ธฐ๋ค๋ ค์ฃผ์ธ์)๋ฅผ ๋ณด๋ด๊ณ 1๋ถ ์ด๋ด๋ก 1๊ฑด์ ์๋ต์ ๋ณด๋ผ ์ ์๋ ๊ธฐ๋ฅ์
๋๋ค.ย ์ด ์ฝ๋ฐฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด AI ์ฑ๋ด ์ ํ์ ํด์ผํ๋๋ฐ, ์ด AI ์ฑ๋ด ์ ํ์ ์ ์ฒญํด์ฃผ์ด์ผ ํฉ๋๋ค.ย ๊ทธ๋ ๊ฒ ๋น์ฆ๋์ค์ ์ผ๋ก ์์ธํ๊ฒ ์์ฑํ์ง ์์๋ ์ด์ํด๋ณด์ด์ง ์์ผ๋ฉด ์น์ธ๋๋..
Programming
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
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