@Composable @NonRestartableComposable @OptIn(InternalComposeApi::class) fun LaunchedEffect( key1: Any?, block: suspend CoroutineScope.() -> Unit ) { val applyContext = currentComposer.applyCoroutineContext remember(key1) { LaunchedEffectImpl(applyContext, block) } } LaunchedEffect는 위와 같은 구조로 이루어져 있습니다. block이 CorutineScope로 되어 있으므로 코루틴으로 동작하는 함수들을 실행할 수 있습니다. 기본적인 사용 방법은 다음과 같습니다. val context = ..
이번 포스팅에서는 GrapicsLayer에 관해서 알아보겠습니다. 시작하기 앞서 기본 준비를 하겠습니다. @Composable fun CustomSlider( value: Float, text: String, modifier: Modifier = Modifier, valueRange: ClosedFloatingPointRange = 0f..1f, onValueChange: (Float) -> Unit ) { Column( horizontalAlignment = Alignment.CenterHorizontally, modifier = modifier .fillMaxWidth() .padding(horizontal = 30.dp) ) { Text(text = "$text $value", color = Col..
이번 포스팅에서는 Compose를 활용하여 Gradient을 표시하는 방법에 대하여 알아보겠습니다. @Composable fun BrushBox( brush: Brush, modifier: Modifier = Modifier ) { Box( modifier = modifier .fillMaxWidth() .height(100.dp) .background(brush = brush) ) } private fun getColorList() = listOf( Color(0xFFFFE162), Color(0xFFFF6464) ) 시작에 앞서 기본 설정입니다. Gradient은 background의 brush 속성으로 적용이 가능합니다. 1) Gradient의 종류 BrushBox( brush = Brush.lin..
이번 포스팅에서는 기존 XML에서 ViewPager의 기능을 Compose로 유사하게 구현하는 방법에 대하여 알아보겠습니다. 시작하기 전에 다음의 내용을 build.gradle(:app)에 추가해 주세요 implementation "com.google.accompanist:accompanist-pager:0.20.1" implementation "com.google.accompanist:accompanist-pager-indicators:0.20.1" 1) 기본 사용 방법 Compose에서는 방향에 따라서 HorizontalPager와 VerticalPager로 사용합니다. val colorList = listOf( Color(0xFFFF1744), Color(0xFF651FFF), Color(0xFF2..
Compose의 Animation은 간단하게 정리하면 다음과 같습니다. 어떤 애니메이션이 어떻게 동작시킨다. 어떤 애니메이션을 사용할지 여부는 Transition을 통해 지정하고, 이 Animation동작이 어떻게 작동할지는 AnimationSpec에 의해 정해집니다. 그전에 언제 애니메이션을 작동시킬 것인지가 필요합니다. 우선 간단하게 Visible 상태를 변경시키는 AnimatedVisibility에 대해 알아보겠습니다. var visible by remember { mutableStateOf(false) } Button(onClick = { visible = visible1.not() }) { Text(text = "Click") } AnimatedVisibility(visible = visible..
2022.08.21 - [안드로이드/코드] - 포켓몬 도감 만들기(2) : Fast Api, Compose, 홈 화면, 리스트 화면 포켓몬 도감 만들기(2) : Fast Api, Compose, 홈 화면, 리스트 화면 2022.08.21 - [안드로이드/코드] - 포켓몬 도감 만들기(1) : Fast Api 포켓몬 도감 만들기(1) : Fast Api Fast Api 설치 pip install fastapi 터미널에 위의 명령어를 입력하면 설치가 됩니다. 추가로 Python이 없.. alanboyce.tistory.com 이전 편에 이어서 상세 화면에 대해 작성하겠습니다. 상세 화면 1) UI @Composable fun DetailScreen( routeAction: RouteAction, viewMo..
2022.08.21 - [안드로이드/코드] - 포켓몬 도감 만들기(1) : Fast Api 포켓몬 도감 만들기(1) : Fast Api Fast Api 설치 pip install fastapi 터미널에 위의 명령어를 입력하면 설치가 됩니다. 추가로 Python이 없을 경우 따로 설치해야 합니다. pip install "uvicorn[standrad]" 서버 작동을 위해서 uvicorn도 설치를.. alanboyce.tistory.com 이전 편에서 이어서 작성합니다. 홈 화면 @Composable fun HomeScreen(routeAction: RouteAction) { val context = LocalContext.current LazyColumn( contentPadding = PaddingVal..
Fast Api 설치 pip install fastapi 터미널에 위의 명령어를 입력하면 설치가 됩니다. 추가로 Python이 없을 경우 따로 설치해야 합니다. pip install "uvicorn[standrad]" 서버 작동을 위해서 uvicorn도 설치를 합니다. uvicorn main:app --reload 설치가 완료된 후 위의 명령어를 입력하면 http://127.0.0.1:8000의 주소로 서버가 구동된 것을 확인할 수 있습니다. 하지만 아직 아무것도 안 했기 때문에 {"detail":"Not Found"} 이런 문구가 출력이 될 것입니다. 이제 Python 파일을 생성해 줍니다. from fastapi import FastAPI app = FastAPI() @app.get("/") def ..
- Total
- Today
- Yesterday
- WebView
- Row
- compose
- 웹뷰
- Duplicate class found error
- Compose ConstraintLayout
- Gradient
- Compose Naver Map
- Compose QRCode Scanner
- column
- Compose BottomSheetDialog
- Retrofit
- Compose ModalBottomSheetLayout
- 포켓몬 도감
- 안드로이드 구글 지도
- Compose 네이버 지도 api
- Compose 네이버 지도
- Duplicate class fond 에러
- Kotlin
- Android Compose
- LazyColumn
- Compose MotionLayout
- WorkManager
- Compose BottomSheet
- Fast api
- Pokedex
- 안드로이드
- Compose BottomSheetScaffold
- Android
- Worker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |